前言

shell是一种脚本语言, 须要有编译器执行即:应用程序->shell->操作系统->硬件bash是linux下默认的shellsh是unix下默认的shell多命令执行:xx && xx: 后面执行胜利才会执行前面的命令xx || xx: 后面执行失败才会执行前面的命令xx ; xx : 前后无关联,按程序执行与操作:xx | xx: 对后面执行后果持续前面命令操作重定向输出/输入:< , >stdin:  规范输出,代码:0stdout: 规范输入,代码:1stderr:规范谬误输入,代码:2> file:  笼罩输入正确信息>> file: 追加输入正确信息2> file: 笼罩输入错误信息> file 2>&1: 合并笼罩输入谬误和正确信息到一个文件

api文档

零碎操作类指令

<font size="5">mkdir</font>
作用新建文件夹
格局mkdir [option]... DIRECTORY...
示例rm -rf /xx/xx
option-p递归创立
-m设置目录拜访权限mode,如777
<font size="5">rm</font>
作用删除
格局rm [option]... FILE...
示例rm -rf /xx/xx
option-f强制删除
-r递归删除
-i|-l删除前确认|删除超过3个文件以下或递归删除须要确认
-d删除空目录
-v列出详细信息
<font size="5">chmod</font>
作用权限赋予
格局chmod [option] [权限] [目录或文件]
示例chmod -R 777 /xxx/xxx
option-R给目录下所有文件(递归)授予权限
权限777所有权限
<font size="5">groupadd</font>
作用新增用户组
格局groupadd [option]
示例groupadd -g 8888 gadmin
option-g指定组id
-p应用加密过的明码
-r建设零碎工作组,id必须小于500
<font size="5">useradd</font>
作用新增用户
格局useradd [option]
示例useradd admin -g gadmin -G root
option-g指定用户所属组
-G附加群组
-d指定用户登入的起始目录
-u指定用户id
-r建设零碎账号
-s指定用户登入后应用的shell
-p设置明码
<font size="5">chown</font>
作用设置文件用户和用户组
格局chown [option]... OWNER] FILE...
示例chown -R admin:gadmin /xxx/xx
option-R递归批改
-c显示更改局部信息
-f疏忽错误信息
-h修复符号链接
-v显示具体解决信息
-H命令行参数是指向目录的符号链接,则遍历它
-L遍历遇到的每个指向目录的符号链接
-P不遍历任何符号链接(默认)

文件文本相干指令

