Linux常用命令集合

一、帮助、查找

1、man:命令用于查看命令的帮助信息(eg:man ls)

2、help:查看内置命令的帮助信息(man命令查不到时就用help)(eg:help ls或者 ls --help)

3、info:查询信息(eg:info ls)

二、重启、关机

1、shutdown:关闭或者重启计算机;格式:shutdown [-h][-i][-k][-m][-t]

  重要参数:

-t:在改变到其它运行级别之前,告诉init程序多久以后关机。 
-k:并不真正关机,只是送警告信号给每位登录者。 
-h:关机后关闭电源。 
-c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。 
-F:在重启计算机时强迫fsck。 
-time:设定关机前的时间。 
-m: 将系统改为单用户模式。 
-i:关机时显示系统信息。 
shutdown -h 10      #10分钟之后关机
shutdown -h 0       #立即关机
shutdown -h now      #立即关机
shutdown -r 10       #10分钟之后重启
shutdown -r 0       #立即重启
shutdown -r now      #立即重启

2、halt:关闭系统(halt就是调用shutdown -h);格式:halt [-n] [-w] [-d] [-f] [-i] [-p]

  主要参数:

-n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。 
-w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。 
-f:没有调用shutdown,而强制关机或重启。 
-i:关机(或重启)前,关掉所有的网络接口。 
-f:强迫关机,不呼叫shutdown这个指令。 
-p: 当关机的时候顺便做关闭电源的动作。 
-d:关闭系统,但不留下纪录。  

3、systemctl poweroff:关机(systemctl可省)

  systemctl reboot:重启(systemctl可省)

4、init:

  init 0 :关机

  init 6:重启

5、sync:把数据从buffer写会磁盘

  用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。

  • buffer:为了解决写磁盘的效率
  • cache:为了解决读磁盘的效率

  sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。

三、运行级别(init)

1、查看运行级别:runlevel 或者 centos7可用who -r

2、init 切换运行级别

init 0 关机(请不要把系统运行级别设置为0)
init 1 单用户模式(root用户忘记密码,可用此模式找回)
init 2 多用户模式,没有NFS
init 3 命令行模式、文本模式(企业级服务器核心运行状态)
init 4 未使用 
init 5 图形化模式、桌面模式、X11(桌面个人版系统运行状态)

四、主机相关

1、hostname:查看和设置主机名(立即生效,但是重启失效)(eg:hostname ren)

2、hostnamectl:永久修改主机名(立即生效,重启也生效)(eg:hostnamectl set-hostname ren)

3、uname:查看主机信息

uname -n    #查看主机名 
uname -r    #查看内核信息(版本号)
uname -a    #查看所有信息

五、目录

1、pwd:查看当前所在目录

2、cd:切换目录

cd -     #去上一次所在目录
cd ~     #切换到当前用户的家目录
cd .     #保持当前目录不变(. 表示当前所处的工作目录)
cd ..    #切换到上级目录
cd /     #直接切换到根/目录下

3、tree:以树形结构显示目录下的内容

tree -d    #只显示目录
tree -L    #遍历目录最大层数,后面加几就到几 (tree -L -几)
tree -f    #在条目后加上文件类型的指示符号(* / = @ | 其中的一个)

4、mkdir:创建目录

mkdir -p       #递归创建目录,可以连续创建多个目录
mkdir -m xxx    #设置新目录默认对应的权限

5、ls:显示目录下的内容及属性信息

ls -l             #使用长格式列出文件及目录信息****
ls -a             #显示目录下所有文件,包括. .. 字符的隐藏文件*****
ls -d             #显示目录本身的信息,而不是文件的内容***** ls -i             #显示索引节点信息(索引节点相当于身份证号)***** ls -t             #根据最后修改的时间排序 ls -r             #依相反顺序排序 ls -h             #以人性化的方式显示文件或目录的大小,以K、M、G为单位 ls -p             #区分目录和文件(后面显示加斜线) ls --color=auto       #显示不同文件的颜色 ls --time-style long-iso  #以完整时间属性输出(--time-style 显示不同文件的颜色) ls -iso            #以不同时间格式输出

六、目录或文件的复制、删除、移动

1、cp:复制文件或目录

