linux常用命令大全(非常详细)
之前做过两年的运维,用过很多命令,深切体会到某些linux命令熟练掌握后对效率提升有多大。举个简单的例子,在做了研发后经常会有跑一些数据,对于结果数据的处理,我们的产品同学一般都习惯于用excel做统计,把数据复制到excel里,然后数据分列,排序………… 最后得出某些简单的结论,我只需要cat, sort, uniq, awk, grep 这几个命令挥手间完成相同的操作。 这里我总结下我工作这几年用过的一些命令,当然,这里就不提那些vim cd ls mv cp 这种简单的命令了,如果你都不会这些命令的话,建议你先学习下。这里命令很多,我只简单列出几个我常用的参数。其实很多命令我也用的不是特别多,这篇文章我也只是希望能让大家知道有这样一个工具,但具体用如果想继续深入了解的话建议查看下手册。
纯手打,后期会补充,文章如果对你有帮助,请点赞,谢谢!
补充一点:平时用的较多的是vi编辑器快捷键,熟练掌握之后可以事半功倍
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
命令模式-->插入模式 i --- 表示从光标所在位置进入编辑状态 I --- 表示将光标移动到一行的行首,再进入编辑状态 o --- 在光标所在行的下面,新起一行进行编辑 O --- 在光变所在行的上面,新起一行进行编辑 a --- 将光标移动到右边的下一个字符,进行编辑 A --- 将光标移动到一行的行尾,进入到编辑状态 C --- 将光标到行尾内容进行删除,并进入编辑状态 cc --- 将整行内容进行删除并进入编辑状态 总结:移动光标位置,并进入编辑状态方法 只移动光标,不进入编辑状态 大写字母G 将光标快速切换尾部 小写字母gg 将光标快速切换首部 ngg n表示移动到第几行 $ 将光标移动到一行的结尾 0/^ 将光标移动到一行的行首 命令模式--底行模式 : 输入一些命令 / 进入搜索状态(向下搜索 n依次向下) ? 进入搜索状态(向上搜索 n依次向上) 特殊使用技巧: 将一行内容进行删除(剪切) deletedelete=dd 将多行内容进行删除(剪切) 3dd 将内容进行粘贴 p 粘贴多次内容 3p 复制一行内容 yy 复制多行内容 3yy 操作错误如何还原 小写字母u undo
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 ctrl+a 将光标快速移动到行首 2 ctrl+e 将光标快速移动到行尾 3 ctrl+?? ?? 将光标按单词快速左右移动 4 ctrl+w 将空格分隔的一个字符串整体进行删除(剪切) 5 ctrl+u 将光标所在位置到行首内容进行删除(剪切) 6 ctrl+k 将光标所在位置到行尾内容进行删除(剪切) 7 ctrl+y 粘贴剪切的内容 8 ctrl+s xshell进入到了锁定状态 suo锁 9 ctrl+q 解除锁定状态 quit推出锁定状态
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 最常用的 2 3 u 复原前一个动作。(常用) 4 [Ctrl]+r 重做上一个动作。(常用) 5 这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦! 6 .不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用) 7 8 G 移动到这个档案的最后一行 o 移动到下一行并进入编辑模式 (常用) 9 gg 移动到这个档案的第一行,相当于 1G 啊! (常用) 10 nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) 11 r 替换光标所在的字符 12 e 移动到下一行字符末尾 13 w移动到下一行字符开头 14 b移动到上一行字符开头位置 15 y 复制单个字符 yy复制整行 p粘贴 16 ctrl+g列出当前行的行数 17 18 $ 或功能键[End] 移动到这一行的最后面字符处(常用) 19 H 光标移动到这个屏幕的最上方那一行的第一个字符 20 M 光标移动到这个屏幕的中央那一行的第一个字符 21 L 光标移动到这个屏幕的最下方那一行的第一个字符 22 23 24 25 n<Enter> n 为数字。光标向下移动 n 行(常用) 26 0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用) 27 28 $ 命令将光标移动到当前行行尾 29 v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 30 ggVG 选中全部的文本, 其中gg为跳到行首,V选中整行,G末尾 31 32 33 移动光标的方法 34 h 或 向左箭头键(←) 光标向左移动一个字符 35 j 或 向下箭头键(↓) 光标向下移动一个字符 36 k 或 向上箭头键(↑) 光标向上移动一个字符 37 l 或 向右箭头键(→) 光标向右移动一个字符 38 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可! 39 40 41 + 光标移动到非空格符的下一行 42 - 光标移动到非空格符的上一行 43 44 :1,$s/word1/word2/g 或 :%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用) 45 :%s/word1/word2/gc 后面加一个c提示给用户是否需要取代。 46 47 删除、复制与贴上 48 x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) 49 50 dd 删除游标所在的那一整行(常用) 51 ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) 52 d1G 删除光标所在到第一行的所有数据 53 dG 删除光标所在到最后一行的所有数据 54 d$ 删除游标所在处,到该行的最后一个字符 55 d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 56 yy 复制游标所在的那一行(常用) 57 nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) 58 y1G 复制游标所在行到第一行的所有数据 59 yG 复制游标所在行到最后一行的所有数据 60 y0 复制光标所在的那个字符到该行行首的所有数据 61 y$ 复制光标所在的那个字符到该行行尾的所有数据 62 p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) 63 J 将光标所在行与下一行的数据结合成同一行 64 c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
目录
目录和文件.......................................................................1
打包压缩/解压 ......................................................2
查看文件内容 ........................................................3
网络\光盘\备份 ....................................................4
权限管理命令..........................................................5
用户和群组............................................................6
文件搜索...............................................................7
网络、帮助命令.......................................................8
文件系统常用查看命令..............................................9
系统信息查看、防火墙、历史命令...............................10
系统运行、进程状态查看相关....................................11
三剑客相关命令.....................................................12
下载命令.............................................................13
日志文件目录.......................................................14
挂载一个文件系统.................................................15
目录/文件命令
cd /home 进入 '/ home' 目录'
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -a 显示隐藏文件
ls -ld /tmp/a 查看a目录的信息
ls *[0-9]* 显示包含数字的文件名和目录名
tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构
mkdir dirname 创建一个dirname文件夹
mkdir -p /tmp/a/b 递归创建目录
rm -rf dirname 删除目录及内部文件 -r:表示递归删除文件及文件夹;-f:表示强制删除,不提示,平时请使用rm删除
rm dir/123.txt 删除dir 目录目录下的123.txt文件
touch filename 创建一个filename文件
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
mv 123.txt 321.txt 重命名,把123.txt改成321.txt
mv 123.txt webapps/ 移动123.txt文件到指定目录webapps/下
cp 123.txt 1234.txt 复制并重命名 mv和cp都可以用来移动文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -r ./123 /opt/webapps/ 将当前目录下的123目录复制到/opt/webapps/目录下 -r:递归持续复制,用于目录的复制行为
cp -r ./12.txt /opt/webapps/ 复制文件(将当前目录下的12.txt文件复制到/opt/webapps/)
ln -s [原文件] [链接文件] 创建链接,-s软链接
ln -s /etc/issue /tmp/issue.soft 创建文件/etc/issue的软链接/tmp/issue.soft
ln /etc/issue /tmp/issue.hard 创建文件/etc/issue的硬链接/tmp/issue.hard
软链接相当于Windows系统中的快捷方式,硬链接相当于cp -p,文件复制且同步更新
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
scp 远程文件拷贝 条件:两台Linux局域网为局域网,能通信,无防火墙。注意:输入命令后有一次提示,输入【yes】即可,然后输入目标服务器账号的密码。
scp /gxxj/apache-tomcat-7.0.78-ins/ins.war jsdxadm@132.252.6.38:/data/ 将107服务器上的ins.war传到38服务器指定目录
scp /gxxj/apache-tomcat-7.0.78-ins/ins.war yangkun@132.228.125.45:/var/tomcat-7/ 将107服务器上的ins.war传到45服务器指定目录
scp -r /data/apache-tomcat-7.0.78-ins yangkun@132.228.125.45:/var/tomcat-7/ 将38上的Tomcat文件夹移到45机器上
scp /root/abc.zip root@192.168.1.102:/abc/ 要把 192.168.1.240上的 /root/abc.zip 传到 192.168.1.102机并放到/abc目录,可以在192.168.1.240机上用命令
scp -P 1234 /root/abc.zip root@192.168.1.102:/abc/ 若 SSH端口不是默认的22,比如,是端口1234 则加-P参数
tar
-z 是否同时具有gz属性 -j 是否同时具有bz2属性 -J 是否同时具有xz属性 -x 解压缩、提取打包的内容(解压) -t 查看压缩包内容 -c 建立一个压缩,打包文档(压缩) -C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录 -v 显示压缩或者打包的内容 -f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边 -p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P 保留绝对路径
打包实例:.将/root/下的ceshi.txt文件和anaconda-ks.cfg文件和time.sh文件打包为一个文件,名称为“jihe.tar”:
提取jihe.tar文件的内容到/opt目录下:
在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的
将/root/目录下的harry目录打包,但是不打包harry目录下的ha.txt文件,如下图:
二、压缩
linux主要有三种压缩方式:
1.gzip:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式
2.bzip:压缩形成的文件小,但是可用性不如gzip
3.xz:是最新的压缩方式,可以自动提供最佳的压缩率
建议的压缩的时候标明后缀:
参数 | 作用 | 命名方式 |
-z | 用于gzip压缩方式 | 文件名.tar.gz |
-j | 用于bzip2压缩方式 | 文件名.tar.bz2 |
-J | 用于xz压缩方式 | 文件名.tar.xz |
用gzip压缩方式将Golden.apk文件压缩为Golden.apk.tar.gz文件: tar -zcvf Golden.apk.tar.gz Golden.apk
用bzip2的压缩方式将Golden.apk文件压缩为Golden.apk.tar.bz2文件:tar -jcvf
zip命令和unzip命令
在使用zip跟unzip命令之前先查看系统有没有安装这两个命令的包,没有的话要自己安装
查看有没有安装zip跟unzip命令的命令:yum install -y zip unzip
zip命令
基本用法:
zip [参数] [压缩包名] [压缩的目录或者文件的路径]
常用参数:
zip命令的常用参数
-m | 将文件压缩后,删除原文件 |
-o | 将压缩文件内的所有文件的最新变动时间设为压缩的时间 |
-q | 安静模式,在压缩的时候不显示指令执行的过程 |
-r | 递归压缩,将自定目录下的所有子文件以及文件一起处理 |
-x | ”文件列表“,压缩时排除文件列表中的文件 |
unzip命令
基本用法:
unzip [参数] [压缩文件] (-d [目录]) //如果不是用括号里面的内容,则解压文件在当前工作目录
unzip命令的常用参数
-o 不必先询问用户,unzip执行后覆盖原有的文件
-l 显示压缩文件内所包含的文件-c 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包
-t 检查压缩文件是否正确
-v 执行时显示压缩文件的详细信息
-q 安静模式,执行时不显示任何信息
-d 指定文件解压后存储的目录
-x 指定不要处理压缩文件中的那些文件
unzip -o
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 2 bzip2 file1 压缩一个叫做 'file1' 的文件 3 gunzip file1.gz 解压一个叫做 'file1.gz'的文件 4 gzip file1 压缩一个叫做 'file1'的文件 5 gzip -9 file1 最大程度压缩 6 rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 7 rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' 8 unrar x file1.rar 解压rar包 9 tar -cvf archive.tar file1 创建一个非压缩的 tarball 10 tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 11 tar -tf archive.tar 显示一个包中的内容 12 tar -xvf archive.tar 释放一个包 13 tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 14 tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 15 tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包 16 tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 17 tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包 18 zip file1.zip file1 创建一个zip格式的压缩包 19 zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 20 unzip file1.zip 解压一个zip格式压缩包
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1、在Linux下查看进程使用ps -ef | grep xxx 通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过l或ls -l命令即可查看。 ll /proc/PID #或者 ls -l /proc/xxxx/cwd 1、cwd符号链接的是进程运行目录; 2、exe符号连接就是执行程序的绝对路径; 3、cmdline就是程序运行时输入的命令行命令; 4、environ记录了进程运行时的环境变量; 5、fd目录下是进程打开或使用的文件的符号连接
vim cas.properties 查看文件,可编辑 wq保存并退出 ZZ保存并退出 q!强制退出并忽略所有更改 e!放弃所有修改,并打开原来文件
cat filename 查看文件内容(不适合查看长文件)
tail 查看某个文件的尾部,或者查看标准出入的最末尾,默认值显示10行,可以用-n参数来指定输出多少行。
基本用法 tail -n 100 file.txt 输出最末尾的100行
tail -f file.txt 随着文件新增,持续输出新增的内容,一般用来看实时日志
head 和tail命令很相似,不过head是输出头部内容,个人感觉head远没有tail命令用的多。
基本用法 head -n 100 file.txt 输出最开始的100行
more 也是用来查看文件,但more命令只加载一屏的内容,可以向下翻动,因为加载的内容少,所以比cat快多了。
基本用法 more file.txt
less 和more很像,但是可以上下翻动,感觉less和more只需要less就可以了,完全可以去掉more啊
基本用法 less file.txt
tac filename 同上,内容是倒过来显示的
more /etc/services 分页显示文件内容,适合长文件查看 空格或f:翻屏 回车:下一行 q:退出
less /etc/services 同上,但支持向上翻页,pageup:向上翻页 上下箭头:上下一行 输入/,加关键字可搜索,使用n查找下一个关键字位置
head -n 7 /etc/services 显示文件前7行内容
tail -n 3 /etc/services 显示文件最后3行内容
tail -f /var/log/messages 动态显示文件末尾内容
./startup.sh;tail -300f ../logs/catalina.out 边启动tomcat边查看日志(动态查看最新300行日志)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 ifconfig eth0 显示一个以太网卡的配置 2 ifup eth0 启用一个 'eth0' 网络设备 3 ifdown eth0 禁用一个 'eth0' 网络设备 4 systemctl start network # 启动网络服务 5 systemctl restart network # 重启网络服务 6 systemctl stop network # 停止网络服务 7 vim /etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件 8 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 9 ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing) 10 dhclient eth0 以dhcp模式启用 'eth0' 11 route -n show routing table 12 route add -net 0/0 gw IP_Gateway configura default gateway 13 route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16' 14 route del 0/0 gw IP_gateway remove static route 15 echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing 16 hostname show hostname of system 17 host www.example.com lookup hostname to resolve name to ip address and viceversa 18 nslookup www.example.com lookup hostname to resolve name to ip address and viceversa 19 ip link show show link status of all interfaces 20 mii-tool eth0 show link status of 'eth0' 21 ethtool eth0 show statistics of network card 'eth0' 22 netstat -tup show all active network connections and their PID 23 netstat -tupl show all network services listening on the system and their PID 24 tcpdump tcp port 80 show all HTTP traffic 25 iwlist scan show wireless networks 26 iwconfig eth1 show configuration of a wireless network card 27 hostname show hostname 28 host www.example.com lookup hostname to resolve name to ip address and viceversa 29 nslookup www.example.com lookup hostname to resolve name to ip address and viceversa 30 whois www.example.com lookup on Whois database
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容 2 mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件 3 mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件 4 mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件 5 cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件 6 gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件 7 mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件 8 cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中 9 cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3) 10 cdrecord --scanbus 扫描总线以识别scsi通道 11 dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 dump命令的基本命令格式: 2 3 选项说明: 4 -level:备份级别。(一共十个备份级别,具体格式为“-0”~“-9”:“-”和具体的级别数字之间没有空格。其中0就是完全备份;1就是第一次增量备份;2就是第二次增量备份。。。最多支持9次增量备份。) 5 -f 文件名:手工指定备份之后的文件名。 6 -u:备份成功之后,把备份时间记录在/etc/dumpdates文件中。 7 -v:显示备份过程中更多的输出信息。 8 -j:调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式。 9 -W:显示允许被dump的分区的备份等级及备份时间。 10 11 12 dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份 13 dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份 14 restore -if /tmp/home0.bak 还原一个交互式备份 15 rsync -rogpav --delete /home /tmp 同步两边的目录 16 rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync 17 rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录 18 rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录 19 dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作 20 dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件 21 tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作 22 ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容 23 ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录 24 tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接 25 find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 26 find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包 27 dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作 28 dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容 29 30 31 linux - 备份某个文件夹 32 33 注意:备份只能是某个文件系统(filesystem),如果一个目录下面有多个文件系统,那么需要把这几个文件系统都备份 34 35 在备份前需要先df -h文件系统对应的路径,然后查看您的文件在那个文件系统下,然后备份这个文件系统。 36 37 也就是说镜像,就是一个全拿下来。下面是步骤: 38 39 1 40 进入文件夹,使用命令df -h . 41 查看 42 Filesystem Size Used Avail Use% Mounted on 43 44 则说明这个目录所在的的文件系统是,对应的路径是/boot如果这个目录下面是多个文件系统,就需要单独备份了,dump每次只能备份一个文件系统 45 譬如在目录 / 下,df -h 就可以查看到多个文件系统。 46 47 然后我们开始备份这个文件系统 48 dump -0u -f /root/boot.dump /boot 49 注意顺序,先写备份生成的文件,然后写备份的文件系统(filesystem) 50 然后等待备份,这是第一次备份,可以继续备份 51 52 dump -0u -f /root/boot.dump /boot 周末完整备份 53 在这个基础上做增量备份 54 dump -1u -f /root/boot.dump.1 /boot 周一 55 dump -1u -f /root/boot.dump.11 /boot 周二 56 dump -1u -f /root/boot.dump.111 /boot 周三 57 58 上面三个文件都是在0的基础上进行了3次增量备份 59 还原的时候0+上面的一个就行 60 还原到周一 61 restore -rf /root/boot.dump 62 restore -rf /root/boot.dump.1 63 还原到周二 64 restore -rf /root/boot.dump 65 restore -rf /root/boot.dump.2 66 67 注意,在restore的时候一定要到还原的路径下,执行完整备份后,在这个路径下会多出来grub 和lost +found ,删除掉 68 如果出现报错:restore: Incremental tape too high 69 那么先执行原来的完整备份。 70 71 72 ~~~ 73 dump -W 查看有没有文件被dump过数据。 74 备份的时间写入 /etc/dumpdates文件中。查看命令 cat /etc/dumpdates
chmod 777 filename 给文件分配读写运行权限(4读,2写,1可运行) 第一个数字代表文件所有者,第二个数字代表所在用户组,第三个数字代表其他用户
chmod 754 * 给当前目录的所有文件赋权,文件所有者可读可写可运行,用户组可读可运行,其他用户可读
chmod -R 777 /tmp/a 将/tmp/a目录及以下目录权限赋予777 -R:递归修改,不加该参数只是修改了a目录的权限,a目录下的子目录权限不变
chown test aa.py --修改fileb的拥有者为myy
chgrp groupb aa.py --改变test文件所属群组
umask -S 以rwx形式显示新建文件缺省权限,即新建的文件有什么权限(注意:文件类型会自动去掉可运行权限)
umask 023 将新建文件的权限设置为754(rwxr-xr--) 023=777-754
useradd user1 创建用户
passwd username 设置密码
userdel -r user1 删除用户 -r 删除用户的同时删除用户家目录
groupadd groupname 创建用户组
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2025-12-31 user1 设置用户口令的失效期限
su - user1 切换用户 -:代表连带用户的环境一起切换 -c:仅执行一次命令,而不切换用户身份
sudo su - 切换用户
w 查看当前登录用户(详细)
who 查看当前所有登录用户
last 查看用户的登录记录,包括多次登录的记录
lastlog 查看所有用户的最后登录时间
touch /etc/nologin 禁止除了root以外的所有用户登录 该命令是在/etc目录下创建了一个nologin文件
passwd -l username 禁止指定用户登录
passwd -u username 解除被禁止登陆的用户
passwd -d username 清除指定用户的密码,可以无密码登录该用户
find [搜索范围] [搜索条件] 消耗资源,速度慢,最好不用
-name 按照文件名查找文件 -user按照文件属主来查找文件
-type 查找某一类型的文件 -group 按照文件所属组来查找文件
find / -name init 全盘搜索名为init的文件
文件类型描述 b 块设备文件 c 字符设备文件 d目录 f普通文件 l 符号链接
find /home -type f -user root 根据文件权限查找文件,使用-perm 选项。所有者使用-user 选项
find /home -type f -perm 777 查找 /home 下权限为 777 的普通文件。
find /etc -name init 在目录/etc中查找文件init(只有文件名为init的文件才会被搜索出来)
find /etc -name *init* 在目录/etc中查找文件名包含init的文件,*代表多个字符
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find /etc -name init??? ?匹配单个字符
find -name *.text 查找以.text结尾的文件
find path -size +25k 查找指定目录下文件大小大于25k的所有文件 +表示大于,-表示小于,不写表示等于,单位k为小写,M为大小
find path -size +25M -a -size -30M 查找指定目录下文件大小大于25M并且小于30M的所有文件 -a表示and,-o表示or
locate filename 该命令建立资料库,系统会定期更新文件到资料库中,在资料库中查找,速度非常快。因为资料库不是实时更新,所以可能新建的文件查找不到。
updatedb 立即更新资料库,资料库不收录/tmp目录下的文件,即使updatedb,/tmp下的文件locate命令也查找不到
which cp 搜索cp命令所在的目录及别名信息
which useradd 搜索useradd命令所在的目录
whereis useradd 搜索useradd命令所在目录,以及帮助文档路径
grep -iv [指定字串][文件] 在文件中搜索字串匹配的行并输出 -i 不区分大小写 -v 排除指定字串 -n:输出行号
grep mysql /root/install.log 在install.log文件中查找mysql的行,并列出该行内容 --color=auto 搜索出的关键字用颜色显示
grep -v ^# /etc/inittab 去掉以#开始的行(注释行,^表示行首)
man ls 查看ls命令的帮助信息
man services 查看配置文件services的帮助信息
网络命令
write <用户名> 给用户发信息,以Ctrl+D保存结束(需要用户登录状态)
write linzhiling 给linzhiling用户发送信息,回车后书写要发的信息,前提是用户是已登录状态
wall [message] 发送广播信息,即给所有在线用户发送信息
mail <用户名> 给用户发送邮件,即使网络不通也可以使用
ping 192.168.1.2 给指定IP地址发送数据包,测试网络连通性,Ctrl+C 停止
ping -c 3 192.168.1.2 给指定IP地址发3次数据包
ifconfig 网卡名称 IP地址 查看和设置网卡信息
traceroute 显示数据包到主机间的路径
traceroute www.sina.com.cn 查看本机到新浪网的路由节点,一般用来查看哪个节点的网络出现问题
netstat 显示网络相关信息 -t TCP协议 -u UDP协议 -l 监听 -r 路由 -n 显示IP地址和端口号
netstat -tlun 查看本机监听的端口(udp没有监听状态,只有tcp有)
netstat -an 查看本机所有的网络连接 ESTABLISHED:正在连接的网络
netstat -rn 查看本机路由表
netstat -ano 查看端口号
netstat -nat|grep -i "8080"|wc -l 查看某端口连接数
setup 配置网络
df hl 查看磁盘占用情况
du -sh 某目录占用磁盘空间大小,不包括子目录和目录下的文件 -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
du -h filename 指定文件占用的磁盘空间大小
du -ah --max-depth=1 查看某目录下全部文件及文件夹的磁盘占用大小和目录总占用空间大小 -a:显示目录占用的磁盘空间大小,
还要显示其下目录和文件占用磁盘空间的大小;-h:以人类可读的方式显示;不加--max-depth=1会把所有下下级等目录占用空间都列出来
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 系统信息 2 arch 显示机器的处理器架构 3 uname -m 显示机器的处理器架构 4 uname -r 显示正在使用的内核版本 5 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 6 hdparm -i /dev/hda 罗列一个磁盘的架构特性 7 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 8 cat /proc/cpuinfo 显示CPU info的信息 9 cat /proc/interrupts 显示中断 10 cat /proc/meminfo 校验内存使用 11 cat /proc/swaps 显示哪些swap被使用 12 cat /proc/version 显示内核的版本 13 cat /proc/net/dev 显示网络适配器及统计 14 cat /proc/mounts 显示已加载的文件系统 15 lspci -tv 罗列 PCI 设备 16 lsusb -tv 显示 USB 设备 17 date 显示系统日期 18 cal 2007 显示2007年的日历表 19 date 041217002007.00 设置日期和时间 - 月日时分年.秒 20 clock -w 将时间修改保存到 BIOS
top 性能分析,动态显示内存(Mem),Cpu占用情况
sync 强制将缓存区数据写入硬盘,释放缓存区,sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件;echo 1 0 默认 ,1 清空页缓存, 2 清空inode和目录树缓存, 3 清空所有缓存。可以通过cat /proc/sys/vm/drop_caches命令查看。
free -m 相对于top 提供了更简洁的查看系统内存使用情况
free -9 突然终止运行的进程会导致系统资源无法释放,此时需使用free命令回收内存
kill -pid kill -signal pid 杀掉进程 pid是进程号,signal:1重跑(重启进程(以使配置生效等)),9强行终止进程,15结束
ps -ef|grep tomcat 标准格式显示含有tomcat的进程 -e:显示所有进程 -f:全格式
ps -eO lstart | grep tomcat 查看进程详细的启动时间
echo $PATH 查看系统环境变量
alias 查看别名
alias vi='vim' 设置别名,等号前后不要有空格
vi /root/.bashrc 让别名永久生效,修改配置文件即可
unalias 别名 删除别名
echo 1 > /proc/sys/vm/drop_caches 清除内存
防火墙
centos7的防火墙相关:
firewall-cmd --state (查看防火墙状态)
systemctl list-unit-files|grep firewalld.service (防火墙状态)
systemctl restart firewalld.service (重启防火墙)
systemctl disable firewalld.service (禁止firewall开机自动启动)
关闭selinux 进入到/etc/selinux/config文件
vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled
centos7以下的防火墙相关:
service iptables stop (关闭防火墙centos7以下)
chkconfig iptables off (禁止开机自动启动)
历史命令
history 查看历史命令记录-c:删除历史命令记录 -w:把缓存中的历史命令写入历史命令保存文件~/.bash_history(正常情况下要等用户退出后才会把历史命令写入文件中)
cat ~/.bash_history 查看历史命令保存文件 默认保存1000条历史记录
注意
使用上下箭头调用以前的历史命令
使用“!n”重复执行第n条历史命令(history命令会列出历史命令,n可在列表中查看得到)
使用“!!”重复执行上一条历史命令
使用“!字符串”重复执行最后一条以该字符串开头的命令
ps 查看系统进程线程,我一般都是用这个命令查看进程pid的,然后用pid做更深入的排查。
-a,查看所有 -u,以用户(user)的格式显示
-x, 显示后台进程运行参数 -ef,以全格式显示进程所有信息,包括父进程Pid,创建人,创建时间,进程号。等等
ps -l 列出与本次登录有关的进程信息
ps -aux | grep nginx 查询nginx进程的详细信息
ps -aux 查看所有进程
ps -T -p ${pid} 查看某个进程的线程
kill -9 pid 杀死进程
服务(service) ,利用service命令查看单个服务的运行状态
如:[root@localhost ~]# service sshd status
openssh-daemon (pid 3701) 正在运行… 注释:查看哪个ip正在远程连接这台主机
利用service命令查看所有服务的运行状态 service --status-all
其他用法:重启该服务:sudo service nginx restart 类似于systemctl start nginx 命令
开启该服务:sudo service nginx start
停止该服务:sudo service nginx stop
pstree 查看系统进程树,他可以把各个进程之间的关系用树形结构标识出来。
top 查看系统进程线程运行情况,包裹资源的使用情况,系统负载等。我的用法是看下服务器上负载是否很高,然后看具体是哪个进程,哪个线程占用cpu比较多。
基本用法
top 列出所有线程负载信息
top -H 列出所有线程的负载信息
top -H -p ${pid} 列出某个pid下所有线程的负载信息
free 查看内存及使用情况
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT 2 cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 3 cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 4 grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug" 5 grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 6 grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 7 grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" 8 sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2" 9 sed '/^$/d' example.txt 从example.txt文件中删除所有空白行 10 sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行 11 echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容 12 sed -e '1d' result.txt 从文件example.txt 中排除第一行 13 sed -n '/stringa1/p' 查看只包含词汇 "string1"的行 14 sed -e 's/ *$//' example.txt 删除每一行最后的空白字符 15 sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部 16 sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容 17 sed -n '5p;5q' example.txt 查看第5行 18 sed -e 's/00*/0/g' example.txt 用单个零替换多个零 19 cat -n file1 标示文件的行数 20 cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行 21 echo a b c | awk '{print $1}' 查看一行第一栏 22 echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏 23 paste file1 file2 合并两个文件或两栏的内容 24 paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分 25 sort file1 file2 排序两个文件的内容 26 sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) 27 sort file1 file2 | uniq -u 删除交集,留下其他的行 28 sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件) 29 comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 30 comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 31 comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分
grep
这个是我非常常用的一个命令了,尤其是在问题排查的时候,需要用grep从大量的数据中筛选出一些我想要的。 grep也支持正则表达式匹配。
基本用法
grep "abc" file 从file中筛选出包含 abc的行。
awk
开头我也说过,这个命令是我最常用的命令之一,比如在文件有多列的时候,我可以用awk输出具体某几列,或者做一些简单的统计 求和,求平均值啊,再或者做一下简单的数据格式化。
基本用法
cat data | awk '{print $1,$3,$5}' 输出第1 3 5列,注意下标是从1开始
cat data | awk '{ sum += $1 } END { print sum }' 对第一列求和
cat data | awk -F'\t' '{print $1,$3}' 把每行数据按tab分列,并输出1 3列
sort 对标准内容做排序,
基本用法
cat file|sort 把file里的数据排序,注意是按字典序排的,如果想按数值排,需要能够加-n参数
cat file|sort -k2 -n -r 按第二列 数值 倒序 排序,-k指定第几列,-r是翻转reverse的意思
uniq 对排序好的内容去重,注意它只是把相邻且相同的去重,所以如果想要全局去重,需要先用sort排序。
基本用法
cat file|sort|uniq 把file里的文件排序并去重
cat file|sort|uniq -c 把file里的文件排序并去重,且输出每行出现的次数
wc 我都是用wc来数有多上行,其实wc不仅仅能数多少行,还可以数多少单词,多少字符。
基本用法
wc -l file 数下file里有多少行
wc -w file 多少个单词
wc -c file 多少个字节
wc -m file 多少个字符
sed
parallel
linux大部分命令都是单进程的,这个命令可以让其他命令多进程执行。
scp之前运维大量机器的时候,通常需要批量修改某个配置文件,都是在一台机器上改好,然后用scp脚本分发到其他机器上去的,大大提高效率。
基本用法
scp aaa.txt test@192.168.1.3:/tmp/ 把当前目录下的aaa.txt文件通过192.168.1.3上的test账号放到/tmp目录下
scp test@192.168.1.3:/tmp/aaa.txt . 和上一条相反
磁盘及IO
du 查看目录大小
基本用法 du -h --max-depth=1 输出最深1层的目录,然后文件大小用人类可读的方式,比如1K 234M 2G
df 查看磁盘大小和占用情况
基本用法 df -h 查看各个分区的大小和使用情况
iostat 查看磁盘的io状态
iotop 可以类似于top目录一样,实时显示各个进程的io状态。
find 查找文件,查找条件可以是文件名,文件日期,文件大小,很强大。 我们之前服务器上有个磁盘满就强制删除服务器某个目录下大于1g,且时间大于2天,且文件名是*.log的文件,就是用find加xargs命令做的
基本用法
find /home/test -iname "test.txt 在/home/test/下找文件名为test.txt的文件,也支持通配符
find /home/test -isize +100M 查找/home/test下大于100M的文件
locate
定位某个具体文件的位置,locate命令要比find -name快得多,原因是它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db,这个数据库会通过一个cron定时更新,所以有可能新建的文件会检索不到。
基本用法 locate a.txt 定位a.txt的位置,如果系统中有多个a.txt,会全部显示出来。
tree 可以看到树状目录结构,
基本用法 tree -L 2 只显示两层树状结构
nc netcat,可以用来看远程某个端口是否打开,功能很强大,但是我用到的不多。
基本用法 nc -z xindoo.me 443 检测我服务器上的443端口是否开放(当然是开的)
route 查看和操作本机路由表
基本用法 route 列出本地路由表
netstat 查看本机的网络状态,可以看到端口占用情况和网络链接情况。
基本用法 netstat -antp
traceroute 查看一个请求到目标服务器所经过的所有路由节点,一般用来排查网络问题。
基本用法 traceroute www.baidu.com
iftop 查看实时网络io情况
lsof 查看端口占用
dig 查看域名的信息,之前做运维的时候,经常需要验证某个域名解析改动是否生效,因为一般一个域名会-A到多个ip上,用ping命令只能看到一个ip,这个时候我就会用dig来看域名解析信息了。
基本用法 dig www.baidu.com
curl 发起一个http请求,我一般都是用这个命令来验证服务是否能正常访问的,它有获取html源码的功能。
基本用法 curl www.baidu.com curl -I www.baidu.com 获取请求baidu.com的请求头
wget
下载网络上一个文件,基本上就是有个命令行版的下载工具了。
基本用法
wget xindoo.me/test.txt 把我服务器上test.txt文件下载到本地
其他
yum|apt install
很多时候服务器上没有我们想要的工具,可以用这个命令安装下,yum是Fedora和RedHat以及CentOS中的Shell前端软件包管理器, apt是ubuntu平台上的。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
yum check-update 检查可更新的所有软件包 yum update 下载更新系统已安装的所有软件包 yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级 yum install <packages> 安装新软件包 yum update <packages> 更新指定的软件包 yum remove <packages> 卸载指定的软件包 yum groupinstall <groupnames> 安装指定软件组中的软件包 yum groupupdate <groupnames> 更新指定软件组中的软件包 yum groupremove <groupnames> 卸载指定软件组中的软件包 yum grouplist 查看系统中已经安装的和可用的软件组 yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包 yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包 yum list available 列出资源库中所有可以安装的rpm包 yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包 yum list updates 列出资源库中所有可以更新的rpm包 yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包 yum list installed 列出资源库中所有已经安装的rpm包 yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包 yum list extras 列出已经安装的但是不包含在资源库中的rpm包 yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包 yum list recent 列出最近被添加到资源库中的软件包 yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值 yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值 yum clean headers 清除缓存中的rpm头文件 yum clean packages 清除缓存中rpm包文件 yum clean all 清除缓存中的rpm头文件和包文件 yum deplist <packages> 显示软件包的依赖信息 yum info 列出包信息 当第一次使用 yum 或 yum 资源库有更新时,yum会自动下载所有所需的 headers 放置于 /var/cache/yum 目录下,所需时间可能较长。 yum 命令可以使用 -y 参数用于用 yes 回答命令运行时所提出的问题。
基本用法
yum install curl
apt install curl
还有个编译下载,用的不多,相对繁琐,优点可以自由指定安装
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 yum install package_name 下载并安装一个rpm包 2 yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 3 yum update package_name.rpm 更新当前系统中所有安装的rpm包 4 yum update package_name 更新一个rpm包 5 yum remove package_name 删除一个rpm包 6 yum list 列出当前系统中安装的所有包 7 yum search package_name 在rpm仓库中搜寻软件包 8 yum clean packages 清理rpm缓存删除下载的包 9 yum clean headers 删除所有头文件 10 yum clean all 删除所有缓存的包和头文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 dpkg -i package.deb 安装/更新一个 deb 包 2 dpkg -r package_name 从系统删除一个 deb 包 3 dpkg -l 显示系统中所有已经安装的 deb 包 4 dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 5 dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 6 dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 7 dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 8 dpkg -S /bin/ping 确认所给的文件由哪个deb包提供
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 apt-get install package_name 安装/更新一个 deb 包 2 apt-cdrom install package_name 从光盘安装/更新一个 deb 包 3 apt-get update 升级列表中的软件包 4 apt-get upgrade 升级所有已安装的软件 5 apt-get remove package_name 从系统删除一个deb包 6 apt-get check 确认依赖的软件仓库正确 7 apt-get clean 从下载的软件包中清理缓存 8 apt-cache search searched-package 返回包含所要搜索字符串的软件包名称
man
这个命令是用来查看其它命令手册的,可以看到具体某个命令的详细作用,和具体参数。这个是个很重要的命令了,一般他会比各命令自带的–help详细很多。
基本用法
man curl 查看curl命令的手册
在centos7中,系统日志消息有两个服务负责处理:systemd-journald和rsyslog
常见日志文件概述:/var/log目录保管由rsyslog维护的,里面存放的一些特定于系统和服务的日志文件
日志文件 用途
/var/log/message 大多数系统日志消息记录在此处。有也例外的:如与身份验证,电子邮件处理相关的定期作业任务等
/var/log/secure 安全和身份验证相关的消息和登录失败的日志文件。 ssh远程连接产生的日志
/var/log/maillog 与邮件服务器相关的消息日志文件
/var/log/cron 与定期执行任务相关的日志文件
/var/log/boot.log 与系统启动相关的消息记录
/var/log/dmesg 与系统启动相关的消息记录
例1:查看哪个IP地址经常暴力破解系统用户密码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[root@xuegod140 log]# ssh root@192.168.1.140 #先故意输错3次密码 [root@xuegod140 log]# grep -i failed /var/log/secure #-i忽略大小写,查看登录失败的信息 Apr 17 01:08:01 xuegod140 CROND[5527]: pam_systemd(crond:session): Failed to release session: Interrupted system call Apr 21 20:25:01 xuegod140 sshd[1920]: Failed password for root from 192.168.1.140 port 43712 ssh2 Apr 21 20:25:04 xuegod140 sshd[1920]: Failed password for root from 192.168.1.140 port 43712 ssh2 Apr 21 20:25:07 xuegod140 sshd[1920]: Failed password for root from 192.168.1.140 port 43712 ssh2 [root@xuegod140 log]# grep -i failed /var/log/secure | awk ‘{print $11}’ #打印第11列内容 192.168.1.140 192.168.1.140 192.168.1.140 [root@xuegod140 log]# grep -i failed /var/log/secure | awk ‘{print $11}’| uniq -c #uniq 去除重复项,-c 统计个数 3 192.168.1.140
例2:/var/log/wtmp文件作用
wtmp是一个二进制文件,记录每个用户登录次数和持续时间等信息
ll /var/log/
两个重要的系统日志文件
messages -- 记录系统或服务程序运行的状态信息 和 错误信息
secure(安全) -- 用户登录信息。 作用:可以进行监控文件的信息,检查是否有过多失败记录
[root@oldboyedu ~]# cat /var/log/secure
Apr 4 11:35:29 oldboyedu sshd[3568]: Accepted password for root from 10.0.0.1 port 54913 ssh2
Apr 4 11:35:29 oldboyedu sshd[3568]: pam_unix(sshd:session): session opened for user root by (uid=0)
01 02 03 04
01. 用户是什么时间登录的 02. 登录的主机名称
03. 使用什么方式进行远程登录 04. 登录情况说明
a 正确登录情况说明 b 错误登录情况说明
如何查看日志信息
head -5 /etc/profile --- 查看前面几行信息 (默认查看前面10行内容)
tail -6 /etc/profile --- 查看倒数几行信息(默认查看倒数10行内容)
tail -f /var/log/secure --- 查看日志文件方法 一直追踪查看文件内容的变化
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出 fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享