<font size="5">stat</font>
作用查看文件状态
格局stat [option] /xx/xx
示例stat /xx/xx
option-L跟踪软连贯文件原始文件状态信息
-f查看文件的文件系统状态信息
-t简洁打印文件状态信息
-c指定格局打印文件状态信息
-c %i: inode
%u: 用户ID
%U: 用户
%g: 用户组ID
%G: 用户组
%m: 磁盘挂载点
%x|y|z: 文件拜访|批改|更改工夫
%A|a: 文件权限
其余查看stat --help自行翻译
<font size="5">cat</font>
作用查看文件内容
格局cat [option] /xx/xx
示例cat /xx/xx
option-A展现所有
-b对非空输入行编号
-n对所有输入行编号
-s间断空行转换为一个空行
-e等价与 -vE
-v除了LFD和TAB之外不可打印的字符用^和M-标记形式显示
-E每行完结中央显示$
-t|-TTAB显示为^|
<font size="5">tail</font>
作用查看文件开端内容
格局tail [option] /xx/xx
示例tail -f /xx/xx
option-f循环读取
-q不显示解决信息
-v显示具体解决信息
-c<num>显示的字节数
-n<num>显示行数
-q从不输入文件的头部
-s-f下每次休眠距离s秒
--pid=PID-f下在pid过程死掉后完结
<font size="5">vi | vim</font>
作用编辑文件
格局vi /xx/xx
示例vi /xx/xx
外部操作挪动光标0: 文章结尾
G: 文章开端
$: 行尾
^: 行首
w: 下个字结尾
e: 下个字结尾
b: 上个字结尾
#|: 该行第#个地位
删除[#]dd: 从光标开始删除[#]行
[#]x|X: 删除光标前面|后面的[#]个字符
复制[#]yy: 从光标往下数复制[#]行
[#]yw: 复制光标到字尾[#]个字
p: 粘贴
替换r: 替换光标所在处字符
R: 替换光标所到之处字符,按esc完结
撤回u: 撤回到上一个操作
更改c[#]w: 更改[#]个字
跳转ctrl+g: 列出光标所在行号
#G: 挪动光标到第#行行首
last line mode
按esc键后输出
格局:[xxx]
set nu展现行号
set ff[?|=unix|=dos][查看|批改]文件格式[为unix|dos]
#跳到#行
/关键字查找关键字,n往后,N往前
?关键字查找关键字,n往前,N往后
w保留
q[!][放弃批改]退出
wq保留后退出
<font size="5">sort</font>
作用排序显示文本(默认升序)
格局sort [option] [目录或文件]
示例sort -u /xxx/xxx
option-u去重
-r降序
-o输入后果到文件
-n数值排序
-h以人类可读的数值排序
-t :按:分列
-k N按第几列排序
-f疏忽大小写
-c查看文件排序,输入第一个乱序行的信息,最初返回1
-C与-c一样,只是不输入内容只返回1
-M月份排序
-b疏忽空白局部,从第一个可见字符排序
<font size="5">awk</font>
作用抽取文件或字符串中的信息
格局awk [option] '[condition]COMMAND' FILE
示例awk -F 'print $1,$3' /etc/passwd
option-F '<分隔符>'|fs='<分隔符>'指定分隔符,如:,默认是空格或tab
-f FILE指定文件中读取awk脚本指令
-v var=val执行解决之前设置变量var初始值val

查找匹配指令

<font size="5">find</font>
作用目录中搜寻文件
格局find [path...] [expression]
expression=[operators|options|tests|actions]
示例find / -xdev -size 100M -exec ls -l {} \;
operators(!|-not)expr; expr1 (-a|-and) expr2; expr1 (-o|-or) expr2; expr1,expr2
options-xdev不会进入到挂载点目录执行但依然会列出,如/dev,/sys
就是把其余文件系统目录当成整体搜寻,而不会搜寻到目录外面
-maxdepth最多搜寻几层
-depth查看目录之前先搜寻目录的内容
-follow遇到符号链接文件,跟踪链接指向文件搜寻
tests-amin/-atime N查找最初N分钟/天拜访的文件
-cmin/-ctime N查找最初N分钟/天被需批改文件状态的文件
-mmin/-mtime N查找最初N分钟/天被批改文件数据的文件
-name pattern按文件名查找
-path pattern指定目录查找
-perm xx按文件权限查找
-user name按文件归属用户查找
-group name按文件归属组查找
-nouser|-nogroup按没有归属[用户|组]查找
-newer file按比file批改工夫新查找
-type [bcdpflsD]查找某类型文件
b:块设施文件
c:字符设施文件
d:目录
p:管道文件
f:一般文件
l:符号链接文件
s:socket套接字
-size N[bcwkMG]按文件大小为N个单位查找
b:512位元组的区块
c:字元数
k:kilo bytes
w:2个位元组
actions-prune在指定目录之外查找
-print|-print0查找到的文件规范打印(开端加换行符)|开端加null字符
-exec command {} ;对所有查找后果(这里{}指的是以后一个查找后果)执行shell指令
;是列表操作符,须要本义(\;)
-ok command {} ;更平安的exec操作,每次执行命令前都会提醒用户是否执行
<font size="5">grep</font>
作用文本搜寻工具
格局grep [option] [pattern] /xx/xx
示例grep -i -n "^x" xx.txt
option-i不辨别大小写
-n显示匹配行号
-v排除匹配后果
-c<num>只统计匹配行数
-E<num>应用egrep命令
-w只匹配过滤的单词
-o只显示匹配的内容,不显示整行
--color=auto过滤后果增加色彩
<font size="5">whereis</font>
作用定位某个命令应用的二进制文件、源文件、手册文件
格局whereis [option] <name>
示例whereis docker
option-b找二进制文件
-m找手册文件
-s找源文件
-f<num>不显示文件的目录名
-u<num>找不蕴含指定类型的文件
-B <dir>指定目录下找二进制文件
-M <dir>指定目录下找手册文件
-S <dir>指定目录下找源文件
<font size="5">which</font>
作用查找某个命令的地位
格局which command [args] <name>
示例which docker
option-n <num>文件名长度大于num
-p <num>绝对路径长度大于num
-w指定输入栏位宽度

过程相干指令

<font size="5">nohup</font>
作用不挂起运行命令(加&则是挂起)
格局nohup [COMMAND] [ARG] [&]
示例nohuo java -jar xx.jar &
<font size="5">ps</font>
作用展现以后过程信息
格局ps [option]
示例ps -ef|grep 9090
打印格局USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
STATD:无奈中断的休眠状态(通常IO的过程)
R:正在执行中
S:静止
T:暂停
Z:不存在但临时无奈打消
W:没有足够的记忆体分页可调配
<:高优先序的行程
N:低优先序的行程
option-e|-A所有过程
-f全格局显示
-a除了会话主持过程外的所有过程显示tty
-d<num>显示除了会话主持过程之外所有过程
-u<num>无效的用户id或名字
-x显示没有管制终端的过程
<font size="5">netstat</font>
作用显示网络连接、路由表和网络接口信息
格局netstat [option]
示例netstat -anp|grep docker
打印格局Proto
Recv-Q
Send-Q
Local Address
Foreign Address
State
PID/Program name
协定
网络接管队列
网络发送队列
内网IP地址
外网IP地址
状态
过程ID和应用程序名
StateLISTEN:侦听近程tcp端口连贯申请
SYN_SENT:tcp第一次握手期待服务器确认的状态
SYN_RECV:tcp第二次握手服务端期待客户端确认的状态
ESTABLISHED:tcp三次握手胜利状态
FIN-WAIT-1:被动敞开端敞开利用端程序,tcp收回FIN申请被动敞开连贯后进入的状态
FIN-WAIT-2:被动敞开端接到ACK后进入的状态
CLOSE-WAIT:被动敞开端接到FIN后,收回ACK回应FIN申请后进入的状态
CLOSING:期待近程TCP对连贯中断请求的确认
LAST-ACK:被动敞开端一段时间后接管到文件结束符的应用程序调用CLOSE,也发送FIN期待对方的ACK后进入的状态
TIME-WAIT:被动敞开端接管到FIN后,TCP发送ACK包后进入的状态
CLOSED:被动敞开端接管到ACK后进入的状态
option-a所有连贯
-n显示ip地址而不是域名
-p显示PID和应用程序名
-r<num>显示路由表
-i<num>显示网络接口表
-g显示多重播送性能群组组员名单
-s显示网络工作信息统计表
-M显示假装的网络连线
-v显示指令执行过程
-W显示ip地址且不截断
-N显示网络硬件外围设备的符号连贯名称
-e显示网络其余相干信息
-o显示计时器
-c继续列出网络状态(每隔一秒)
-l显示所有监控中服务器的socket(个别关注端口)
-F显示FIB
-C显示路由器配置的快取信息而不是FIB
-t显示tcp协定的连线情况
-u显示udp协定的连线情况
-x显示unix类型的连线情况,相当于-A unix
--ip显示inet类型的连线情况,相当于-A inet
-A <networktype>|--networktype列出网络类型连线中的相干地址

工具类指令

<font size="5">tar</font>
作用解压缩
格局tar [function] [option] /xxx/xx
示例压缩:tar -zcvf /xx/xx.tar.gz /xxx
解压缩: tar -zxvpf /xx/xx.tar.gz /xxx
function(-c|--create)|--delete|(-u|--update)|(-t|--list)增删改查tar文件
删除性能不能用于已保留在磁带上的文件
-x|--extract|--get解开tar文件
-r|--append附加新文件到tar文件
-A|--catenate|--concatenate追加tar文件作为一个整体到另一个tar文件
-d|--diff|--compare将文件系统里的文件和tar文件里的文件比拟
option-v|--verbose列出每一步解决的文件信息
v: 仅文件名
vv: 权限、文件名等·详细信息
-k|--keep-old-files不笼罩已有文件
-f|--file指定要解决的文件名
-P|--absolute-names绝对路径
-j|--bzip2应用bizp2解压缩
-J|--xz|--lzma调用XZ Utils解压缩
-z|--gzip|--gunzip|--unzip调用gzip解压缩
-Z|--compress|--uncompress调用compress解压缩
<font size="5">zip|unzip</font>
作用zip解压缩
格局zip [option] /xx/xx.zip /xx/xx.txt
示例压缩: zip -r /xx/xx.zip /xx/xx
解压缩: unzip /xx/xx.zip /xx/xx
option-r递归解决,即目录下所有目录和文件
-b指定寄存文件的目录
-d删除压缩内指定文件
-f更新压缩包文件
-m压缩并退出压缩文件,后删除原始文件
-q不显示执行过程
-v显示执行过程或版本信息
-sf显示文件
<font size="5">scp</font>
作用基于ssh协定的近程拷贝
格局scp [option] /xxx [email protected]:/xx/xx
示例scp -r /xx/xx [email protected]:/xx/xx
option-r递归拷贝
-C复制过程中压缩文件或目录
-P指定ssh端口
-p保留文件拜访和批改工夫
<font size="5">date</font>
作用工夫操作
格局date [option] [参数]
示例date -s '2022-10-21 00:00:00'
option没参数显示零碎工夫
+%F显示日期
+%Y|m|d显示零碎年|月|日
+%w显示星期几
+%z|Z显示时区
-s|--set [日期]设置零碎工夫
<font size="5">hwclock</font>
作用操作硬件时钟
格局hwclock [functions] [option]
示例hwclock --show
functions-r|--show显示零碎硬件工夫
--set --date ['08/02/2012 12:00:00']设置硬件工夫为date指定的工夫
-s|--hctosys同步到零碎工夫
<font size="5">tzselect</font>
作用批改时区
格局tzselect
示例tzselect, 界面中抉择时区
再链接ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再批改工夫配置文件:/etc/sysconfig/clock

磁盘相干指令

<font size="5">df</font>
作用显示整个磁盘分区的应用状况
格局df [option] [目录或文件]
示例df -h /xxx/xxx
option-h显示空间大小
<font size="5">du</font>
作用递归查看当前目录的大小(默认kb单位)
格局du [option] [目录或文件]
示例du -h /xxx/xxx
option-h递归显示当前目录空间大小(MB为单位)
-sh [*]只查看当前目录大小[及蕴含目录]
--time递归查看当前目录的大小和工夫
<font size="5">mount</font>
作用挂载零碎
格局mount [option] <source> <directory>
示例mount /dev/sdb /xxx/xx
option-f模仿挂载过程,用于检错,和-v一起用
-v显示执行信息
-a将/etc/fstab定义的所有档案零碎挂上
实现开机主动挂载,也可独自编辑/etc/fstab实现
UUID=xxxxx /d /nfts(这里来自第二步) defaults 0 0
-F为每个挂载设施分叉执行,与-a一起用
用于挂载大量NFS零碎时减速
-n不在/etc/mtab写入挂载材料,因而mount或df无奈查看挂载信息
-r|-w只读|只写
source-L挂载指定标签的硬盘,相当于LABEL=<label>
-U挂载指定uuid的零碎
-U|-L前提是/proc/partition存在
<font size="5">umount</font>
作用卸载零碎
格局umount [option] <source> | <directory>
示例umount /dev/sdb
option-f强制卸载
比方无法访问NFS零碎的状况下
-v显示执行信息
-a卸载所有零碎(/etc/mtab中记录的零碎)
-n不在/etc/mtab写入卸载材料
-l拆散文件系统,稍后革除
-r无奈卸载状况下以只读形式从新挂载
<font size="5">lvdisplay | pvdisplay</font>
作用显示[逻辑|物理]卷信息
格局[lvdisplay|pvdisplay] [option] [逻辑卷|物理卷门路]
示例[lvdisplay|pvdisplay] -m /xxx
option-m显示映射关系
<font size="5">lvremove | pvremove</font>
作用删除逻辑卷|物理卷信息
格局lvremove|pvremove [option] [逻辑卷门路]
示例lvremove|pvdisplay -f /xxx
option-f强制删除
--noudevsync(lvremove)禁用udev同步
-y(pvremove)所有问题都回yes
<font size="5">lvextend</font>
作用扩容
格局lvextend [option] [逻辑卷门路]
示例lvextend -L +100G /xxx
option-L +N[MGTP]扩容逻辑卷大小N,单位(MGTP)
-l +num扩容逻辑盘区数
--noudevsync禁用udev同步
-f扩容不提醒
-r应用fsadm调整与逻辑卷相干的文件系统
-n扩大前不要执行fsck
<font size="5">xfs_growfs</font>
作用扩大xfs文件系统
格局xfs_growfs [option] [挂载点]
示例xfs_growfs /xxx/xx
option-L [size]指定日志区域大小
-D [size]指定扩大文件系统数据局部的大小
-d将文件系统数据局部扩大到底层设施最大的大小
-m指定文件系统中可调配为inode的最大空间百分比新值