| --- | --- |
| / | 根目录 |
| /bin | 命令保存目录(普通用户就可以读取的命令) |
| /boot | 启动目录,启动相关文件 |
| /dev | 设备文件保存目录 |
| /etc | 配置文件保存目录 |
| /home | 普通用户的家目录 |
| /lib | 系统库保存目录 |
| /mnt | 系统挂载目录 |
| /media | 挂载目录 |
*********************************** 视觉疲劳分割线 ***********************************
| 目录 | 作用 |
| --- | --- |
| /root | 超级用户的家目录 |
| /tmp | 临时目录 |
| /sbin | 命令保存目录(超级用户才能使用的目录) |
| /proc | 直接写入内存 |
| /usr | 系统软件资源目录 |
| /usr/bin | 系统命令(普通用户) |
| /usr/sbin | 系统命令(超级用户) |
| /var | 系统相关文档内容 |
4. 链接命令:ln
注意:实际的应用中实用的更多的是软链接
硬链接:
ln /root/cangls /tmp/cangls.hard
特征:
-
拥有相同的I节点和block块,可以看做是同一个文件
-
可通过I节点识别
-
不能夸分区
-
不能针对目录使用
软链接:
ln -s /root/cangls /tmp/cangls.soft
注意:使用软链接时,原文件一定要用绝对路径
特征:
类似windows快捷键。软链接拥有自己的I节点和block块,但是数据块中只保存源文件的文件名和I节点号,并没有实际的文件数据。lrwxrwxrwx,l:软链接,软链接权限都为lrwxrwxrwx,真实权限都看源文件。修改任意文件,另一个都改变。删除原文件,软链接无法使用。
1. 文件搜索命令locate
-
locate [文件名],只能接文件名
-
在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
- locate命令所搜索的后台命令,不是及时更新,这时可以使用updatedb命令更新
updatedb 更新数据库
/etc/updatedb.conf配置文件
-
PRUNE_BIND_MOUNTS,开启搜索限制
-
PRUNEFS="",不搜索的系统文件
-
PRUNENAMES="",不搜索的文件类型
-
PRUNEPAEHS="",不搜索的路径
2. 命令搜索命令
whereis [命令],搜索命令所在路径以及帮助文档所在位置
-
b:只查找可执行文件
-
m:只查找帮助文件
-
注意:局限性,只能搜索系统命令
which [文件名]
- 搜索所在路径以及别名,部分命令不支持,例如:pwd,cd
find 文件搜索命令
- find [搜索范围] [搜索条件]
例如:
find / -name install.log
-
避免大范围搜索,会非常耗费系统资源。
-
find是在系统中搜索符合条件的文件名。如需匹配,使用通配符,通配符是完全匹配。
不区分大小写
find /root -iname install.log
按照所有者搜索
find /root -user root
查找所有者的文件
find /root -nouser
-10,10天内修改的文件;10,10天当天修改的文件;+10,10天前修改的文件。
查找10天前修改的文件
#atimne,文件访问时间;ctime,修改文件属性;mtime,修改文件内容。
find /var/log -mtime +10
查找/etc目录下大小为25KB的文件:find /etc -size 25k
-
-25k,小于25KB的文件
-
25k,等于25KB的文件
-
+25k,大于25KB的文件
查找i节点为262422的文件
find . -inum 262422
查找/etc/目录下大于20KB且小于50KB的文件
find /etc -size +20k -a -size -50k
-
-a相当于and,逻辑与,两个条件都满足
-
-o相当于or,逻辑或,两个条件满足一个即可
查找/etc/目录下大于20KB且小于50KB的文件,并且显示详细信息
find /etc -size +20k -a -size -50k -exec ls -lh {} ;
-exec/-ok命令{}\;对搜索结果执行操作
grep 字符串搜素命令
-
grep [选项] 字符串 文件名,在文件当中匹配符合的字符串
-
-i,忽略大小写
-
-v,排除指定字符串
根据文件大小匹配:
grep "size" anaconda-ks.cfg
find与grep的区别
-
find命令:在系统当中搜索符合条件的文件名,如需匹配,使用通配符,通配符是完全匹配。
-
grep命令:在文件当中搜索符合条件的字符串,如需匹配,使用正则表达式进行匹配,正则表达式是包含匹配。
1. 帮助命令,man的级别
| 选项 | 含义 |
| --- | --- |
| 1 | 查看命令的帮助 |
| 2 | 查看可被内核调用的函数的帮助 |
| 3 | 查看函数和函数库的帮助 |
| 4 | 查看特殊件的帮助(主要是/dev目录下的文件) |
| 5 | 查看配置文件的帮助 |
| 6 | 查看游戏的帮助 |
| 7 | 查看其它杂项的帮助 |
| 8 | 查看系统管理员可用命令的帮助 |
| 9 | 查看和内核相关文件的帮助 |
man 命令,获取指定命令的帮助
例如:查看ls的帮助
man ls
查看命令拥有哪个级别的帮助
man -f命令相当于whatis命令
例如:
man -5 passwd
man -4 null
man -8 ifconfig
查看命令相关的所有帮助
-
man -k命令,相当于apropos命令 -
例如:apropos -passwd
2. 其它帮助命令
-
--help命令,获取命令选项帮助 -
例如:ls --hrlp
help shell内部命令
-
获取shell内部命令的帮助
-
例如:whereis cd,确定是否是shell内部命令
-
例如:help cd,获取内部命令帮助
info,详细命令帮助
-
回车:进入子帮助页面(带有*号标记)
-
u:进入上层页面
-
n:进入下一个帮助小结
-
p:进入上一个帮助小结
-
q:退出
1. 压缩命令1
zip命令
-
压缩文件:
zip压缩文件名 源文件 -
压缩目录:
zip -r压缩文件名 原目录 -
解压缩:
unzip压缩文件
.gz格式压缩,gzip 源文件
- 压缩为
.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件
- 压缩为
.gz格式,源文件保留,例如:gzip -c bols > bols.gz
gzip -r 目录
- 压缩目录下所有的子文件,但不能压缩目录
.gz格式解压缩
-
gzip -d 压缩文件
-
gunzip 压缩文件
.bz2格式压缩
-
bzip2 源文件
-
压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
-
压缩后保留源文件
-
注意:bzip2命令不能压目录
.bz2解压缩
-
bzip2 -d压缩文件 -
解压缩,加上
-k属性保留压缩文件
bunzip2 压缩文件
- 解压缩,加上-k属性保留压缩文件
2. 压缩命令2
-
.tar.gz压缩格式 -
其实
.tar.gz格式是先打包为.tar格式,在压缩为.gz格式
tar -zcvf 压缩包名.tar.gz 源文件
- -z:压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz 源文件
- -x:解压缩.tar.gz格式
例如,解压缩nginx的源码包
tar -zxvf nginx-1.12.tar.gz
.tar.bz2 压缩格式
-
tar -jcvf 压缩包名.tar.bz2 源文件
-
-j:压缩为.tar.bz2格式
-
tar -jxvf 压缩包名.tar.bz2 源文件
-
-x:解压缩.tar.bz2格式
打包命令tar
tar -cvf 打包文件名 源文件
-
-c:打包
-
-v:显示过程
-
-f:指定打包后的文件名
-
例如:tar -cvf bols.tar longls
解打包命令
-
tar -xvf 打包文件名
-
-x:解打包
-
例如:
tar -xvf bols.tar
了解关机与重启命令之前,首先看一下系统运行级别:
| 选项 | 含义 |
| --- | --- |
| 0 | 关机 |
| 1 | 单用户 |
| 2 | 不完全多用户,不含NFS服务 |
| 3 | 完全多用户 |
| 4 | 未分配 |
| 5 | 图形界面 |
| 6 | 重启 |
1. 关机命令
shutdown 命令,shutdown [选项] 时间
-
-c:取消前一个关机命令
-
-h:关机
-
-r:重启
*.**********************************************分割线***********************************************1
-
其它关机命令:halt,poweroff,init 0
-
其它重启命令:
reboot,init 6
注意:使用服务器时,不要随意使用关机命令。一旦使用了,会造成不必要的麻烦。
2.重启命令
-
reboot,执行命令进行重启 -
shutdown -r,执行命令进行重启
注意:使用logout命令,养成良好的习惯退出登录
1. 挂载命令格式
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
| 内容 | 含义 |
| --- | --- |
| -t文件系统 | 加入系统文件类型来指定挂载的类型,可以是ext3、ext4、iso9660等文件系统 |
| -o特殊选项 | 可以指定挂载的额外选项 |
挂载命令,查询与自动挂载
-
mount:查询系统中已经挂载的设备 -
mount -a:依据配置文件/etc/fstb的内容,自动挂载
mount部分参数说明
| 参数 | 说明 |
| --- | --- |
| atime/noatime | 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新。 |
| async/sync | 异步/同步,默认为异步 |
| auto/noauto | 自动/手动,执行mount -a命令时,是否会自动安装/etc/fstb文件内容挂载,默认自动。 |
| defaults | 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项。 |
| exec/noexec | 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认exec允许。 |
| remount | 重新挂载已挂载的文件系统,一般用于指定修改特殊权限。 |
| rw/ro | 读写/只读,文件系统挂载时,是否具有读写权限,默认rw。 |
| suid/nosuid | 具有/不具有suid权限,设定文件系统是否具有suid和sgid的权限,默认具有。 |
| user/nouser | 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认不允许,只有root可以挂载分区。 |
| usrquota | 写入代表文件系统支持用户磁盘配额,默认不支持。 |
| grpquota | 写入代表文件系统支持组磁盘配额,默认不支持。 |
挂载光盘
建立挂载点
mkdir /mnt/cdrom/
挂载光盘,只是习惯在mnt下建立,media下建立也行。
指定参数
mount -t iso9660 /dev/cdrom /mnt/cdrom/
不指定参数
mount /dev/sr0 /mnt/cdrom/
卸载命令
umount【接设备文件名或者挂载点】
例如:
umount /mnt/cdrom/
挂载U盘
fdisk -l:查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
注意:Linux默认不支持NTFS文件系统
2. 用户登录查看命令
查看用户登录信息:w 接用户名
命令输出
| 符号 | 含义 |
| --- | --- |
| USER | 登录的用户名 |
| TTY | 登录终端 |
| FROM | 从哪个IP地址登录 |
| LOGIN@ | 登录时间 |
| DILE | 用户闲置时间 |
| JCPU | 与该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业占用时间 |
| PCPU | 当前进程所占用时间 |
| WHAT | 当前正在运行的命令 |
| w | 查询登录用户,显示系统时间和运行时间,用户个数以及平均负载。 |
查看登录用户信息,who 用户名
命令输出:
- 用户名,登录终端,登录时间(登录来源IP地址)
whoami查看当前用户
查询当前登录和过去登录的用户信息,last
-
last命令默认读取/var/log/wtmp文件数据 -
命令输出:用户名,登录终端,登录IP,登录时间,退出时间(在线时间)
查看所有用户最后一次登录时间,lastlog
-
lastlog命令默认读取/var/log/lastlog文件内容 -
命令输出:用户名,登录终端,登录IP,最后一次登录时间
netstat命令,查看网络状态
netstat -an | grep ESTABLISHED
1. shell概述
-
shell的两种主要语法类型有
Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括:sh、ksh、Bash、psh、zsh; -
C家族主要包括:csh、tcsh
Bash中其它特殊符号
| 特殊符号 | 含义 |
| --- | --- |
| ’ ’ | 在单引号中所有特殊符号,如"$“和”`"(反引号)都没有特殊含义 |
| " " | 双引号。在双引号中所有特殊符号除"$"、"、"、"\“外都无特殊含义。”$"、"、"、"“拥有"调用变量的值”、"引用命令"和"转义符"的含义 |
| `` | 反引号。反引号括起来的是系统命令,在Bash中会优先执行它。和$()作用一样,推荐使用$(),反引号容易误导。 |
| $() | 与反引号作用相同,用来引用系统命令。 |
| # | 在shell脚本中,#代表注释。 |
| $ | 用于调用变量的值,如果需要调用name的值时,需要使用$name获取变量的值。 |
| \ | 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。例如:"符号,则不会作为变量引用。 |
2. 脚本执行方式
#编写一个简单的linux脚本,使用vim命令
vim /home/hello.sh
#注意你的脚本开头必须加上:#!/bin/bash
#!/bin/bash
echo "hello world" >> /root/hello.log
#赋予读和执行权限
chmod 755 /hello.sh
#使用 sh hello.sh 命令执行
3. 别名与快捷键
查看与设定别名
-
alias命令,查看系统命令中所有的命令别名 -
alias别名 = ‘原命令’,设定命令别名,当然这样设置只会临时生效
别名永久生效与删除别名
-
vi ~/.bashrc,写入环境变量配置文件 -
unalias别名,删除别名
命令生效顺序
-
第一顺位执行用绝对路径或相对路径执行的命令
-
第二顺位执行别名
-
第三顺位执行Bash的内部命令
-
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
4. 历史命令,history [选项][历史命令保存文件]
-
-c:清空历史命令
-
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history
历史命令的调用
-
使用上、下箭头调用以前的历史命令
-
使用"!n"重复执行第n条命令
-
使用"!!"重复执行上一条命令
-
使用"!字符串"重复执行最后一条以该字符串开头的命令
5. 输出重定向
echo输出命令 [选项][输出内容]
- -e:支持反斜线控制的字符转换
控制字符作用
| 控制符 | 作用 |
| --- | --- |
| \a | 输出警告音 |
| \b | 退格键,向左删除 |
| \n | 换行符 |
| \r | 回车键 |
| \t | 制表符,TAB键 |
| \v | 垂直制表符 |
| \0nnn | 按照八进制ASCII码输出字符。其中0为数字零,nnn为三位八进制数。 |
| \xhh | 按照十六进制ASCII码输出字符。hh是两位十六进制数。 |
例如:以下命令在后台执行av目录下的cangls.sh脚本,并重定向输入到runls.log文件
nohup /av/cangls.av > runls.log 2>&1 &