-r        #递归式复制目录,及复制目录下所有层次子目录及文件
-p        #复制的时候,保持属性不变
-d        #复制的时候保持软连接(快捷方式)
-a        #等于 -pdr 的集合
-i        #确认是否覆盖

2、mv:移动目录或文件或改名

  是移动,当前目录下没有了,是剪切,不是cp复制

3、rm:删除文件或目录

-f         #强制删除,没有提示(即便文件不存在)
-r         #递归删除
-i         #确认

七、文件

1、cat:查看文件的内容

-n        #显示所有行编号(包含空格)
-b        #显示行编号(忽略编号空行)
-A        #显示$开头的是空行(每行结束位置加$符)

2、tac:按行翻转(上下)文件内容(与cat相反)

3、rev:左右按字符翻转的内容

4、touch:创建文件,修改文件的时间戳

  {}生成序列{1..5}.txt,等同于touch 1.txt 2.txt 3.txt 4.txt 5.txt

5、more:分页显示文件内容

6、less:分页显示文件内容

  b  向前翻一页;空格键 向后翻一页;-N 显示行号

7、head:显示文件内容头部(-n 行数---指定显示的行数)

8、tail:显示文件内容尾部

-n        #指定显示的行数,n可用数字代替
-f        #实时输出文件变化后最近的数据(相当于tailf)

9、file:查看文件类型(file 1.txt)

10、tr:替换或删除字符(-d 删除字符)

[root@ren5 ~]# echo "my name is ryz" | tr [a-z] [A-Z]
MY NAME IS RYZ
[root@ren5 ~]# echo "my name is ryz" | tr -d m
y nae is ryz
[root@ren5 ~]# cat a.txt 
my name is ryz
[root@ren5 ~]# cat a.txt |tr [a-z] [A-Z]
MY NAME IS RYZ

11、which:查命令所在路径

12、whereis:显示命令,源码,说明文档的路径(-b 只查找二进制命令)

