Linux
常用
管理语句
Shell命令(变量)
正则表达式
重定向
EXPECT
流程控制
函数
日志
SED
sed常用操作
sed组合命令
sed脚本
AWK
awk常用
awk流程控制
awk脚本
SSH
SSH密钥的批量分发与执行
SSH连接很慢
ACL文件访问控制
计划任务
常用语句
批量添加用户和密码
批量修改密码
临时和永久关闭Selinux
修改主机名
Linux内核参数
无人值守安装
ISO镜像(mondorescue)
软件管理
SYSTEM服务
YUM本地仓
存储管理
逻辑卷LVM
磁盘阵列RAID
备份恢复相关命令
fio磁盘性能测试
内存管理
IPTABLES防火墙
FIREWALLD防火墙
curl请求
Linux问题
漏洞修复
限制网卡带宽
CentosYUM源
rsyslog 占用内存过高
df -h 卡住解决
Linux故障问题
网络配置
升级内核
Openssl生成证书
CENTOS6升级7
本文档使用MrDoc发布
返回首页
-
+
常用
2019年11月19日 10:20
admin
##安装第三方源 yum install epel-release yum install http://repo.okay.com.mx/centos/7/x86_64/release/okay-release-1-1.noarch.rpm #env >####查看环境变量 ![](/media//202112/2021-12-28084132793634.png) #find >#####find path test action #path说明:=========================================== #搜索多路径时,路径用空格隔开 find /etc /usr/local -iname '*.sh' #指定搜索路径深度 find /etc -maxdepth 1 -iname '*.sh' #指定不搜索路径 find /etc -not -path './MHA软件包*' -iname '*.sh' ----------------------------------------------------------- #test说明:=========================================== \!或'!' #表示取反 -name filename #表示包含指定匹配模式的文件名 -iname filename #表示包含指定匹配模式的文件名,不区分大小写 -type #指定文件类型,一般为f(普通文件),d(目录) -size [+-]n #+10m=就是大于10m,-10m就是小于10m,10m就是等于10m -empty #匹配空文件 -mmin [+-]n #文件内容最后一次修改的时间(分钟)。+10就是大于10分钟,-10就是10分钟内,10就是刚好10分钟 -mtime [+-]n #文件内容最后一次修改的时间(天)。+10就是大于10天,-10就是10天内,10就是刚好10天 -newermt '2019-11-16 11:30' ! -newermt '2019-11-16 11:40' #表示从什么时间到什么时间段内 find ./ -type f -newermt '2019-11-16 11:30' ! -newermt '2019-11-16 11:40' ----------------------------------------------------------- #action说明:=========================================== -print #默认动作,将搜索结果写入到标准输出 -ls #以详细格式显示搜索结果 -delete #将搜索到的文件删除 -exec command {} \; #查找并执行命令 -ok command {} \; #跟上面一样,但是需要用户确认 find ./tmp -name "*.sh" -exec rm -f {} \; #xargs xargs -i: 分批处理 xargs -t: 打印执行语句 #cat >####分页查看文件内容 cat [选项] 文件名 选项: -n 或 --number: #由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank: #和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank: #当遇到有连续两行以上的空白行,就代换为一行的空白行。 #less >####分页查看文件内容 less 文件名 空格 (下一页) 方向键 (上下回翻) q键 (退出查看) #head >####查看文件头部内容 head [选项] 文件名 选项: -n 显示文件前n行的内容 -c 显示文件的前n个字节 #tail >####查看文件尾部内容 tail [选项] 文件名 选项: -n 显示文件后n行的内容 -f 动态显示文件内容,按Ctrl+C退出 #wc -l #统计行数 -m #统计字符数 -w #统计单词数 -c #统计文本的字节数 -L #统计最长行的长度 #sort -n 依照数值的大小排序。 -r 以相反的顺序来排序。 -k 定义排序关键字。 -t 指定字段分隔符。默认为空格 -u 删除重复的行,只保留第一个 -m 仅仅合并文件,不执行排序操作 -R 随机排序 #uniq >####Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。 #一定要相邻才能聚合,所以使用前一般sort先 -c或--count 在每列旁边显示该行重复出现的次数。 -d 仅显示重复行 #cut -d:指定字段的分隔符,默认的字段分隔符为“TAB”; -f:显示指定字段的内容; -s:不输出不包含列分隔符的行; cut -d ":" -f 1,2,4-8 c.log #连续列号可用“-”连接 #cp >####复制文件 -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍; -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接; -i:询问,如果目标文件已经存在,则会询问是否覆盖; -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件; -s:把目标文件建立为源文件的软链接文件,而不是复制源文件; -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间); -r:递归复制,用于复制目录; -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。 #grep -c #只打印匹配的文本行的行数,不显示匹配的内容 -i #匹配是忽略字母的大小写 -l #只列出含有匹配的文本行的文件的文件名,而不显示具体的匹配的内容 -n #列出所有的匹配的文本行,并显示行号 -v #只显示不匹配的文本行 -w #匹配整个单词 -q #静默的方式,即不会产生输出,成功则$?返回0,刚好走if的条件分支,非常巧妙! -E #支持扩展正则表达式 -P #支持Perl正则表达式 #egrep #查询包含内容的文件 egrep multicore /root/* #递归查询 egrep -R multicore /root/ ![](/media//202108/2021-08-20151732678814.png) #pgrep pgrep nginx #查nginx进程号 #echo -e #支持转义字符 -n #不换行输出 #参数 \a 报警符 \c 禁止继续输出文本 \f 换页符 \n 换行符 \r 回车符 \t 水平制表符 \v 垂直制表符 >##颜色 ![](/media//202002/2020-02-05134551486129.png) ![](/media//202002/2020-02-05134603535544.png) ![](/media//202002/2020-02-05134616202022.png) #join -1 field:根据第一个文件的指定列进行联接 -2 field:根据第二个文件的指定列进行联接 -a filenum:指定是否输出不匹配的行 #左、右、全联接依靠此参数 -i:在比较关键字时忽略大小写 -o:自定义输出列 join -1 1 -2 3 -o 1.1 1.2 2.3 -a 1 file1 file2 #用file1的第一列与file2的第三列进行左联接,输出file1的第一、二列与file2的第三列 #diff -c #输出包含上下文环境格式 -y #以并列的方式显示文件的异同之处 diff -c filename1 filename2 .... #tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 -N:在指定日期之后的文件才会打包 --exclude file: 排除文件/目录 tar -cf all.tar *.jpg #这条命令是将所有 .jpg 的文件打成一个名为 all.tar 的包。-c 是表示产生新的包,-f 指定包的文件名。 tar -zcvf all.tar.gz *.jpg #这条命令是将所有 .jpg 的文件打成一个名为 all.tar.gz 的包。-c 是表示产生新的包,-f 指定包的文件名,-z表示压缩,-v显示过程。 tar -rf all.tar *.gif #这条命令是将所有 .gif 的文件增加到 all.tar 的包里面去,-r 是表示增加文件的意思。 tar -uf all.tar logo.gif #这条命令是更新原来 tar 包 all.tar 中 logo.gif 文件,-u 是表示更新文件的意思。 tar -tvf all.tar #这条命令是列出 all.tar 包中所有文件,-t 是列出文件的意思。 tar -xf all.tar #这条命令是解出 all.tar 包中所有文件,-x 是解开的意思。 tar -xvf 压缩文件 -C /指定目录 #tar解压到指定文件夹 tar -zcvf push_gateway-huawei.tar.gz --exclude=push_gateway/log/* push_gateway #排除push_gateway/log/目录里面的文件 ####注意:解压指定文档前不需要加/ --- tar -zxvf d9auto_opt.tar.gz opt/proxy_pool-2.1.0/README.md opt/proxy_pool-2.1.0/log/schedule.log #解压指定文件 tar -zxvf d9auto_opt.tar.gz opt/proxy_pool-2.1.0/log/ #解压指定文件夹 --- #zip -b<工作目录> 指定暂时存放文件的目录。 -c 替每个被压缩的文件加上注释。 -d 从压缩文件内删除指定的文件。 -f 更新现有的文件。 -q 不显示指令执行过程。 -r 递归处理,将指定目录下的所有文件和子目录一并处理。 -S 包含系统和隐藏文件。 #将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip: zip -q -r html.zip /home/html #如果在我们在 /home/html 目录下,可以执行以下命令: zip -q -r html.zip * #从压缩文件 cp.zip 中删除文件 a.c zip -dv cp.zip a.c #unzip -l 显示压缩文件内所包含的文件。 -t 检查压缩文件是否正确。 -L 将压缩文件中的全部文件名改为小写。 -M 将输出结果送到more程序处理。 -n 解压缩时不要覆盖原有的文件。 -o 不必先询问用户,unzip执行后覆盖原有文件。 -P<密码> 使用zip的密码选项。 -q 执行时不显示任何信息。 -s 将文件名中的空白字符转换为底线字符。 -d<目录> 指定文件解压缩后所要存储的目录。 -x<文件> 指定不要处理.zip压缩文件中的哪些文件。 #查看压缩文件中包含的文件 unzip -l abc.zip #解压文件 unzip abc.zip #解压指定文件到指定目录 unzip <Your zip file> "*mobile/要解压的文件" -d <要解压的目录> #* : 可以使用*做通配符,具体使用我就不废话了! #-d : -d 参数后面跟上你要解压文件到哪个目录; #fold >####格式化 -s 在空格处折断行 -w 指定宽度,默认值是80列 #nl >####添加行号 -b:显示风格,可以去a,t值 #a表示为所有行添加行号,t表示仅仅为非空行添加行号(默认) -i:行号的增量,默认值为1 -v:行号的起始值,默认值为1 #tr >####转换或删除 -s: #压缩set1中重复的字符 -t: #将字符集set1用set2转换 -d: #删除字符集set1中的所有字符,不执行替换操作 -------------------------------------------------------- tr [a-z] [A-Z] < c.log #把c.log中的小写字母转换为大写 #trap #信号: 0信号 #当进程退出时,会触发信号0 ERR信号 #在某条命令返回非0状态时触发 DEBUG信号 #在脚本的每一条命令执行之前触发 cat text.sh #!/bin/bash funcion signal_handler() { echo "good bye" } trap signal_handler 0 #当进程退出时,会触发信号0 #history >####查看命令历史 1、bash中默认命令记忆可达1000个。这些命令保存在主文件夹内的.bash_history中。 2、~/.bash_history:记录的是前一次登录以前所执行过的命令。至于本次登录的命令暂时存储在内存中,注销成功后会写入文件中。 3、在/etc/profile中添加HISTSIZE=10000,可调整记录的条数 -------------------------------------------------------- history [#] : 列出最近的#条命令,不带#时,为列出全部。 -c: 将目前shell中的所有history命令消除。对命令历史文件没有影响 -w :将本次登录的命令写入命令历史文件中, 默认写入~/.bash_history。 -------------------------------------------------------- >####调用历史命令 !string #调用最后一次执行的以string开头的命令 !n #调用第n条历史命令 #alias >####别名 alias[别名]=[指令名称] -------------------------------------------------------- alias #查看所有的别名 alias ll='ls -lrt' #设置别名ll unalias ll #取消别名ll #date day=$(date "+%Y年%m月%d日") day=$(date -d "$day -1 day" "+%Y年%m月%d日") day=$(date -d "$day -1 month" "+%Y年%m月%d日") #浮点数计算 echo | awk '{printf ("%.2f\n",'"$a/$b*100"')}' #nload ![](/media//202102/2021-02-18103639574720.png) #安装nload yum -y install nload #nload 网卡名称 -u 以什么单位显示 nload ens33 -u m #ping ping -c1 -w1 IP #nmap >####查看打开的端口 >#####nmap默认发送一个ARP的PING数据包,来探测目标主机1-10000范围内所开放的所有端口 #1、nmap简单扫描 nmap 173.22.90.10 ![](/media//202104/2021-04-21154650981882.png) #2、nmap自定义扫描 nmap -p20-120 173.22.90.10 ![](/media//202104/2021-04-21154740027093.png) #3、nmap 指定端口扫描 nmap -p22,80 173.22.90.10 ![](/media//202104/2021-04-21154805405160.png) #4、nmap ping 扫描 nmap -sP 173.22.90.16 ![](/media//202104/2021-04-21154920449169.png) #5、nmap设置扫描一个网段下的ip nmap -sP 173.22.90.16/24 ![](/media//202104/2021-04-21155006564707.png) #6、nmap 路由跟踪 nmap --traceroute 8.8.8.8 ![](/media//202104/2021-04-21154932714391.png) #lastb >####查看失败的登录信息 -n #设置列出名单的显示列数 ![](/media//202104/2021-04-21154327732709.png) #lastlog >####列出所有用户最近登录的信息 ![](/media//202104/2021-04-21163303903236.png) --- #stat >####查看文件信息 stat <文件> ![](/media//202112/2021-12-24095635663829.png) --- #lsof ##显示使用filename文件的进程 lsof filename ![](/media//202112/2021-12-24100831202323.png) --- ##显示进程现在打开的文件 lsof -c python3 ![](/media//202112/2021-12-24101052831516.png) --- ##显示进程号程序打开的文件 lsof -p PID ![](/media//202112/2021-12-24101209637187.png) --- ##通过协议及端口查进程 lsof -i <协议>:<端口> lsof -i udp:80 lsof -i tcp:80 ![](/media//202112/2021-12-24101344054173.png) --- #basename ##basename指定一个路径,basename命令会删掉所有的前缀包括最后一个slash(‘/’)字符,然后将字符串显示出来 --- ####语法 basename [pathname] [suffix] #suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。 --- #示例: basename /tmp/test/file.txt #结果:file.txt basename /tmp/test/file.txt .txt #结果:file --- #shell相同行首合并 a 1 a 2 a 3 b 2 b 4 得到: a 1, 2, 3 b 2, 4 ======================================================== $echo “a 1 a 2 a 3 b 2 b 4” |awk '{if(a[$1]>0){a[$1]=a[$1]","$2}else{a[$1]=$2}}END{for(i in a)print i" "a[i]}' --- #pstree ####安装 yum -y install psmisc ####使用 pstree -l -a <pid> ####参数说明 |参数|说明 |--|-- |-a|显示每个程序的完整指令,包含路径,参数或是常驻服务的标示。 |-c |不使用精简标示法。 |-G |使用VT100终端机的列绘图字符。 |-h |列出树状图时,特别标明执行的程序。 |-H<程序识别码> |此参数的效果和指定"-h"参数类似,但特别标明指定的程序。 |-l |采用长列格式显示树状图。 |-n |用程序识别码排序。预设是以程序名称来排序。 |-p |显示程序识别码。 |-u |显示用户名称。 |-U |使用UTF-8列绘图字符。 |-V |显示版本信息。
分享到: