存放二进制可实行文件(ls,cat,mkdir等),常用命令一样平常都在这里。
/etc
存放系统管理和配置文件

/home
存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录便是/home/user,可以用~user表示
/usr
用于存放系统运用程序,比较主要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的运用)。这是最弘大的目录,要用到的运用程序和文件险些都在这个目录。/usr/x11r6 存放x window的目录/usr/bin 浩瀚的运用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开拓和编译运用程序所须要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库
/opt
额外安装的可选运用程序包所放置的位置。一样平常情形下,我们可以把tomcat等都安装到这里。
/proc
虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root
超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin
存放二进制可实行文件,只有root才能访问。这里存放的是系统管理员利用的系统级别的管理命令和程序。如ifconfig等。
/dev
用于存放设备文件。
/mnt
系统管理员安装临时文件系统的安装点,系统供应这个目录是让用户临时挂载其他的文件系统。
/boot
存放用于系统勾引时利用的各种文件
/lib
存放跟文件系统中的程序运行所须要的共享库及内核模块。共享库又叫动态链接共享库,浸染类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp
用于存放各种临时文件,是公用的临时文件存储点。
/var
用于存放运行时须要改变数据的文件,也是某些大文件的溢出区,比方说各种做事的日志文件(系统启动日志等。)等。
/lost+found
这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
2.2 命令基本格式2.2.1 命令提示符 [root@xiaoming ~]#
root 当前登任命户localhost 主机名~ 当前事情目录,默认是当前用户的家目录,root便是/root,普通用户是 /home/用户名提示符 超级用户是 #,普通用户是$2.2.2 命令格式命令 [选项] [参数]当有多个选项时,可以写在一起一样平常参数有简化和完全写法两种 -a 与 --all等效2.2.3 ls查询目录中的内容ls [选项] [文件或者目录]选项-a 显示所有文件,包括隐蔽文件-l 显示详细信息-d 查看目录本身的属性而非子文件 ls /etc/-h 人性化的办法显示文件大小-i 显示inode,也便是i节点,每个节点都有ID号默认当前目录下的文件列表-l
显示详细信息
drwxr-xr-x . 1 root root 800 Sep 16 00:19 logs
drwxr-xr-x
.
1
root
root
800
Sep 16 00:19
logs
文件类型和权限
ACL权限
硬链接引用计数
所有者
所属组
文件大小
末了修正韶光
文件名
文件类型和权限 -rw-r--r--
文件类型 - 文件、d 目录、l 软链接文件u(所有者)、g(所属组)、o(其他人)r(read) 读取、w(write) 写入、x(execute) 实行2.3 文件处理命令2.3.1 mkdir建立目录 make directorymkdir -p [目录名]-p 递归创建2.3.2 cd切换所在目录 change directorycd [目录]上次目录~ 家目录家目录. 当前目录.. 上级目录相对路径是参照当前所在目录绝对路径是从根目录开始按TAB键可以补全命令和目录2.3.3 pwd显示当前目录 pwd2.3.4 rmdir删除目录 remove empty directoryrmdir [目录名]2.3.5 rm删除文件或者目录 removerm [文件或者目录]-r 删除目录-f 逼迫删除rm -rf 文件或者目录] 递归逼迫删除所有目录2.3.6 cpcopy 复制命令copy [源文件或者目录] [目标文件]-r 复制目录,默认是复制文件-p 连带文件属性复制-d 若源文件是链接文件,则复制连接属性-a 相称于 -rpd2.3.7 mv移动文件或者改名 movemv [源文件或者目录] [目标文件]2.3.8 ln链接命令,天生链接文件 link2.3.8.1 硬链接特色拥有相同的i节点和存储block块,可以看作是同一个文件可以通过i节点访问不能跨分区不能针对目录利用一样平常不该用2.3.8.2 软链接特色ln -s [源文件] [目标文件]-s 创建软链接类似Windows快捷办法软链接拥有自己的i节点和Block块,但是数据块中只保存源文件的文件名和i节点号,并没有实际的文件数据lrwxrwxrwx l 软链接 软链接的文件权限都是 777修正任意一个文件,另一个都会改变删除源文件,软链接不能利用软链接源文件必须写绝对路径2.4 文件搜索命令2.4.1 locate在后台数据库中按文件名搜索,速率比较快数据保存在/var/lib/mlocate后台数据库,每天更新一次可以updatedb命令急速更新数据库只能搜索文件名/etc/updatedb.conf建立索引的配置文件PRUNE_BIND_MOUNTS = "yes" 全部生效,开启搜索限定PRUNEFS 不搜索的文件系统PRUNENAMES 忽略的文件类型PRUNEPATHS 忽略的路径 /tmp2.4.2 whereis搜索命令所在路径以及帮助文档所在位置whereis 命令名 whereis ls-b 只查找可实行文件-m 只查找帮助文件2.4.3 which可以看到别名 which ls能看到的都是外部安装的命令无法查看Shell自带的命令,如 which cd2.4.4 环境变量
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
定义的是系统搜索命令的路径echo $PATH2.4.5 find文件搜索命令find [搜索范围] [搜索条件]2.4.5.1 按名称搜索避免大范围的搜索,会非常花费系统资源 find / -name aaa.log2.4.5.2 通配符find是在系统当中搜索符合条件的文件名,如果须要匹配,利用通配符匹配,通配符是完备匹配通配符 匹配任意内容? 匹配任意一个字符[] 匹配任意一个中括号内的字符
find . -name "ab[cdef]"
2.4.5.3 -i
不区分大小写
find / -iname A.log
2.4.5.4 -user
按所有者进行搜索
find /root -user root find /root -nouser
2.4.5.5 按韶光搜索
find /nginx/access.log -mtime +5
参数
含义
atime
文件访问韶光
ctime
改变文件属性
mtime
修正文件内容
参数
含义
-5
5天内修正的文件
5
5天前当前修正的文件
+5
5天前修正的文件
2.4.5.6 按大小搜索k小写,M大写 find . -size 100k
参数
含义
-8k
小于8K
8k
即是8K
+8k
大于8K
+8M
小于8M
2.4.5.7 按i节点搜索 find . -inum 123456
2.4.5.8 综合运用
find /tmp -size +10k -a -size -20k
查找/etc目录下,大于10KB并且小于20KB的文件-a and 逻辑与,两个条件都知足-o or 逻辑或,两个条件知足一个就可以
find /tmp -size +10k -a -size -20k -exec ls -lh {} ;
exec 对上个命令的结果进行操作2.4.5.9 grep在文件当中匹配符合条件的字符串grep "10" access.log-i 忽略大小写-v 打消指定字符串find命令,在系统当中搜索符合条件的文件名,如果须要匹配,利用通配符匹配,通配符是完备匹配grep命令 在文件当中搜索符合条件的字符串,如果须要匹配,利用正则表达式进行匹配,正则表达式时包含匹配2.5 帮助命令2.5.1 基本用法man 命令 获取指定命令的帮助man ls 查看ls的帮助
man -f ls whatis ls man 1 ls man 1p ls
2.5.2 关键字搜索
- man -k passwd
2.5.3 shell 内部帮助whereis找到便是外部,找不到便是内部 help cd2.6 压缩与解压缩命令
.zip` `.gz` `.bz2` `.tar.gz` `.tar.bz2
2.6.1 zip格式压缩文件 zip 压缩文件名 源文件压缩目录 zip -r 压缩文件名 源目录解压 unzip 压缩文件名 mkdir booktouch book/1.txttouch book/2.txtzip -r book.zip bookunzip book.zip2.6.2 gzip
命令
示例
含义
gzip 源文件
gzip a.txt
压缩为.gz格式的压缩文件,源文件会消逝
gzip -c 源文件 > 压缩文件
gzip -c yum.txt > yum.txt.gz
压缩为.gz格式的压缩文件,源文件不会消逝
gzip -r 目录
gzip -r xx
压缩目录下的所有子文件,但是不压缩目录
gzip -d 压缩文件名
gzip -d yum.txt.gz
解压缩文件,不保留压缩包
gunzip 压缩文件
gunzip yum.txt.gz
解压缩文件,不保留压缩包
压缩是压缩目录下的文件2.6.3 .bz2格式压缩命令
示例
含义
bzip2 源文件
bzip2 1.txt
压缩为.bz2格式的文件,不保留源文件
bzip2 -k 源文件
zip2 -k 1.txt
压缩为.bz2格式的文件,保留源文件
bzip2 -d 压缩文件名
bzip2 -d 1.txt.bz2
解压压缩包
bunzip2 压缩文件名
bunzip2 1.txt.bz2
解压压缩包
bzip2 不能压缩目录2.6.4 tar打包命令tar -cvf 打包文件名 源文件-c 打包-v 显示过程-f 指定打包后的文件名 tar -cvf book.tar book gzip book.tar bzip2 book.tar
x 解打包 tar -xvf book.tar2.6.4 压缩格式
压缩
tar –cvf jpg.tar .jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz .jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,天生一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 .jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,天生一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z .jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,天生一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar .jpg //rar格式的压缩,须要先下载rar for linux zip jpg.zip .jpg //zip格式的压缩,须要先下载zip for linux
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar unzip file.zip //解压zip
2.7 关机和重启命令2.7.1 shutdownshutdown 关机命令
-c 取消前一个关机命令-h 关机-r 重启 shutdown -r 06:00shutdown -c2.7.2 init关机
init 0
重启
init 6
系统的运行级别
0 关机1 但用户2 不 完备多用户,不包含NFS做事3 完备多用户4 未分配5 图形界面6 重启2.7.3 logout退出登录
logout
2.9 查看登任命户信息2.9.1 w
查看登任命户信息
USER 登录的用户名TTY 登录的终端 tty1 本地终端 pts/0远程终端FROM 登录的IPLOGIN 登录韶光IDLE 用户闲置韶光JCPU 该终端所有进程占用的韶光PCPU 当提高程所占用的韶光WHAT 正在实行的命令2.9.2 who查看登任命户信息
USER 登录的用户名TTY 登录的终端 tty1 本地终端 pts/0远程终端LOGIN 登录韶光(登录的IP)2.9.3 last查看当前登录和过去登录的用户信息 默认读取 /var/log/wtmp 文件
用户名登录终端登录IP登录韶光退出韶光(在线韶光)2.9.4 lastlog查看所有用户的末了一次登录韶光
用户名登录终端登录IP末了一次登录韶光3. shellshell是一个命令行阐明器,它为用户供应了一个向Linux内核发送要求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停滞或者编写一些程序Shell还是一个功能相称强大的编程措辞,易编写,易调试,灵巧性较强。Shell是阐明实行的脚本措辞,在Shell中可以直接调用Linux系统命令。3.1 查看支持的shell/etc/shells3.2 echo输出命令--e 支持反斜线掌握的字符转换掌握字符
浸染
\a
输出警告音
\b
退格键,也便是向左删除键
\n
换行符
\r
回车键
\t
制表符,也便是Tab键
\v
垂直制表符
\onnn
按照八进制ASCII码表输出字符,个中0为数字零,nnn是三位八进制数
\xhh
按照十六进制ASCII码表输出字符,个中hh是两位十六进制数
3.3 编写实行shell #!/bin/bash echo -e "\e[1;34m hello world \e[0m"
授予实行权限,直接运行
chmod 755 hello.sh ./hello.sh
通过Bash调用实行脚本
bash hello.sh
3.4 别名命令别名 == 小名临时生效aliasalias rm="rm -i"写入环境变量配置文件 vi ~/.bashrcsource ~/.bashrcunalias 别名 删除别名3.5 命令的生效顺序绝对路径或者相对路径别名bash内部命令按照$PATH环境变量定义的目录查找顺序找到的第一个命令3.6 命令快捷键
命令
含义
ctrl+c
逼迫终止当前命令
ctrl+l
清屏
ctrl+a
光标移动到命令行首
ctrl+e
光标移动到命令行尾
ctrl+u
从光标所在的位置删除到行首
ctrl+z
把命令放入后台
ctrl+r
在历史命令中搜索
3.7 历史命令history [选项] [历史命令保存文件]选项-c 清空历史命令-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history默认保存1000条 /etc/profile HISSIZE=100003.8 调用利用高下箭头调用以前的历史命令利用 !n 重复实行第n条历史命令利用 !! 重复实行上一条命令利用 !字符 重复实行末了一条以该字符串开头的命令3.9 管道符号3.9.1 多命令顺序实行(1) ; 分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的实行成功与否彼此没有任何影响,都会一条一条实行下去。
(2) || 逻辑或,当用此连接符连接多个命令时,前面的命令实行成功,则后面的命令不会实行。前面的命令实行失落败,后面的命令才会实行。
(3) && 逻辑与,当用此连接符连接多个命令时,前面的命令实行成功,才会实行后面的命令,前面的命令实行失落败,后面的命令不会实行,与 || 恰好相反。
(4) | 管道符,当用此连接符连接多个命令时,前面命令实行的精确输出,会交给后面的命令连续处理。若前面的命令实行失落败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。
- date;ls;date;ls - ls && echo yes || echo no
3.9.2 管道符号命令1的精确输出会作为命令2的操为难刁难象命令1|命令2 ls /etc/ | morenetstat -an | grep ESTABLISHED | wc -l3.9.3 通配符
匹配文件名和目录名 |通配符|浸染| |:----|:----| |?|匹配一个任意字符| ||匹配0个或任意字符,也便是可以匹配任意内容| |[]|匹配中括号中任意一个字符| |[-]|匹配中括号中任意一个字符,-代表范围| |[^]|匹配不是中括号中的一个字符|
3.9.4 其它符号符号
浸染
''
单引号。在单引号中所有的分外符号,如$和`都没有分外含义
""
双引号,在双引号里分外符号都没有分外含义,但是 $ ` \ 例外,拥有调用变量值,引用命令和转义的含义
``
反引号,扩起来的是系统命令
$()
和反引号一样
#
在shell脚本中,#开头的行代表注释
$
用于调用变量的值
\
转义符号
- a=`ls` - b=$(ls)
4. vi 编辑器VI visual interface可视化接口类似与windows中的记事本vim支持多级撤销跨平台语法高亮支持图形界面4.1 操作模式:w 保存:q 退出:! 逼迫保存:ls 列出所有的文件:n 下一个:N 上一个:15 跳转到指定行/xxx 从光标位置开始向后搜索 xxx 字符串?xxx 从光标位置开始向前搜索5. 用户和用户组利用操作系统的人都是用户用户组是具有相同系统权限的一组用户5.1 用户组5.1.1 /etc/group/etc/group 存储当前系统中所有用户组信息group❌123:abc,def组名称:组密码占位符:组编号:组中用户名列表root 组编号为01-499系统预留的编号 预留给安装的软件和做事的用户手动创建的用户组从500开始组密码占位符都是x5.1.2 /etc/gshadow存放当前系统中用户组的密码信息和group中的记录逐一对应Group: : :abc组名称 组密码 组管理者 组中用户名5.1.3 /etc/passwd存储当前系统中所有用户的信息user❌123:456:xxxxx:/home/user:/bin/bash用户名:密码占位符:用户编号: 用户注释信息:用户主目录:shell类型5.1.4 /etc/shadow存放当前系统中所有用户的密码信息user:xxx:::::::用户名:密码:6. 用户操作
添加组
groupadd student
修正组名称
groupmod -n stu student
修正组编号
groupmod -g 111 stu
添加分组并指定编号
groupadd -g 222 teacher
删除分组
groupdel 222
添加分组
groupadd teacher
为用户指定所属组
useradd -g teacher zhangsan
为用户指定所属组
useradd -g teacher lisi
为用户指定事情目录
useradd -d /home/zhangsan zhangsan
指定注释
usermod -c iamateacher zhangsan
修正用户名
usermod -l zhangsan zhangsan2
指定文件夹
usermod -d /home/zhangsan2 zhangsan2
修正用户所属组
usermod -g stu zhangsan2
删除用户
userdel zhangsan2
删除所属文件夹
userdel -r lisi
7. 用户命令
显示登录的用户名
whoami
显示指定用户信息,包括用户编号,用户名 紧张组的编号及名称,附属组列表
id zhangsan
显示 zhangsan 用户所在的所有组
groups zhangsan
显示用户详细资料
finger zhangsan
8. 附录8.1 系统启动8.1.1 BIOS打算机通电后,第一件事便是读取刷入ROM芯片的开机程序,这个程序叫做(Basic Input/Output System)8.1.2 硬件自检BIOS程序首先检讨,打算机硬件能否知足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test)如果硬件涌现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。8.1.3 启动顺序硬件自检完成后,BIOS把掌握权转交给下一阶段的启动程序。这时,BIOS须要知道,"下一阶段的启动程序"详细存放在哪一个设备BIOS须要有一个外部储存设备的排序,排在前面的设备便是优先转交掌握权的设备。这种排序叫做"启动顺序"(Boot Sequence)BIOS按照"启动顺序",把掌握权转交给排在第一位的储存设备。这时,打算机读取该设备的第一个扇区,也便是读取最前面的512个字节。如果这512个字节的末了两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,掌握权于是被转交给"启动顺序"中的下一个设备。这最前面的512个字节,就叫做"主勾引记录"(Master boot record,缩写为MBR)8.1.4 主勾引记录的构造"主勾引记录"只有512个字节,放不了太多东西。它的紧张浸染是,见告打算机到硬盘的哪一个位置去找操作系统。(1) 第1-446字节:是用来记录系统的启动信息的,调用操作系统的机器码(2) 第447-510字节(64个字节):分区表(Partition table),分区表的浸染,是将硬盘分成多少个区(3) 第511-512字节:主勾引记录署名(0x55和0xAA)8.1.5 分区表磁盘分区是利用分区编辑器在磁盘上划分几个逻辑部分磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区内"主勾引记录"因此必须知道将掌握权转交给哪个区分区表的长度只有64个字节,里面又分成四项,每项16个字节。以是,一个硬盘最多只能分四个一级分区,又叫做"主分区"(1) 第1个字节:如果为0x80,就表示该主分区是激活分区,掌握权要转交给这个分区。四个主分区里面只能有一个是激活的。(2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。(3) 第5个字节:主分区类型,比如FAT32、NTFS等。(4) 第6-8个字节:主分区末了一个扇区的物理位置。(5) 第9-12字节:该主分区第一个扇区的逻辑地址。(6) 第13-16字节:主分区的扇区总数。8.1.6 硬盘启动打算机的掌握权就要转交给硬盘的某个分区了四个主分区里面,只有一个是激活的。打算机会读取激活分区的第一个扇区,叫做"卷勾引记录"(Volume boot record,缩写为VBR)8.1.7 操作系统掌握权转交给操作系统后,操作系统的内核首先被载入内存。以Linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代然后,init线程加载系统的各个模块,比如窗口程序和网络程序,直至实行/bin/login程序,跳出登录界面,等待用户输入用户名和密码。
文章来源:https://juejin.cn/post/6844903801283952653
作者:孟祥