[root@ren5 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

13、locate:查找文件及帮助相关,快速定位文件路径(在mlocate数据库中搜索条目)

  基本语法:

locate [OPTION]… [PATTERN]…

  locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库

  locate命令的使用实例:

  搜索etc目录下所有以sh开头的文件:

locate /etc/sh

  搜索用户主目录下,所有以m开头的文件:

locate ~/m

  搜索用户主目录下,所有以m开头的文件,并且忽略大小写:

locate -i ~/m

14、ln:创建连接

ln -s        #创建软连接
ln            #直接使用创建硬连接

15、find:查找目录下文件

-name        #按文件名查找
-iname       #不区分大小写
-type          #按类型查找
        b    #按块(eg:find /root -type d )
        c    #特殊字符
        d    #目录
        p    #套接字
        f    #常规文件
        l    #符号链接
-exec        #对查找的结果在处理一个一个的后面接 {}\;(eg:find /home -nouser -exec rm -rf {} \; )
-mtime        #按修改时间查找(-n指n天以内,+n指n天以前)
-atime        #按访问时间查找(-n指n天以内,+n指n天以前)
-ctime        #根据修改属性时间(-n指n天以内,+n指n天以前)
-perm        #查权限
-size        #文件的尺寸大小
-maxdepth        #表示最多在多少层内查找文件

16、xargs:从标准输入执行命令

  find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部

  xargs要处理的文件如果不是在结尾,需要加上 -i 这个参数

  常用参数(xargs的默认命令是echo,空格是默认定界符,默认替换符号是{}):

-n        #数字,几个东西在一组
-d        #指定分隔符,不指定默认是空格
-i        #把{}当做前面查找的结果

  例子:

cat /home/omc/ftl/logs.txt |xargs -n3  #多行内容的单输出且每行3个
find /var/log/*.log -type f | xargs -i cp {} /home/omc/ftl  #在/var/log/下查找log文件,复制文件到/home/omc/ftl
ls *.log |xargs rm -rf {}  #删除 /home/omc/ftl/下的log文件
#如果命令后面可以跟内容,且没有目的路径的时候,可以省略-i,否则得加上

17、tar:打包压缩(压缩文件大小会降低)

常用选项:
-z        #压缩或解压
-c        #创建新的压缩包
-v        #输出打包过程
-f        #指定压缩文件的名字
-t        #不解压查看压缩包的名字
-C        #指定解压的目录(大写C)
-x        #解压缩包
-h        #打包软连接文件指向真实源文件
--exclude=文件名        #排除不打包文件
-X        #排除不想打包的文件

18、打印的命令

(1)echo:输出和打印(-n 不换行输出;-e 支持转义字符)

(2)printf:格式化打印

19、stat:查看文件属性(显示文件或文件系统状态)

-c        #获取文件属性的一部分
    %A    #显示字符的权限
    %a    #显示权限字符对应的数字

20、seq:用于产生从某个数到另外一个数之间的所有整数

21、cut:按列切割

-d        #指定分隔符(eg:cat /etc/passwd |cut -d":" -f1,7)
-f        #指定列
-c        #按字符取出内容

22、sort:按字符进行比较和排序(-r 降序(逆序)排序)

23、uniq:去除重复的行(相邻且相同认定为重复)(-c 在行首用数字表示该行出现了多少次)

24、diff:文本比较

  diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。

  语法:

diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]

  例子:

diff log2014.log log2013.log    #比较两个文件
diff log2014.log log2013.log  -y -W 50    #并排格式输出

25、vimdiff:图形化比较

  Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:

   # vimdiff  FILE_LEFT  FILE_RIGHT
  或者
  # vim -d  FILE_LEFT  FILE_RIGHT

重用操作:

跳转到下一个diff点:]c 
跳转到前一个diff点:[c 

在两个文件之间来回跳转,可以用下列命令序列:Ctrl-w, w
交换上/下、左/右两个分隔窗口的位置,可以使用 ctrl-w,r 

如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令:
dp (diff "put")
如果希望把另一个文件的内容复制到当前行中,可以使用命令:
do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了,所以用了diff "obtain")

在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,以便实时地反映比较结果。但是有时候会处理失败,这个时候就需要手工来刷新。
:diffupdate

zo (folding open)打开折叠代码。之所以用z这个字母,是因为它看上去比较像折叠着的纸。
zc (folding close)重新折叠起来。

八、文件属性

1、chmod:修改文件权限(-R 递归修改)

2、chown:改变文件或目录用户和组(-R 递归修改)

chown xxx:xxx 或者 chown xxx.xxx 加名

3、chgrp:只能修改所属用户组(eg:chgrp -v root ren)

参数:
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。 -f或--quiet或--silent  不显示错误信息。 -h或--no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。 -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。 -v或--verbose  显示指令执行过程。

4、md5sum:给文件设置指纹(计算和检查MD5数字信息)

  MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

  md5sum命令采用MD5报文摘要算法(128位)计算和检查文件的校验和。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。

  语法:md5sum(选项)(文件)

选项:
-b或--binary: 把输入文件作为二进制文件看待。 -t或--text: 把输入的文件作为文本文件看待(默认)。 -c或--check: 用来从文件中读取md5信息检查文件的一致性。(不细说了参见info) --status: 这个选项和check一起使用,在check的时候,不输出,而是根据返回值表示检查结果。 -w或--warn: 在check的时候,检查输入的md5信息又没有非法的行,如果有则输出相应信息。

  例子:

md5sum 1.txt    #查看一个文件的md5值
echo -n "hello world"|md5sum    #查看一个字符串的md5值 

5、chattr:设置文件属性

+i        #锁定文件
-i        #解锁文件
+a        #只能追加不能删除文件和内容
-a        #解锁

6、lsattr:查看文件属性

[root@ren6 ~]# echo "hello world" > 1.txt
[root@ren6 ~]# chattr +a 1.txt 
[root@ren6 ~]# lsattr 1.txt 
-----a---------- 1.txt
[root@ren6 ~]# echo 123 > 2.txt
[root@ren6 ~]# lsattr 2.txt 
---------------- 2.txt

九、软件安装

1、rpm:rpm包管理器(安装、卸载、升级、查询和验证)

-i        #安装install
-v        #显示安装过程
-h        #用 ‘#’ 表示安装进度
-U        #升级软件包
-e        #卸载软件包
-q        #查询
-a        #查询所有
--nodeps        #忽略依赖
-l        #显示软件包所有文件列表
-f        #查询文件或命令属于那个包

2、yum:安装rpm包,自动解决依赖

install        #安装软件包
list        #获取软件包名
search        #模糊查询
groupinstall        #安装组包
grouplist        #获取组包名称列表
list install        #查询已经安装的软件包
provides        #根据命令配置查询软件包
remove        #移除软件包(禁止使用)

十、磁盘管理

1、df:查看文件系统,默认查看inode

-i        #查看inode总量以及剩余量
-h        #以人类可读的形式显示block
df -hi        #以人性化显示查看inode总量以及剩余量
-T        #查看文件系统类型

2、du -sh:排查再三block确认后删除

  du会显示指定的目录或文件所占用的磁盘空间

3、fdisk:磁盘分区工具小于2T(MBR)

4、parted:GNU磁盘分区工具大于2T(Gpt)

5、dd:创建一个虚拟的文件系统

if        #来源
of        #生产文件系统
bs        #block大小
count        #块个数
eg:
dd if=/dev/zero of=/dev/swap bs=XM count=2048

6、partprobe:将分区信息通知内核(真正生效)

7、mkfs:格式化(本质是创建文件系统)

-t        #指定类型 (-t ext4 相当于 mkfs.ext4)
-b        #指定block大小
-i        #指定inode大小

8、mount:挂载文件系统(-t 指定文件类型;-o 挂载的选项)

9、umount:卸载文件系统(-lf 强制卸载)

10、blkid:查看块设备属性,查看硬件id,打印硬件属性

11、dumpe2fs:查看etc文件系统细节(查看格式化之后的文件系统信息)

12、xfs_info(xfs_一堆):查看xfs文件系统细节(必须先挂载才能查看)

13、fsck:检查和修复磁盘ext文件系统(好的磁盘不能操作)类似e2fsck(-a 修复磁盘)

  用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查

-a:自动修复文件系统,不询问任何问题;
-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
-N:不执行指令,仅列出实际执行会进行的动作;
-P:当搭配"-A"参数使用时,则会同时检查所有的文件系统;
-r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
-R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;
-s:依序执行检查作业,而非同时执行;
-t<文件系统类型>:指定要检查的文件系统类型;
-T:执行fsck指令时,不显示标题信息;
-V:显示指令执行过程。

14、xfs_repair:检查和修复XFS文件系统

15、lsblk:查看磁盘分区信息

十一、用户管理

1、id:查询用户身份UID和GID

2、whoami:查询自己,查看当前登录账户

3、w:查看当前所有登录用户信息(谁登陆了在干什么)

4、last:显示登录过的用户信息列表

  last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。 

  格式:

1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]

  主要参数:

-n:指定输出记录的条数。 
-f file:指定用文件file作为查询用的log文件。 
-t tty:只显示指定的虚拟控制台上登录情况。 
-h 节点:只显示指定的节点上的登录情况。 
-i IP:只显示指定的IP上登录的情况。 
-1:用IP来显示远端地址。 
-y:显示记录的年、月、日。 
-ID:知道查询的用户名。 

5、lastlog:查看最近登录过的用户信息

6、useradd:添加普通用户

-u        #指定UID普通用户
-s        #指定登录shell解释器
-M        #不创建家目录
-g        #指定所属的组
-c        #添加用户说明
-d        #指定家目录
-e        #设置登录截止时间

7、groupadd:添加用户组(-g 指定组GID)

8、usermod:修改用户属性(-L 锁定用户密码;-U 解锁用户密码)

9、passwd:用户修改密码(--stdin 从标准输入接受密码并设置eg:echo “123” |passwd --stdin root)

10、userdel:删除用户组(-r 递归删除用户信息)

11、chage:查看和修改密码属性(-l 列表显示用户的密码信息;-E 修改账户过期时间)

12、su:用户身份切换( - 携带环境变量登录 ==== -l;-c 到指定用户下执行命令)

13、sudo:允许指定用户执行命令期间拥有root命令权限 visudo(-l 查看获得的权限)

14、visudo:进入用户列表里更改权限

15、hostnamectl set-hostname xxx:更改用户名(bash)

十二、网络服务任务(定时任务)

1、at:一次性计划任务

2、crontab:周期性计划任务

-l        #列表,查看已经设置的定时任务
-e        #编辑定时任务
-u        #查看特定用户下的定时任务

十三、网络命令

1、ifconfig:查看设置ip

2、ip a:查看和设置网络ip

  ip r:查看网络网关

3、ping:检查网路是否畅通

4、traceroute:查看路由到达主机信息(-d不做反向解析)

  通过traceroute 我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上 来说大部分时候所走的路由是相同的。
  Linux 系统中个,我们称之为 tracertoute,在 MS  Windows 中为 tracert。

  traceroute 通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称及其IP地址。

具体参数格式:
traceroute   [-dFlnrvx] [-f<存活数值>] [-g<网关>][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
命令参数: 
  -d  使用socket 层级的排错功能   -f  设置第一个检测数据包的存活数值TTL的大小   -F  设置勿离段位 ----我也不知道啥是勿离段位,查了下没查到什么信息   -g  设置来源路由网关,最多可设置8个   -i  使用指定的网络界面送出数据包   -I  使用ICMP回应取代UDP资料信息   -m  设置检测数据包的最大存活数值TTL 的大小   -n  直接使用IP地址而非主机名称   -p  设置UDP传输协议的通信端口   -r  忽略普通的routing table ,直接将数据包送到远端主机上   -s  设置本地主机送出数据包的IP地址   -t  设置检测数据包的TOS数值   -v  详细显示指令的执行过程   -w  设置等待远端主机回报的时间   -x  开启或关闭数据包的正确性检验

5、route:查看设置网关,路由 -host 主机路由 -net 网络路由 默认网关default gw (add 添加;del 删除)

常用格式:

(1)添加和删除路由

route {add | del } [-net|-host] [网域或主机] netmask [mask] [gw|dev]
 
增加 (add) 与删除 (del) 路由的相关参数:
(a) -net :表示后面接的路由为一个网域。
(b) -host :表示后面接的为连接到单部主机的路由。
(c) netmask :与网域有关,可以设定 netmask 决定网域的大小。
(d) gw :gateway 的简写,后续接的是 IP 的数值,与 dev 不同。
(e) dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等。

(2)查询路由信息

route -nee
 
(a) -n:不要使用通讯协定或主机名称,直接使用 IP 或 port number。
(b) -ee:使用更详细的资讯来显示。

(3)添加和删除默认网关路由

route {add | del } default gw {IP-ADDRESS} {INTERFACE-NAME}

(a) IP-ADDRESS:用于指定路由器(网关)的IP地址。
(b) INTERFACE-NAME:用于指定接口名称,如eth0。
 
例1:route add default gw 192.168.1.1 eth0
例2:route del default gw 192.168.1.1 eth0

(4)添加和删除搭配指定网络的路由规则

route {add | del } default gw {IP-ADDRESS} {INTERFACE-NAME}
 
(a) IP-ADDRESS:用于指定路由器(网关)的IP地址。
(b) INTERFACE-NAME:用于指定接口名称,如eth0。
 
例1:route add default gw 192.168.1.1 eth0
例2:route del default gw 192.168.1.1 eth0

(5)添加和删除路由到指定网络为不可达

设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
 
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} reject
 
(a) NETWORK-ADDRESS:用于指定网络地址。
(b) NETMASK:用于指定子网掩码。
 
例1:route add -net 10.0.0.0 netmask 255.0.0.0 reject
例2:route del -net 10.0.0.0 netmask 255.0.0.0 reject

6、telnet:检测网络端口是否畅通

7、nmtui:图像化管理网卡命令

8、ss:查看端口监听状态(常用组合:ss -tnl)

option:
-t: 显示tcp链接
-n: 以数字形式显示当前链接的端口
-l: 只显示监听的
-a:显示全部
-p: 显示PID

9、ps:查看进程的工具(ps aux)

option :
a: 显示跟当前终端关联的所有进程
u: 基于用户的格式显示(U: 显示某用户ID所有的进程)
x: 显示所有进程,不以终端机来区分

10、uptime:查看系统负载

11、top:实时显示进程的状态

top 运行中的内部命令:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期

12、lsof:用于查看进程打开的文件,打开文件的进程,进程打卡的端口(TCP、UDP)

-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
eg:lsof -i :22

13、iotop:用来监视磁盘I/O使用状况的top类工具

 r  :反向排序
 o  :只显示有IO输出的进程
 q :是退出

14、iftop:在接口上显示带宽使用情况(用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等)

界面相关说明:

  界面上显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

  中间的<= =>这两个左右箭头,表示的是流量的方向。

  TX:发送流量

  RX:接收流量

  TOTAL:总流量

  Cumm:运行iftop到目前时间的总流量

  peak:流量峰值

  rates:分别表示过去2s 10s 40s 的平均流量

常用的参数:

-i   设定监测的网卡,如:# iftop -i eth1
-B    以bytes为单位显示流量(默认是bits),如:# iftop -B
-n   使host信息默认直接都显示IP,如:# iftop -n
-N   使端口信息默认直接都显示端口号,如: # iftop -N
-F   显示特定网段的进出流量,如# iftop -F 10.10.1.0/24
-h(display this message),帮助,显示参数信息
-p   使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b    使流量图形条默认就显示;
-f     过滤计算包用的;
-P    使host信息及端口信息默认就都显示;
-m    设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

进入iftop画面后的一些操作命令(注意大小写)

按h切换是否显示帮助;
按n切换显示本机的IP或主机名;
按s切换是否显示本机的host信息;
按d切换是否显示远端目标主机的host信息;
按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
按N切换显示端口号或端口服务名称;
按S切换是否显示本机的端口信息;
按D切换是否显示远端目标主机的端口信息;
按p切换是否显示端口信息;
按P切换暂停/继续显示;
按b切换是否显示平均流量图形条;
按B切换计算2秒或10秒或40秒内的平均流量;
按T切换是否显示每个连接的总流量;
按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
按j或按k可以向上或向下滚动屏幕显示的连接记录;
按1或2或3可以根据右侧显示的三列流量数据进行排序;
按<根据左边的本机名或IP排序;
按>根据远端目标主机的主机名或IP排序;
按o切换是否固定只显示当前的连接;
按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
按q退出监控。

十四、Bash内置命令

1、history:查询操作过的命令(历史命令)

-c 清除所有历史命令
-d 指定数字清
!命令首字母:执行最近第一个以该字母开头的命令

2、ulimit:文件描述符

(1)语法:

ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]

(2)参数:

-a   显示目前资源限制的设定。
-c <core文件上限>  设定core文件的最大值,单位为区块。
-d <数据节区大小>  程序数据节区的最大值,单位为KB。
-f <文件大小>  shell所能建立的最大文件,单位为区块。
-H   设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小>  指定可使用内存的上限,单位为KB。
-n <文件数目>  指定同一时间最多可开启的文件数。(-n 查文件描述符大小)
-p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
-s <堆叠大小>  指定堆叠的上限,单位为KB。
-S   设定资源的弹性限制。
-t <CPU时间>  指定CPU使用时间的上限,单位为秒。
-u <程序数目>  用户最多可开启的程序数目。
-v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

十五、三剑客

1、awk:三剑客老大(擅长取列、取行、计算)

  语法:awk [options] '[pattern]{action}' fileName

(1)选项

-F     #指定字段分隔符或多个分隔符
-v     #定义或修改一个awk内部的变量

(2)列表示

$0     #表示一整行内容
$n     #当前记录的第n个列,字段键有FS或-F参数指定分隔符
NF     #最后一列
$(NF-n)   #倒数第n列,n为数字
NR      #表示行号

(3)例子

df -h |awk '{print $2,$5}'    #查看 df -h 命令的第 2,5 列
awk 'NR==4' /etc/passwd    #显示 passwd 的第四行
ls -l / |awk '/etc/ {print $2}'    #打印 ls –l / 中包含 etc字段行的第二区域
awk -F: '/root/{print NR,$0}' /etc/passwd    #在有 root字段的行前增加记录号 ($0 为行头前 )
awk -F ":" '$1 ~/root/' /etc/passwd    #以:分割,匹配第一列的 root字段,如果有,则显示整行
awk 'BEGIN{print "Hello"}{print $0}' /etc/passwd    #在结果前打印 hello,可以是任何的字符
awk 'END{print "Hello"}{print $0}' /etc/passwd    #在结果后打印 hello,可以是任何的字符
awk 'BEGIN{print 2+1}' /etc/passwd    #使用awk进行计算 +加 -减 *乘 /除 可以带()^开方
awk -F ':' '$3<=88{print $1,$3}' /etc/passwd    #比较 >大于 <小于 >=大于等于 <=小于等于 ==等于

2、sed:三剑客老二(取行、替换、修改文件的内容)

  只支持基础正则

(1)选项

-i     #修改文件内容,而不是输出到终端(不提示)
-i.bak   #修改文件之前先进行备份
-n     #取消命令的默认输出只打印模式匹配的行;-n '3p' 显示第三行 -e     #多次编辑(-e ###g -e ###g) -r     #支持扩展表达式 -f     #将sed的动作写在一个文件内,用-f filename 执行filename内的sed动作

(2)内置符

s 替换 s###g    -e s###g    -e s###g
g 全局替换
p 打印    /内容/p
d 删除    /内容/d
i 行头添加
a 追加    几行就用几a 加内容
'//,//'    从哪行开始到哪行结束所包含的行

3、grep:三剑客老三(文本过滤)

-v 取反,留下剩下文本*****
-i 不区分大小写*****(ignore case)
-n 对输出内容显示在原文件中的行号*****
-w 以单词为单位过滤(精确匹配)*****
-o 只显示过滤(匹配)的内容
-E 只输出匹配的内容(扩展的grep,即egrep
-A 显示grep找内容之后多少行,包含本省(after)
-B 显示过滤找内容之前多少行,包含本身(before)
-C 显示过滤的字符串和它上下多少行
-P 用于过滤,兼容正则表达式
-r 递归过滤,在目录下面所有层进行过滤
-l grep在过滤的时候只显示文件名

  正则练习

(1)车牌号码

^[A-Z][0-9,A-Z]{5}$

(2)手机号码

^1[0-9]{10}$

(3)身份证号

^[0-9]{17}[0-9,X]$

(4)IP(0-255.0-255.0-255.0-255)

^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$

^([0-9]\.|[1-9][0-9]\.|1[0-9][0-9]\.|2[0-4][0-9]\.|25[0-5]\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$

(5)密码(8位以上,包含数字、大小写字母)

egrep [a-z] passwd | egrep [A-Z] | egrep [0-9] | egrep ^.{8,}$

十六、其它

1、设置取消别名

alias        #查看或设置别名
unalias        #取消别名

2、date:显示系统时间和日期

-s      #设置时间(date -s "2019-7-9 19:42:00")
-d #指定过去或未来的格式 $(+%F%T) #显示时间

3、防火墙(firewall)

#查看防火墙状态
systemctl status firewalld

#开启防火墙
systemctl start firewalld

#关闭防火墙
systemctl stop firewalld

#重启防火墙
systemctl restart firewalld

#设置开机启动
systemctl enable firewalld

#关闭开机启动
systemctl disable firewalld

#临时添加服务
firewall-cmd --add-service=服务名称

#永久添加服务 (--permanent 永久生效)
firewall-cmd --add-service=服务名称 --permanent

#永久添加端口
firewall-cmd --add-port=端口/协议 --permanent

4、安全规则selinux方法

#查看selinux状态
getenforce
#关闭selinux:
#临时关闭(不用重启):
setenforce 0 ##设置SELinux 成为宽容模式(permissive)模式
setenforce 1 ##设置SELinux 成为强制模式(enforcing)模式
#永久关闭,修改配置文件需要重启:
修改/etc/selinux/config 文件:
将SELINUX=enforcing改为SELINUX=disabled

5、lrzsz:从Windows中上传或下载文件至Linux

  (1)把文件打入xshell,用rz或直接用鼠标把文件拖进来

  (2)把xshell内容打入桌面 sz+文件名

6、du:查看文件或目录的大小

-s         #显示一个总大小
-h         #人类可读

 

posted @ 2019-11-01 10:53  Wolf_Coder  阅读(1150)  评论(0编辑  收藏  举报