【linux】常用shell指令

eveforest -
【linux】常用shell指令
前言
shell是一种脚本语言, 需要有编译器执行
即:应用程序->shell->操作系统->硬件

bash是linux下默认的shell
sh是unix下默认的shell

多命令执行:
xx && xx: 前面执行成功才会执行后面的命令
xx || xx: 前面执行失败才会执行后面的命令
xx ; xx : 前后无关联,按顺序执行

与操作:
xx | xx: 对前面执行结果继续后面命令操作

重定向输入/输出:< , >
stdin:  标准输入,代码:0
stdout: 标准输出,代码:1
stderr:标准错误输出,代码:2
> file:  覆盖输出正确信息
>> file: 追加输出正确信息
2> file: 覆盖输出错误信息
> file 2>&1: 合并覆盖输出错误和正确信息到一个文件
api文档系统操作类指令<font size="5">mkdir</font>作用新建文件夹格式mkdir [option]... DIRECTORY...示例rm -rf /xx/xxoption-p递归创建-m设置目录访问权限mode,如777<font size="5">rm</font>作用删除格式rm [option]... FILE...示例rm -rf /xx/xxoption-f强制删除-r递归删除-i|-l删除前确认|删除超过3个文件以下或递归删除需要确认-d删除空目录-v列出详细信息<font size="5">chmod</font>作用权限赋予格式chmod [option] [权限] [目录或文件]示例chmod -R 777 /xxx/xxxoption-R给目录下所有文件(递归)授予权限权限777所有权限<font size="5">groupadd</font>作用新增用户组格式groupadd [option]示例groupadd -g 8888 gadminoption-g指定组id-p使用加密过的密码-r建立系统工作组,id必须小于500<font size="5">useradd</font>作用新增用户格式useradd [option]示例useradd admin -g gadmin -G rootoption-g指定用户所属组-G附加群组-d指定用户登入的起始目录-u指定用户id-r建立系统账号-s指定用户登入后使用的shell-p设置密码<font size="5">chown</font>作用设置文件用户和用户组格式chown [option]... OWNER] FILE...示例chown -R admin:gadmin /xxx/xxoption-R递归修改-c显示更改部分信息-f忽略错误信息-h修复符号链接-v显示详细处理信息-H命令行参数是指向目录的符号链接,则遍历它-L遍历遇到的每个指向目录的符号链接-P不遍历任何符号链接(默认)文件文本相关指令<font size="5">stat</font>作用查看文件状态格式stat [option] /xx/xx示例stat /xx/xxoption-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/xxoption-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/xxoption-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/xxxoption-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/passwdoption-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,expr2options-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.txtoption-i不区分大小写-n显示匹配行号-v排除匹配结果-c<num>只统计匹配行数-E<num>使用egrep命令-w只匹配过滤的单词-o只显示匹配的内容,不显示整行--color=auto过滤结果添加颜色<font size="5">whereis</font>作用定位某个命令使用的二进制文件、源文件、手册文件格式whereis [option] <name>示例whereis dockeroption-b找二进制文件-m找手册文件-s找源文件-f<num>不显示文件的目录名-u<num>找不包含指定类型的文件-B <dir>指定目录下找二进制文件-M <dir>指定目录下找手册文件-S <dir>指定目录下找源文件<font size="5">which</font>作用查找某个命令的位置格式which command [args] <name>示例which dockeroption-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 COMMANDSTATD:无法中断的休眠状态(通常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 /xxxfunction(-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/xxoption-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/xxoption-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 --showfunctions-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/xxxoption-h显示空间大小<font size="5">du</font>作用递归查看当前目录的大小(默认kb单位)格式du [option] [目录或文件]示例du -h /xxx/xxxoption-h递归显示当前目录空间大小(MB为单位)-sh [*]只查看当前目录大小[及包含目录]--time递归查看当前目录的大小和时间<font size="5">mount</font>作用挂载系统格式mount [option] <source> <directory>示例mount /dev/sdb /xxx/xxoption-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/sdboption-f强制卸载
比如无法访问NFS系统的情况下-v显示执行信息-a卸载所有系统(/etc/mtab中记录的系统)-n不在/etc/mtab写入卸载资料-l分离文件系统,稍后清除-r无法卸载情况下以只读方式重新挂载<font size="5">lvdisplay | pvdisplay</font>作用显示[逻辑|物理]卷信息格式[lvdisplay|pvdisplay] [option] [逻辑卷|物理卷路径]示例[lvdisplay|pvdisplay] -m /xxxoption-m显示映射关系<font size="5">lvremove | pvremove</font>作用删除逻辑卷|物理卷信息格式lvremove|pvremove [option] [逻辑卷路径]示例lvremove|pvdisplay -f /xxxoption-f强制删除--noudevsync(lvremove)禁用udev同步-y(pvremove)所有问题都回yes<font size="5">lvextend</font>作用扩容格式lvextend [option] [逻辑卷路径]示例lvextend -L +100G /xxxoption-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/xxoption-L [size]指定日志区域大小-D [size]指定扩展文件系统数据部分的大小-d将文件系统数据部分扩展到底层设备最大的大小-m指定文件系统中可分配为inode的最大空间百分比新值
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

linuxshell运维服务器devops

扩展阅读

加个好友,技术交流

1628738909466805.jpg