注: 显示的选项不为全部,
外部命令使用:外部命令 --help
查看帮助;
内部命令使用:help 内部命令
查看帮助.
帮助命令
type命令
显示指定命令的类型, 本身也是个内部命令.
type [选项] name [name2,...] |__ -a --根据name类型: | 1.在环境变量(PATH)中查找并显示所有包含name这个可执行文件的路径 | 2.如果在别名、关键字, 函数, 内建的信息中存在name, 则一并显示. | |__ -f --不对shell函数进行查找 |__ -p --如果name在执行'type -t name'返回的不是'file', 那么什么也不返回; 否则会在环境变量(PATH)中查找并返回可执行文件路径. |__ -P --无论要查找name是什么, 只要是可执行文件就会在环境变量(PATH)中查找并返回可执行文件路径. |__ -t --根据name的类型来返回一个单词来对应这个类型, 如果没有单词相对应则返回空值.
man命令
man命令查看指定命令的手册页
man 命令名称
输入输出重定向
标准输入重定向(STDIN, 文件描述符为0) | 默认从键盘输入, 也可从其他文件或命令中输入. |
标准输出重定向(STDOUT, 文件描述符为1) | 默认输出到屏幕. |
错误输出重定向(STDERR, 文件描述符为2) | 默认输出到屏幕. |
输入重定向
< 符号 命令 < 文件 --将文件作为命令的标准输入 << 符号 命令 << 分界符 --从标准输入中读入, 直到遇见分界符才停止.
输出重定向
> 符号 命令 > 文件 --将标准输出重定向到一个文件中(清空原有文件的数据) 命令 2> 文件 --将错误输出重定向到一个文件中(清空原有文件的数据) >> 符号 命令 >> 文件 --将标准输出重定向到一个文件中(追加到原有内容的后面) 命令 2>> 文件 --将错误输出重定向到一个文件中(追加到原有内容的后面) 命令 >> 文件 2>&1 --将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) 注: &指示不要把1当作普通文件, 而是fd=1即标准输出来处理, 即追加到文件中而不显示到屏幕上.
管道命令符
命令1 | 命令2 --把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入
命令行的通配符
* | 匹配零个或多个字符 |
? | 匹配单个字符 |
[字符,字符,...] | 匹配括号中的任意一个字符 |
常见转义字符
反斜杠(\) | 使反斜杠后面的一个变量变为单纯的字符串 |
单引号('') | 转义其中所有的变量为单纯的字符串 |
双引号("") | 保留其中的变量属性, 不进行转义处理. |
反引号(``) | 返回其中的命令执行后的结果 |
重要环境变量
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用的Shell解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件保存路径 | |
LANG | 系统语言、语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |
alias命令
alias命令用于给指定的命令起别名, 配置文件为:
~username/.bashrc
alias 别名=命令 --给指定命令起别名 alias --显示给所有命令起的别名
unalias命令
unalias命令用于取消指定命令的别名, 其格式为:
unalias 别名
export命令
export命令用于将局部变量提升为全局变量, 其格式为:
export 变量名
Vi纯文本编辑器
命令模式
启动后默认进入命令模式:
vi [路径]文件名
移动光标
行内快速跳转 |__ Home键 --将光标快速定位到本行的行首 |__ Shift+6键 --将光标快速定位到本行第一个非空格字符位置 |__ End键或Shift+4键 --将光标快速定位到本行的行尾 行间快速跳转 |__ 1G或gg --可跳转到文件内容的第一行 |__ G --可跳转到文件内容的最后一行 | |__ #G --可跳转到文件中的第#行 | |__ Shift+[ --将光标快速定位到光标所处位置的上一个段落的上方 |__ Shift+] --将光标快速定位到光标所处位置的下一个段落的下方
复制、粘贴和剪切
复制 |__ yy --复制当前整行的内容到剪切板 | |__ #yy --复制从光标处开始的#行内容 |__ 粘贴 |__ P --对于行:粘贴到光标所处行的上一行; 对于部分字符:粘贴到光标所处位置前. |__ p --对于行:粘贴到光标所处行的下一行; 对于部分字符:粘贴到光标所处位置后. 剪切 |__ X或Del按键 --切剪光标处的单个字符 |__ dd --剪切当前光标所在行 | |__ #dd --剪切从光标处开始的#行内容 | |__ d^ --对于当前光标位置而言: | 1.前面只含空格字符, 剪切当前位置到后面第一个非空格字符之间的所有字符.(作用于剪切空格); | 2.前面包含其他字符, 剪切当前位置到行首的第一个非空格字符之间的所有字符. | |__ d$ --剪切当前光标处所位置到行尾的所有字符
查找文件内容
查找 |__ /字符串 --从当前光标处开始向后进行查找匹配字符串 |__ ?字符串 --从当前光标处开始向前进行查找匹配字符串 | |__ N --对于/:光标移动到上一个匹配项; 对于?:光标移动到下一个匹配项. | |__ n --对于/:光标移动到下一个匹配项; 对于?:光标移动到上一个匹配项. |__
撤销编辑及保存和退出
撤销 |__ u --用于取消最近一次的操作,并恢复操作结果. |__ U --用于取消对当前行所做的所有编辑 保存 |__ ZZ --保存当前的文件内容并退出vi编辑器
输入模式
在命令模式下按i
键或insert
键、输入模式的相关指令
可以进入输入模式, 最后一行会出现--INSERT--
状态提示信息.
切换至输入模式 |__ a --在当前光标位置之后插入内容 |__ A --在光标所在行的行尾插入内容 |__ s --删除光标所在位置的一个字符后插入内容 |__ S --删除光标所在行的所有内容后插入内容 |__ i --在当前光标位置之前插入内容 |__ I --在光标所在行的行首的第一个非空格字符位置处插入内容 |__ o --在光标所在行的下面插入一个新行 |__ O --在光标所在行的上面插入一个新行
末行模式(ex转义模式)
在命令模式下按:
键可以进入末行模式, 最后一行会出现:
提示符.
保存及退出
:[选项] |__ w --保存文件 | |__ w 文件名 --另存为文件 | |__ q --退出 |__ q! --强制退出 |__ wq/x --保存并退出 |__ wq! --强制保存并退出
打开新文件或读入其他文件内容
打开新的文件进行编辑 |__ :e 新的文件名/文件名 --编辑新文件或打开指定文件进行编辑 在当前文件中读入其他文件内容 |__ :r 文件名 --将指定文件中的内容复制到当前文件中的当前光标所在位置
替换文件内容
:[选项] |__ s/旧内容/新内容[/g][/c] --将光标所在当前行的旧内容替换成新内容 | |__ % --在整个文件内容中进行查找并替换 | |__ n,m --在指定行数范围以内的文件内容中进行查找并替换 | |__ /g --表示对替换范围内所有匹配结果都进行替换, 不写则只替换第一个匹配结果, 对于多行则替换每行的第一个匹配结果. | |__ /c --对每个替换动作提示用户进行确认 | |__ 数字 --光标跳转到指定行 | |__ 1 --光标跳转到第一行 | |__ $ --光标跳转到最后一行 | |__ 命令 --执行该命令 |__ /字符串 --在文本中从上至下搜索该字符串 |__ ?字符串 --在文本中从下至上搜索该字符串
可视模式
在命令模式下按下v
键进入普通可视模式;
按下Ctrl+v
键进入块可视模式;
按下Shift+v
键进入行可视模式.
注: 可以与命令模式和末行模式的命令结合使用
nano字符终端文本编辑器
nano命令
nano命令可以打开指定文件进行编辑, 默认情况下它会自动断行, 即在一行中输入过长的内容时自动拆分成几行.
nano [选项] 文件名 |__ -c --持续显示游标位置 |__ -m --启用鼠标功能 |__ -t -- 离开时自动储存, 不要提示. |__ -v --只读模式 |__ -w --不要自动换行 |__ -x --不要显示辅助区
快捷操作
复制: Alt+6
剪切: Ctrl+k
标记: Ctrl+6
或Alt+a
粘贴: Ctrl+u
搜索: Ctrl+w
, 定位到下一个匹配项: Alt+w
.
翻页: 上一页 Ctrl+y
, 下一页 Ctrl+v
.
保存: Ctrl+o
退出: Ctrl+x
修改后输入 y 确认保存, 输入 n 不保存, 按 Ctrl+c 返回; 输入 y 后: 输入另存为的文件名, 不输入则保存修改, 按 Ctrl+c 返回;
常用系统工作命令
hostname命令
hostname命令查看或修改当前主机的完整名称, 后面带主机名就代表修改, 没有则是查看,
hostname [填写表示修改主机名] 重启后失效, 需修改/etc/hostname文件, 重启生效.
echo命令
echo命令用于在终端输出字符串或变量提取后的值
echo [选项] |__ -e 允许反斜杠转义 | |__ \a --发出警告音 | |__ \b --删除前面的一个字符 | |__ \c --结尾不加换行符 | |__ \f --换行, 光标扔停留在原来的坐标位置. | |__ \n --换行, 光标移至行首. | |__ \r --光标移至行首, 但不换行. | |__ -E 禁止反斜杠转义 |__ -n 不输出结尾的换行符 |__ 字符串 |__ $变量 输出带有颜色或背景色的文本 echo -e "\033[字背景颜色;文字颜色m 字符串 \033[0m" 字颜色: 30—–37字背景颜色范围: 40—–47
1
2
3
4
5
6
7
8 echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
1
2
3
4
5
6
7
8 echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
date命令
date命令用于显示及设置系统的时间或日期
date [选项] +"[指定格式]" |__ -s "字符串" --设置系统时间为字符串中指定的时间, 字符串标准格式:"年-月-日 时:分:秒". |__ -d "字符串" --显示字符串中指定的时间 | |__ 指定格式 | |__ %y 显示年份后两位 | |__ %Y 显示年份 | |__ %m 显示月份 | |__ %d 显示一个月的第几天 | |__ %D 以mm/dd/yy格式显示年月日, yy为年份后两位. | |__ %t 显示跳格[Tab键] | |__ %T 以hh:mm:ss格式显示时分秒. | |__ %H 显示小时(00~23) | |__ %I 显示小时(00~12) | |__ %M 显示分钟(00~59) | |__ %S 显示秒数(00~59) | |__ %j 显示今年中的第几天 |__
1 | date=$(date +'%Y-%m-%d'_'%H:%M:%S') |
0000-00-00_00:00:00
shutdown命令
shutdown命令对主机进行关机或重启操作
shutdown [选项] [now] |__ -h --关机//等同poweroff |__ -r --重启//等同reboot |__ -c --取消操作 |__ now --立即执行 |__ +数字 --指定分钟后执行
wget命令
wget命令用于从网络上下载指定的文件
wget [选项] 下载地址 |__ -b --后台下载模式 |__ -P --下载到指定目录 |__ -t --最大尝试次数 |__ -c --断点续传 |__ -p --下载页面内所有资源, 包括图片、视频等. |__ -r --递归下载
注: 如出现无效重新Yum安装即可, yum remove -y wget
.
curl命令
curl命令是利用url规则的在命令行下工作的文件传输工具
curl [选项] URL |__ -I --只显示响应报文的头部信息 |__ -H --自定义头信息传递给服务器 |__ -G --以Get的方式来发送数据 |__ -o --把输出信息写到文件中 |__ -O --把输出信息写到文件中, 保留远程文件的文件名. |__ -X PUT/POST/GET/DELETE --指定使用什么命令
ps命令
ps命令用于查看进程信息(参数可允许不写-号, 即ps aux.)
ps [选项] |__ a --显示当前终端下的所有程序, 包括其他用户的程序. |__ -a --显示所有终端下执行的进程 |__ -A --显示所有程序, 同-e. |__ -u --显示用户、起始时间以及其他详细信息 |__ -f --显示UID、PPID、C与STIME信息 |__ PID --显示指定PID的进程信息
R(运行) | 进程正在运行或在运行队列中等待 |
S(中断) | 进程处于休眠中, 当某个条件形成后或者接收到信号时, 则脱离该状态. |
D(不可中断) | 进程不响应系统异步信号, 即便用kill命令也不能将其中断. |
Z(僵死) | 进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放. |
T(停止) | 进程收到停止信号后停止运行 |
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 |
pstree命令
安装:
yum -y install psmisc
pstree命令用于以树状显示进程信息
pstree [选项] |__ -a --显示每个程序的完整指令, 包含路径, 参数或是常驻服务的标示. |__ -c --不使用精简标示法 |__ -h --列出树状图时, 特别标明现在执行的程序. |__ -u --显示用户名称
top命令
用于动态地监视进程活动与系统负载等信息
top [选项] |__ -d <数字> --指定刷新间隔时间 |__ -u <用户> --指定用户名 |__ -p <进程号>--指定进程 |__ -n <次数>--指定循环显示的次数 |__ | |__ h --显示帮助信息 | |__ k --终止或杀死一个进程 | |__ l --切换显示平均负载启动时间信息 | |__ q --退出 | |__ m --切换显示内存信息 | |__ t --切换显示进程和CPU状态信息 | |__ p --根据CPU使用百分比大小排序 | |__ T --根据时间/累计时间排序 |__
第1行 | 系统时间 | 运行时间 | 登录终端数 | 系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低). | |
第2行 | 进程总数 | 运行中的进程数 | 睡眠中的进程数 | 停止的进程数 | 僵死的进程数. |
第3行 | 用户占用资源百分比 | 系统内核占用资源百分比 | 改变过优先级的进程资源百分比 | 空闲的资源百分比等.其中数据均为CPU数据并以百分比格式显示. | |
第4行 | 物理内存总量 | 内存使用量 | 内存空闲量 | 作为内核缓存的内存量. | |
第5行 | 虚拟内存总量 | 虚拟内存使用量 | 虚拟内存空闲量 | 已被提前加载的内存量. |
pidof命令
pidof命令用于查询某个指定服务进程的PID值, 其格式为:
pidof 服务名称
kill命令
kill命令用于终止某个指定PID的服务进程
kill [选项] |__ -9 --强制终止 |__ -l --显示信号
killall命令
killall命令用于终止某个指定名称的服务所对应的全部进程
killall [选项] 服务名称 |__ -9 --强制终止
command命令
command命令调用指定的指令并执行, 命令执行时不查询shell函数. command命令只能够执行shell内部的命令.
command [选项] [命令] |__ -p --使用正确的路径搜索命令 |__ -v --不执行命令, 但搜索命令和打印命令. |__ -V --不执行命令, 而是搜索命令并打印命令搜索的精细度.
init命令
init命令是Linux下的进程初始化工具, init进程是所有Linux进程的父进程, 它的进程号为1.
init是Linux操作系统中不可缺少的程序之一, init进程是Linux内核引导运行的, 是系统中的第一个进程.
init 0~6 查看运行级别
系统状态检测命令
ping命令
ping命令用于测试主机之间网络的连通性
ping [选项] |__ -c <完成次数> --设置要求目标主机回应的次数 |__ -i <间隔秒数> --指定收发信息的时间间隔 |__ -s <数据包大小> --指定发送数据的大小 |__ -t <TTL值大小> --设置TTL值的大小
ifconfig命令
1 | yum -y install net-tools |
ifconfig命令用于获取网卡配置与网络状态等信息
ifconfig [选项] |__ 不写 --显示当前主机中已启用的网络接口信息 |__ -a --显示所有网络接口信息 |__ 网络接口 --查看指定的网络接口信息
使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时, 其实主要查看的就是网卡名称、IP地址、网卡物理地址(MAC地址), 以及RX、TX的接收数据包与发送数据包的个数及累计流量(即下面蓝色框内的信息内容):
[root@linuxprobe ~]# ifconfigeno16777728: flags=4163 mtu 1500inet 192.168.10.10netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fec4:a409 prefixlen 64 scopeid 0x20ether 00:0c:29:c4:a4:09txqueuelen 1000 (Ethernet)RX packets 36 bytes 3176 (3.1 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 38 bytes 4757 (4.6 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 386 bytes 32780 (32.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 386 bytes 32780 (32.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
route命令
route命令查看或设置主机中路由表信息
route [选项] |__ -n --将路由记录中的地址信息显示为数字形式
iostat命令
iostat命令用于监控系统输入/输出设备和CPU的使用情况
yum install sysstat -y iostat [选项] |__ -c --仅显示CPU的使用情况 |__ -d --仅显示设备使用率 |__ -m --以MB/s为单位显示 |__ -p --仅显示块设备和所有被使用的其他分区信息 |__ -x --显示详细信息
ifstat命令
ifstat命令用于监测网络接口的状态
ifstat [选项] |__ -a --监测能检测到的所有网络接口的状态 |__ -h --显示帮助信息
netstat命令
netstat命令查看系统的网络连接状态、路由表、接口统计等信息
netstat [选项] |__ -a --显示当前主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) |__ -n --以数字的形式显示相关的主机地址、端口等信息. |__ -p --显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |__ -t --查看TCP协议相关的信息 |__ -u --显示UDP协议相关的信息 |__ -l --显示处于监听(Listening)状态的网络连接及端口信息 |__ -r --显示路由表信息
ss命令
ss命令用于获取socket统计信息
|__ -n --不解析服务名称 |__ -r --解析主机名 |__ -l --显示监听状态套接字 |__ -a --显示所有的套接字信息 |__ -o --显示计时器信息 |__ -e --显示套接字的详细内存使用情况 |__ -p --显示使用套接字的进程 |__ -i --显示TCP内部信息 |__ -s --显示套接字使用情况 |__ -4 --只显示IPv4的套接字 |__ -t --只显示TCP套接字 |__ -u --只显示UDP套接字 |__ -d --只显示DCCP套接字 |__ -F --使用指定的过滤规制文件过滤某种状态的连接
lsof命令
lsof命令用于查看进程打开的文件或文件打开的进程, 也可用于查看端口是否为打开状态. 系统核心命令:root用户执行
yum install lsof -y lsof [选项] |__ -c <进程名> --列出指定进程名打开的文件 |__ -g <GID> --列出指定GID号进程的详细信息 |__ -i <匹配条件> --列出符合匹配条件的进程 |__ -u --列出指定UID号进程的详细信息 |__ -p <进程号> --列出指定进程号所打开的文件
uname命令
uname命令用于查看系统内核与系统版本等信息
在使用uname命令时, 一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息.
uname [选项] |__ -a --显示所有信息
如果要查看当前系统版本的详细信息, 则需要查看redhat-release文件:
cat /etc/redhat-release
uptime命令
uptime命令用于查看系统的负载信息, 其格式为:
uptime
负载值越低越好, 尽量不要长期超过1, 在生产环境中不要超过5.
time命令
time命令用于统计执行指定命令所花费的总时间
time 执行命令
free命令
free用于显示当前系统中内存的使用量信息
free [选项] |__ -h --以可读的形式显示信息 |__ -b --以字节单位显示 |__ -k --以KB单位显示 |__ -m --以MB单位显示 |__ -s <间隔秒数> --持续显示内存使用状态 |__ -t --显示内存总和 |__ -V --显示版本信息 间隔秒数>
who命令
who命令用于查看当前登入主机的用户终端信息, 其格式为
who
whoami命令
whoami命令用于显示当前登录到系统的用户名, 其格式为
whoami
last命令
last命令用于查看所有系统的登录记录, 其格式为
last
使用last命令可以查看本机的登录记录. 但是, 由于这些信息都是以日志文件的形式保存在系统中, 因此黑客可以很容易地对内容进行篡改. 千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!
history命令
history命令用于显示历史执行过的命令, 可以使用”!编码数字”的方式来重复执行某一次的命令.
history [选项] |__ -c --清空当前用户在本机上执行的Linux命令历史记录信息
sosreport命令
sosreport命令用于收集系统配置及架构信息并输出诊断文档, 其格式为
sosreport
runlevel命令
runlevel命令查看系统当前运行的级别, 其格式为:
runlevel # 5 3 # 5: 上一次的模式 # 3: 当前模式 # N 5 # N: 第一次开机后, 没有模式.
运行级就是操作系统当前正在运行的功能级别. 这个级别从0到6, 具有不同的功能:
0: 关机 1: 单用户模式 2: 多用户模式, 没有NFS(会停止部分服务). 3: 完全多用户模式 4: 暂未使用 5: 图形化模式 6: 重启
目录操作命令
pwd命令
pwd命令用于显示用户当前所处的工作目录
pwd
ls命令
ls命令用于显示目录或目录中的文件信息
ls [选项] [文件/目录] |__ -l --以长格式显示文件和目录的详细信息. 简写:ll | |__ -h --将显示为KB、MB等单位, 需和-l一起使用. | |__ -a --显示所有子目录和文件, 包括名称以点号开头的隐藏目录和隐藏文件. |__ -A --与-a不同之处是不会显示当前目录和父目录 |__ -d --显示指定的目录名, 而不是显示目录下的文件, 默认为本目录. |__ -R --以递归的方式显示指定目录及其子目录中的所有内容 |__ -i --显示文件的i节点号 |__ -r --逆序排列 |__ -t --按时间信息排序 alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' ①-rw-------. ②1 ③root ④root ⑤1285 ⑥9月 12 19:06 ⑦anaconda-ks.cfg 第一列:权限 第二列:引用计数 第三列:所有者 第四列:所属组 第五列:大小, 默认为字节(byte). 第六列:文件修改时间 第七列:文件名 r:可读(4) w:可写(2) x:可执行(1)
cd命令
cd命令将用户的工作目录更改到其他位置
cd [选项] |__ - --上次所在目录 |__ / --根目录 |__ ~ --用户家目录 |__ ~[username] --指定用户家目录 |__ . --当前目录 |__ .. --上级目录
mkdir命令
mkdir命令用于创建空白的目录
mkdir [选项] 目录 |__ -p --创建多级目录 |__ -m 数字 --创建目录时, 同时设置权限.
rmdir命令
rmdir命令用于删除空白的目录
rmdir [选项] 目录 |__ -p --删除多级目录, 如果其中有个目录不是空目录的话则无法继续删除.
文件操作命令
touch命令
touch命令用于创建空白文件或设置文件的时间
touch [选项] 文件 |__ -a --仅修改"读取时间"(atime) |__ -c --不建立任何文件, 配合其他选项来设置时间. |__ -d <时间日期> --使用指定的日期时间来设置时间, 而非现在的时间, 支持更多的时间格式. | |__ -m --仅修改"修改时间"(mtime) |__ -r <文件或目录> --根据指定文件或目录的时间进行设置 |__ -t <[[CC]YY]MMDDhhmm[.ss]> --使用指定的日期时间来设置时间, 而非现在的时间.
cat命令
cat命令用于连接多个文件的内容(顺序查看)
cat [选项] 文件 |__ -A --等于-vET选项 |__ -b --只对非空输出行编号 |__ -e --等于-vE选项 |__ -E --在每行结束处显示"$" |__ -n --对输出的所有行编号 |__ -s --不输出多行空行, 每段之间只输出一行空行. |__ -t --等于-vT选项 |__ -T --将跳格字符(TAB)显示为"^I"
查看系统信息: cat /proc/version 查看CPU信息: cat /proc/cpuinfo 查看内存信息: cat /proc/meinfo 查看网卡配置信息: cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
tac命令
用于连接多个文件的内容(逆序查看)
tac 文件
more命令
查看超过一屏的文件内容时, 将进行分屏显示, 并在左下角显示当前内容在整个文件中的百分比.
more [选项] 文件 |__ -d --在查看内容的同时显示帮助([Press space to continue, 'q' to quit.]) |__ -p --不滚屏, 先清屏后在显示文本 |__ -c --不滚屏, 显示文本后清理行尾 |__ -s --将多个空行压缩为一行 |__ -NUM --指定每屏显示的行数为NUM |__ +NUM --从文件第NUM行开始显示 |__ +/STRING --在文件内容中从下至上输出后查找匹配字符串(STRING), 查找到后并输出前两行的内容. h键: 查看帮助 b键: 显示上一屏的内容 Space(空格)键: 显示下一屏的内容 Enter(回车)键: 显示下一行的内容 q/Q键: 退出查看
less命令
较晚出现的分页显示命令, 查看超过一屏的文件内容时, 只显示被查看文件的文件名, 能倒退查看.
less [选项] 文件 |__ -N --每一行行首显示行号 |__ -s --连续多个空行压缩成一行显示 |__ -S --在单行显示较长的内容, 而不换行显示.
head命令
用于显示文件开头的一部分内容
head [选项] 文件 |__ -n NUM/-NUM --指定显示行数 |__ -v --显示文件名
tail命令
用于显示文件末尾的一部分内容或持续刷新内容
tail [选项] 文件 |__ -n NUM/-NUM --指定显示行数 |__ -v --显示文件名 |__ -f --监听文件的新增内容
ln命令
用于为文件创建链接
ln [选项] 源文件/目录 目标文件/目标目录 |__ -s --建立软链接文件, 默认是创建硬链接文件. |__ -f --强制创建链接文件, 如果目标文件已经存在的话, 则删除目标文件后在建立链接文件. |__ -i --覆盖既有文件之前先询问用户 |__ -v 显示创建链接的过程
软链接/符合链接(symbolic link): 1.软链接和源文件拥有不同的Inode和Block 2.两个文件修改任意一个, 另一个都改变. 3.删除软链接, 源文件不受影响; 删除源文件, 软链接不能使用. 4.软链接没有实际数据, 只保存源文件的Inode, 不论源文件多大, 软链接大小不变. 5.软链接的权限是最大权限lrwxrwxrwx., 但是由于没有实际数据, 最终访问时需要参考源文件权限. 6.软链接可以链接目录 7.软链接可以跨分区 8.软链接特征明显, 建议使用软连接. 注:路径一定要使用绝对路径 硬链接(hard link): 1.源文件和硬链接文件拥有相同的Inode和Block 2.修改任意一个文件, 另一个都改变. 3.删除任意一个文件, 另一个都能使用. 4.硬链接标记不清, 很难确认硬链接文件位置, 不建议使用. 5.硬链接不能链接目录 6.硬链接不能跨分区
rm命令
用于删除指定的文件或目录
rm [选项] 文件/目录 |__ -i --删除文件或目录时提醒用户确认 |__ -f --删除文件或目录时不进行提醒, 而直接强制删除. |__ -r --删除目录时必须使用此选项, 表示递归删除整个目录树.
cp命令
用于复制文件或目录
cp [选项] 源文件/目录 目标文件/目录 |__ -a --相当于-pdr | |__ -p --复制时保持源文件的权限、属主及时间标记等属性不变. | |__ -d --若对象为"链接文件", 则保留该"链接文件"的属性. | |__ -r/-R --复制目录时必须使用此选项, 表示递归复制所有文件及子目录. | |__ -f --覆盖目标同名文件或目录时不进行提醒, 而直接强制复制. |__ -i --覆盖目标同名文件或目录时提醒用户确认
mv命令
用于剪切文件或将文件重命名
mv [选项] 源文件/目录 目标文件名/目录 |__ -f --直接覆盖现有的文件或目录 |__ -i --覆盖目标同名文件或目录时提醒用户确认 |__ -n --不覆盖已经存在的同名文件 |__ -u --文件较新或者目标文件不存在时, 才执行移动操作. |__ -b --若目标文件存在, 则备份目标文件. |__ -v --显示详细信息
dd命令
用于按照指定大小和个数的数据块来复制文件或转换文件
dd if=输入的文件名称 of=输出的文件名称 count=要复制"块"的个数 bs=每个"块"的大小
file命令
用于查看文件的类型, 其格式为:
file 文件名
在Linux系统中, 由于文本、目录、设备等所有这些一切都统称为文件, 而我们又不能单凭后缀就知道具体的文件类型, 这时就需要使用file命令来查看文件类型了.
dirname命令
去除文件名中的非目录部分, 仅显示与目录有关的内容. dirname命令读取指定路径名保留最后一个/及其后面的字符, 删除其他部分, 并写结果到标准输出. 如果最后一个/后无字符, dirname命令使用倒数第二个/, 并忽略其后的所有字符.
dirname [参数]
1
2
3
4 # 例:
dirname // # /
dirname /a/b/ # /a
dirname a # .
xargs命令
xargs命令是给命令传递参数的一个过滤器, 也是组合多个命令的一个工具.
xargs [选项] 执行命令 |__ -0 --单行输出 |__ -n --多行输出 |__ -d --自定义一个定界符 |__ -i --指定一个替换字符串{} |__ -t --打印出 xargs 执行的命令 |__ -p --执行每一个命令时弹出确认
seq命令
seq(squeue)命令是一个序列的缩写, 主要用来输出序列化的东西.
seq [选项] 尾数 seq [选项] 首数 尾数 seq [选项] 首数 增量 尾数 |__ -f --使用printf样式的浮点格式 |__ -s --使用指定字符串分隔数字(默认使用:\n) |__ -w --在列前添加0, 使得宽度相同[自动补位]. |__ --help --显示此帮助信息并退出 |__ --version --显示版本信息并退出
nl命令
nl命令查看文件内容并输出行号
nl [选项] 文件 |__ -b --指定行号指定的方式 | |__ a --表示不论是否为空行, 也同样列出行号. | |__ t --如果有空行, 空的那一行不要列出行号. | |__ -n --列出行号表示的方法 | |__ ln --行号在萤幕的最左方显示 | |__ rn --行号在自己栏位的最右方显示, 且不加 0. | |__ rz --行号在自己栏位的最右方显示, 且加 0. | |__ -w --行号栏位的占用的位数 |__ -p --在逻辑定界符处不重新开始计算
tr命令
用于替换文本文件中的字符, 其格式为:
tr 原始字符 目标字符
wc命令
用于统计文件内容中包含的行数、单词数、字节数等信息.
wc [选项] 文件 |__ -l --统计文件内容中的行数 |__ -w --统计文件内容中的单词个数 |__ -c --统计文件内容中的字节数
stat命令
用于查看文件的具体存储信息和时间等信息
stat 文件名
最后一次查看文件内容的时间 | Access: 2020-06-13 11:14:23.943014190 +0800 |
最后一次修改文件内容的时间 | Modify: 2014-04-15 21:54:24.000000000 +0800 |
最后一次修改文件属性的时间 | Change: 2020-06-12 18:31:35.845997258 +0800 |
cut命令
用于按”列”提取文本字符
cut [选项] 文件 |__ -d --设置间隔符号 |__ -f --设置需要查看的列数
diff命令
用于比较多个文本文件的差异
diff [选项] 文件1 文件2 |__ --brief --判断文件是否相同 |__ -c --描述文件内容具体的不同
basename命令
basename命令主要用于显示文件路径名剔除目录部分后的文件名
basename [参数]
打包压缩与搜索命令
压缩与解压缩命令
zip命令和unzip命令
zip [选项] 文件名 |__ -b <临时目录> --执行暂时存放文件的目录, 当压缩完成时会移动至当前路径. |__ -d --从压缩文件中删除指定的文件 |__ -o --将压缩文件的更改时间设置成与压缩文件内最新更改文件的时间相同 |__ -x=文件名 --压缩时排除符合条件的文件, 支持相对路径. |__ -t <日期时间> --将压缩文件日期设置成指定的日期
unzip [选项] 文件名 |__ -l --显示压缩包内所包含的文件 |__ -t --检查压缩文件是否正确 |__ -o --解压时直接覆盖原有的文件 |__ -n --解压时不覆盖原有到的文件 |__ -d <目录> --将压缩文件解压至指定目录下
gzip命令和bzip2命令
gzip [选项] 文件名 |__ -9 --提高压缩比率, 但文件较大时会需要更多的时间. ----------------- gzip -d 文件名.gz gunzip 文件名.gz
bzip2 [选项] 文件名 |__ -9 --提高压缩比率, 但文件较大时会需要更多的时间. ----------------- bzip2 -d 文件名.bz2 bunzip2 文件名.bz2
tar命令
tar命令主要用于对目录和文件进行归档
解压: tar [选项] 压缩包 压缩: tar [选项] 压缩包 文件或目录 |__ -c --创建.tar格式的包文件 |__ -x --解开.tar格式的包文件 |__ -t --列表查看包内的文件 |__ -z --调用gzip程序进行压缩或解压缩 |__ -j --调用bzip2程序进行压缩或解压缩 |__ -v --输出详细信息 |__ -f --表示要使用的包文件 |__ -P --打包时保留文件及目录的绝对路径 |__ -p --打包时保留文件及目录的权限 |__ -C --解压时指定释放的目标文件夹 |__ --exclude=文件名 --将符合的文件或目录排除, 支持相对路径( ./除外). |__ --remove-files --归档/压缩之后删除源文件 tar [选项] [路径]文件名 源文件 tar [选项] 备份文件 -C 存放目录 批量解压: ls *.tar.gz | xargs -n1 tar xzf find -maxdepth 1 -name "*.bz2"| xargs -i tar xjf {}
grep命令
grep命令用于在文件中查找并显示包含指定字符串的行
grep [选项] "正则表达式" 文件 |__ -b --将可执行文件(binary)当作文本文件(text)来搜索 |__ -c --仅显示找到的行数 |__ -i --查找内容时忽略大小写 |__ -n --显示行号 |__ -v --反向查找 |__ -o --只输出文件中匹配到的部分
find命令
find命令用于按照指定条件来查找文件
find [查找路径] [选项] 文件名 |__ -name --匹配名称 |__ -perm --匹配权限(mode为完全匹配, -mode为包含即可.) |__ -user --匹配所有者 |__ -group --匹配所有组 |__ -uid 数字 --查找匹配指定UID的文件或目录 |__ -mtime -n/+n --匹配修改内容的时间(-n指n天以内, +n 指n天以前.) |__ -atime -n/+n --匹配访问文件的时间(-n指n天以内, +n 指n天以前.) |__ -ctime -n/+n --匹配修改文件权限的时间(-n指n天以内, +n指n天以前.) |__ -nouser --匹配无所有者的文件 |__ -nogroup --匹配无所有组的文件 |__ -newer f1 !f2 --匹配比文件f1新但比f2旧的文件 |__ --type b/d/c/p/l/f --匹配文件类型(后面的字幕参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |__ -size +n/-n --匹配文件的大小(+50k为查找超过50KB的文件, 而-50k为查找小于50KB的文件) |__ -empty --查找大小为0的文件 |__ -prune --忽略某个目录 |__ -maxdepth 数字 --指定开始遍历搜索的最大深度 |__ -mindepth 数字 --指定开始遍历搜索的最小深度 |__ -amin n --n分钟内被访问 |__ -cmin n --n分钟内被修改 |__ -exec <执行指令> --假设find指令的回传值为True, 就执行该指令.
软件包管理命令
RPM(红帽软件包管理器)
man rpm: 获得关于rpm命令的详细帮助信息
rpm [选项] |__ -q --查询当前系统中已经安装的软件包 |__ -qa --显示当前系统中以RPM方式安装的所有软件列表 |__ -qi --查看指定软件包的名称、版本、许可协议、用途描述等详细信息. |__ -ql --显示指定的软件包在当前系统中安装的所在目录、文件列表. |__ -qf --查看指定的文件或目录是由哪个软件包所安装的 |__ -qp --查询未安装的RPM包文件 |__ -qpi --查看指定软件包的名称、版本、许可协议、用途描述等详细信息. |__ -qpl --查看该软件包准备要安装的所有目标目录、文件列表. | |__ -ivh --显示软件安装的过程信息、及时跟踪安装进度. | |__ -i --在当前系统中安装一个新的RPM软件包 | |__ -v --显示软件安装过程中的详细信息 | |__ -h --在安装或升级软件包的过程中, 以#号显示安装进度. | |__ -e --卸载指定名称的软件包 |__ -U --检查并升级系统中的某个软件包, 若该软件包原来并未安装, 则等同于-i选项. |__ -F --检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装. |__ --forcez --强制安装某个软件包/或者安装时使用*通配符 |__ --nodeps --在安装或升级、卸载一个软件包时, 不检查与其他软件包的依赖关系. | |__ --rebuilddb --RPM数据库重建 |__ --inidb --RPM数据库重建
Yum软件仓库
yum [选项] |__ repolist all --列出所有仓库 |__ list all --列出仓库中所有软件包 |__ info 软件包名称 --查看软件包信息 |__ install 软件包名称 --安装软件包 |__ reinstall 软件包名称 --重新安装软件包 |__ update 软件包名称 --升级软件包 |__ remove 软件包名称 --移除软件包 |__ clean all --清除所有仓库缓存 |__ check-update --检查可更新的软件包 |__ grouplist --查看系统中已经安装的软件包组 |__ groupinstall 软件包组 --安装指定的软件包组 |__ groupremove 软件包组 --移除指定的软件包组 |__ groupinfo 软件包组 --查询指定的软件包组信息
账号与权限管理命令
id命令
id命令用于显示指定用户的用户ID和组ID
id [选项] [用户名] |__ -g --显示用户所属群组的ID |__ -G --显示用户所属附加群组的ID |__ -n --显示用户, 所属群组或附加群组的名称. |__ -r --显示实际ID |__ -u --显示用户ID
useradd命令
useradd命令用于创建新的用户账号
useradd [选项] 用户名 |__ -u --指定用户的默认UID号 |__ -d --指定用户的家目录(默认为/home/用户名) |__ -e --指定用户的账号失效时间, 可使用YYYY-MM-DD的日期格式. |__ -m --自动建立用户的登入目录 |__ -M --不建立用户的登入目录, 即使/etc/login.defs系统配置中已设定要建立宿主目录. |__ -g --指定一个初始的用户基本组(必须已存在) |__ -G --指定一个或多个扩展用户组 |__ -s --指定该用户的默认Shell解释器
userdel命令
userdel命令用于删除用户账号
userdel [选项] 用户名 |__ -f --强制删除用户, 即使用户当前已登录. |__ -r --删除用户的同时, 删除与用户相关的所有文件.
su命令
su命令用于切换用户
su 用户名
usermod命令
usermod命令用于修改用户账号属性
usermod [选项] 用户名 |__ -u --修改用户的UID号 |__ -d --修改用户的家目录 |__ -e --修改用户的账户失效时间, 可使用YYYY-MM-DD的日期格式. |__ -l --更改用户账户的登录名称 |__ -s --指定该用户的登录Shell终端 |__ -L --锁定用户账户 |__ -U --解锁用户账户 |__ -g --变更所属用户组 |__ -G --变更扩展用户组
passwd命令
passwd命令用于设置/更改用户口令
passwd [选项] 用户名 |__ -l --锁定用户账户 |__ -u --解锁用户账户 |__ -d --清空指定用户的密码, 仅使用用户名即可登录系统. |__ -S --查看用户账户的状态(是否被锁定) |__ --stdin --为指定用户设置一个新密码, 可以使用管道.
groupadd命令
groupadd命令用于创建新的组账号
groupadd 组名 groupadd -g GID号 组名
groupdel命令
groupdel命令用于删除组账号
groupdel 组名
groupmod命令
groupmod命令用于修改组名或GID号
groupmod [选项] 组名 |__ -n --设置组名 |__ -g --设置组的GID号
newgrp命令
newgrp命令切换用户组
newgrp 组名
gpasswd命令
gpasswd命令用于添加、设置、删除组成员
gpasswd [选项] 成员用户 [root] |__ 不写 --设置组账号的密码 |__ -a --添加成员用户 |__ -d --删除成员用户 |__ -M --同时指定所有成员用户
groups命令
groups命令可以查看指定的用户属于哪些组
groups [用户名]
finger命令
finger命令可以查询指定的用户账号的登录属性等详细信息
finger [用户名]
w命令
w命令可以查询当前主机中的用户登录情况, 列出登录账号名称、所在终端、登录时间、来源地点等信息.
w
文件或目录权限及归属
chmod命令
chmod命令设置文件的权限
chmod [ugoa...][+-=][rwx] 文件或目录... chmod nnn 文件或目录... |__ ugoa --表示该权限设置所针对的用户类别 | |__ u --代表文件属主 | |__ g --代表文件属组内的用户 | |__ o --代表其他任何用户 | |__ a --代表所有用户 | |__ +-= --表示设置权限的操作动作 | |__ + --代表增加相应权限 | |__ - --代表减少相应权限 | |__ = --代表仅设置对应的权限 | |__ rwx --是权限的字符组合形式, 也可以拆分使用. |__ nnn --3位八进制数代表的权限字符组合形式
chown命令
chown命令设置文件的归属
chown 属主 [:[属组]] 文件 chown 属主目录... chown : 属组目录... chown 属主 : 属组目录...
umask命令
umask命令默认指定目前用户在新建文件或目录时的权限默认值
umask nnn
chattr命令
chattr命令设置基于ext2/ext3文件系统的底层属性
chattr [+-=][ai] 文件 |__ +-= | |__ + --在原有参数的基础上, 追加参数. | |__ - --在原有参数的基础上, 移除参数. | |__ = --更新为指定参数 | |__ |__ ai | |__ a --设置只能向文件中添加数据, 而不能删除. | |__ i --设置后, 不能对文件进行删除、写入、改名等操作. |__
lsattr命令
lsattr命令查看基于ext2/ext3文件系统的底层属性
lsattr [选项] 文件 |__ -a --显示所有文件属性 |__ -d --仅显示目录属性 |__ -R --递归显示
硬盘管理命令
fdisk命令
fdisk命令用于管理磁盘分区
fdisk -l #用于列出所有分区表信息 fdisk /dev/硬盘设备 |__ m --查看各种操作指令的帮助信息 |__ p --列出硬盘中的分区情况 |__ n --新建分区 | |__ p --创建主分区 | |__ e --创建扩展分区 | |__ l --创建逻辑分区 | |__ 选择分区序号 | |__ 起始位置 | |__ 结束位置 | |__ 分区大小 | |__ d --删除分区 |__ t --变更分区的类型 | |__ 指定目标分区序号 | |__ 新的系统ID号 | |__ w --退出fdisk分区工具并保存分区操作 |__ q --退出fdisk分区工具, 但不保存分区操作.
partprobe命令
partprobe命令让操作系统检测新的分区表情况
partprobe /dev/硬盘设备
mkfs命令
mkfs命令创建文件系统
mkfs -t [文件系统类型] 分区设备 |__ ext4 --创建EXT4文件系统 |__ vfat --创建FAT32文件系统
mkswap命令
mkswap命令创建交换文件系统
注: 目标分区应先通过fdisk工具将ID号设为82
mkswap 分区设备 swapon 分区设备 swapoff 分区设备
mount命令
mount命令用于挂载文件系统
挂载nfs共享的文件时需要安装nfs-utils
mount [选项] 存储设备 挂载点 |__ -t --指定文件系统的类型 |__ -a --挂载所有在/etc/fstab中定义的文件系统 mount 存储设备 挂载点--系统会自动去判断要挂载文件的类型
umount命令
mount命令用于卸载文件系统
umount 存储设备/挂载点
df命令
查看当前系统中挂载的各文件系统的磁盘使用情况
df [选项] |__ -h --更人性化的方式来显示信息 |__ -k --以KB为单位输出磁盘分区使用情况 |__ -m --以MB为单位输出磁盘分区使用情况 |__ -i --显示磁盘分区文件系统的inode的信息 |__ -t <文件系统类型> --仅显示指定文件系统类型的磁盘信息 |__ -T --显示磁盘分区文件系统的类型
du命令
du命令可用于统计指定目录或文件所占用磁盘空间的大小
du [选项] 文件/目录 |__ -a --统计磁盘空间占用时包括所有的文件, 而不仅仅只统计目录. |__ -h --更人性化的方式来显示信息 |__ -b --以字节为单位输出信息 |__ -k --以KB为单位输出信息 |__ -s --只统计每个参数所占用空间总的大小, 而不是统计每个子目录、文件的大小. |__ --exclude=文件名 --将符合的文件或目录排除, 支持相对路径( ./除外).
scan命令
pvscan命令用于扫描系统中的所有物理卷, 并输出相关信息.
vgscan命令用于扫描系统中已建立的LVM卷组及相关信息
lvscan命令用于扫描系统中已建立的逻辑卷及相关信息
pvscan/vgscan/lvscan
create命令
pvcreate用于将分区或整个硬盘转换成物理卷, 主要是添加LVM属性信息并划分PE存储单位.
pvcreate 分区设备 分区设备...
vgcreate用于将一个或多个物理卷创建为一个卷组
vgcreate 卷组名 物理卷 物理卷...
lvcreate用于从指定的卷组中分割空间
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
display命令
pvdisplay命令用于显示物理卷的详细信息, 默认时将显示所有物理卷的信息.
pvdisplay 物理卷
vgdisplay命令用于显示系统中各卷组的详细信息
vgdisplay 卷组名
lvdisplay命令用于显示逻辑卷的详细信息
lvdisplay 逻辑卷
remove命令
pvremove命令用于将物理卷还原成普通分区或磁盘, 不再用于LVM体系, 被移除的物理卷无法被pvscan识别.
pvremove 物理卷
vgremove命令用于删除指定的卷组
vgremove 卷组名
lvremove命令用于删除指定的逻辑卷
lvremove 物理卷
extend命令
vgextend命令用于扩展卷组的磁盘空间
vgextend 卷组名 物理卷
lvextend命令用于动态扩展逻辑卷的空间
lvextend +L 容量大小 逻辑卷
注: 逻辑卷扩容后更新系统识别的文件系统大小
EXT4:
resize2f 逻辑卷
xfs:
xfs_growfs 逻辑卷
服务管理命令
systemctl命令
systemctl [选项] 服务名称 |__ start --启动服务 |__ stop --停止服务 |__ restart --重启服务 |__ reload --重新加载配置文件(不终止服务) |__ status --查看服务状态 |__ enable --开机自动启动 |__ disable --开机不自动启动 |__ is-enabled --查看特定服务是否为开机自启动 |__ list-unit-files --type=service --查看各个级别下服务的启动与禁用情况
脚本命令
sh命令
UNIX标准的默认shell脚本解释器
sh [选项] 脚本名 |__ -n --不会执行该脚本, 仅查询脚本语法是否有问题, 如果没有语法问题就不显示任何内容, 如果有问题就会提示报错. |__ -v --在执行脚本时, 先将脚本的内容输出到屏幕上然后执行脚本, 如果有错误, 也会给出错误提示. |__ -x --将执行的脚本内容输出到屏幕上, 这是个对调试很有用的参数.
bash命令
Linux标准的默认shell脚本解释器
bash [选项] 脚本名 |__ -n --检测脚本是否正确, 并不执行脚本. |__ -x --执行脚本, 输出执行过程. |__ -c --bash从字符串中读入命令, 如果字符串后还有变量就被设定为从$0开始的位置参数.