Linux命令

        主要编写Linux系统常用命令、软件管理命令、文件管理命令、网络管理命令、磁盘管理命令、进程管理命令、驱动管理命令等。本文命令较多,目录在此。


目录

一、系统常用命令

二、软件管理命令

        1.yum

        2.apt/apt-get

三、文件管理命令

        1.内容管理

                1.sed(流编辑器)

                2.awk

                3.grep

                4.more

                5.less

                6.file

        2.压缩/解压管理

                1.tar压缩解压

                2.zip压缩解压

四、网络管理命令

        1.ifconfig

        2.ip

        3.route

        4.netstat

        5.arp

        6.ifup/ifdown

五、磁盘管理命令

        1.df

        2.du

        3.fdisk

        4.dd

        5.lsblk

        6.stat

六、进程管理命令

      1.ps

        2.top

        3.kill

        4.jobs

        5.pstree

七、驱动管理命令

        1.insmod

        2.lsmod

        3.rmmod

        4.dmesg

八、总结


一、系统常用命令

         本节只简单讲述功能,不展开详细说明。

命令作用
ls查看那目录先文件信息
cd进入到目录
pwd查看绝对路径
clear清屏
touch创建文件,存在更新时间戳
mkdir创建目录
cp复制文件或目录
mv移动文件或目录
rm删除文件或目录
echo将内容追加到文件(默认追加到终端)
cat打印文件中的内容
su切换用户
sudo以管理员身份执行一条指令
chmod修改文件权限
date修改或查看时间
grep在流中查找匹配行
env设置环境变量
uname获取系统信息
exit退出终端

二、软件管理命令

        1.yum

1.说明

        centos下载工具。

2.格式

        yum [options] COMMAND 软件名

        命令列表:
                deplist                  列出安装包的依赖关系
                downgrade          降级包
                info                      显示详细信息
                install                  安装
                list                       列出安装包
                reinstall               重装安装包
                update                更新安装包
                remove               删除

        选项:
                -y/--assumeyes             自动应答yes
                --assumeno                  自动应答no
                --skip-broken                忽略依赖问题
                --downloadonly             只下载不安装
                --downloaddir=DLDIR  指定安装包的下载目录

3.例子:
        (1)更新包

                yum update 
        (2)安装net-snmp

                yum install -y net-snmp
        (3)卸载net-snmp

                yum erase/remove -y net-snmp
        (4)清空缓存                

                yum clean all 
        (5)搜索软件包net-snmp

                yum search net-snmp
        (6)只下载不安装

                yum install --downloadonly --downloaddir  /home/sml/
        (7)查看net-snmp详细信息

                yum info net-snmp

4.注意:

        单独的服务器系统中由于yum.repos.d的配置,安装软件需要更改指令为:
        yum --disablerepo=* --enablerepo=c6-media install net-snmp

        2.apt/apt-get

1.说明

        deban下载工具。

2.格式

        apt [options] command

        apt-get [options] command

        命令列表:
                install                  安装
                download           下载
                remove               删除

3.例子:
        (1)在线安装
                32位系统:

                        apt-get install 软件
                        apt-get download 软件(只下载,不安装)
                64位系统:
                        apt install 软件
                        apt download 软件(只下载,不安装)
        (2)离线安装
                dpkg -i 软件
        (3)卸载在线安装软件
                32位系统:
                        apt-get auto remove 软件名
                64位系统:
                        apt auto remove 软件名
        (4)卸载离线安装软件
                        dpkg -r 软件名

三、文件管理命令

        1.内容管理

                1.sed(流编辑器)

1.说明

        (1)每次仅读取一行内容;

        (2)按照预先提供的规则对数据进行编辑;

        (3)输出编辑的结果,重复(1)、(2)过程直到文件所有数据处理完成;

2.格式

        sed [选项] [脚本语句] 文件名

                选项

                -n, --quiet, --silent
                         取消自动打印
                -e script, --expression=script
                         将脚本添加到要执行的命令中

                -f script-file, --file=script-file
                        在需要执行的命令中添加script-file的内容

                --follow-symlinks
                        在处理时遵循符号链接

                -i[后缀], --in-place[=后缀]
                        直接编辑文件(如果提供了后缀则进行备份)

                -l N, --line-length=N
                        
为' l'命令指定所需的换行长度
                --posix
                        
禁用所有GNU扩展

                -E, -r, --regexp-extended
                        在脚本中使用扩展正则表达式
                -s, --separate
                        将文件视为独立的,而不是单一的、连续的流
                --sandbox
                        在sandbox模式下操作
                -u, --unbuffered
                        从输入文件加载最少的数据,更频繁地刷新输出缓冲区

                -z, --null-data
                       用NULL字符分隔行

3.例子

        注意:没有添加 -i 选项只是将输出结果修改,添加 -i 将在原文件基础上修改

        (1)添加内容

                n行后添加字符串test

                        sed -e na\test 文件名

                在n行前添加字符串test

                        sed 'n i\test' 文件名 

        (2)删除内容

                删除nm

                        sed 'n,m d' 文件名

                删除空白行

                        sed '/^$/d' 文件名

                删除最后一行

                        sed '$d' 文件名

        (3)修改内容

                修改文件第n行为字符串test

                        sed -n 'n c\test' 文件名 

                修改文件第n到第m行字符串test替换为abcd

                        sed -n 'n,m s/test/abcd/ p' 文件名

                修改文件字符串test替换为abcd(文件中所有匹配项)

                        sed 's/test/abcd/p' 文件名

        (4)查看内容

                查看文件nm

                        sed -n 'n,m p' 文件名

                查看文件中包含test的行(忽略大小写)

                        sed -n '/test/ p' 文件名

                查看文件中以test开头的行

                        sed -n '/^test/ p' 文件名

                查看文件中包含testabcd的行

                        sed -n '/test/,/abcd/p' 文件名

                查看文件奇数行

                        sed -n 'p;n' 文件名

                查看文件偶数行

                        sed -n 'n;p' 文件名

        (5)对文件进行多个操作

                在第n行后添加TEST,并将test修改为abcd

                      sed -e 'n i\TEST' -e 's/test/abcd/' 文件名

                2.awk

1.说明

        按行读取数据,将一行内容按照空格或者Tab键进行分隔并保存在变量中。awk主要针对被分隔的变量操作,而sed对整行数据处理。

2.格式

        awk [选项] '模式或条件{操作}' 文件1 文件2...

        awk -f 脚本文件 文件1 文件2 ...

        (1)选项:

                -v :awk开始前指定一个值给var,用于程序的BEGIN

                -f :保存awk程序的文件,代替命令行指定awk程序

                -F:设置列分隔符(分隔符默认是空格)

        (2)变量:

                FS                 :列分隔符。每行文本的字段分隔符,默认为空格或tab,同‘-F’

                NF                :当前处理的行的字段个数

                NR                :当前处理的行的行号

                $0                 :当前处理的行的整行内容

                $n                 :当前处理的行的第n个字段

                FILENAME   :处理的文件名

                RS                :行分隔符。将文件分割,awk每次只读一条记录,预设值是‘\n’

                OFS              :输出字段分隔符

                ORS              :输出记录分隔符

        (3)表达式:

                print        :打印指定内容

                printf       :格式化打印指定内容

                toupper   :将字符转为大写

                tolower    :将字符转为小写

                BEGIN    :用于初始化FS变量,打印标题或初始化后需要在程序中调用的全局变量

                END        :用于执行最后的运算或者打印最终的输出,BEGIN和END不是必须的

                if              :if判断语句

                while        :while循环语句

                运算符     :+  -  *  /  %  !  ==  !=  >  >=  <  <=  &&  ||  ~(正则匹配中的包含)

                //              :使用正则表达式

3.例子

        (1)获取每行字段数

                awk '{print NF}' file

        (2)打印每行第n个字段值

                awk '{print $n}' file

        (3)打印每行最后一个字段值

                awk '{print $NF}' file

        (4)打印第n,m两个字段,使用“=”分隔

                awk '{print $n,$m }' OFS="=" file

        (5)连续打印第n,m两个字段

                awk '{print $$m }'  file

        (6)以'/'为分隔符打印文件中的第一个字段

                awk -F'/' '{print $1}' file

                awk 'BEGINN{FS="/"} {print $1}' file 

        (7)以"=="作为第1个字段和第2个字段的输出分隔符

                awk 'BEGIN{OFS="=="} {print $1,$2}' file

        (8)将第n列装换为大写打印

                awk -F',' '{print toupper($n)}' file 

        (9)将包含"test"的行打印

                awk '/test/{print}' file

        (10)将第n个字段为"test"的行打印

                awk '$n=="test" {print}' file

        (11)将不含"test"的行打印

                awk '!/test/ {print}' file

        (12)打印第一个字段为"test"的行

                awk '$1~/test/{print }' file

        (13)计算包含"test"行的第3个字段×第4个字段的结果

                awk '/test/{print $3*$4}' file

        (14)计算1-100之间的和

                seq 100 | awk '{sum+=$0} END {print sum}'

        (15)打印包含"test"和"123"的行

                awk '$1~/test/ && /123/ {print}' file

        (16)格式化打印

                date| awk '{printf "%-4d/%-3s/%-2d\n", $6,$2,$3}'

                %格式化输出分隔符

                -n输出的长度为n

                s表示字符串类型

                d表示整形类型

        (17)if语句(必须使用{}括起来,比较内容使用()括起来)

                awk '{if($1~/test/){print}}' file       

                        打印第一个字段为test的行

                awk '{if($1~/test/){print $1} else{print $2}}' file       

                        匹配到test打印行的第一个字段,否则打印第二个

        (18)for语句(必须使用{}括起来,比较内容使用()括起来)

                awk '{for(i=3;i<5;i++)} {printf $i}' file

                        打印每行第>3 <5的字段值

        (19)while语句(必须使用{}括起来,比较内容使用()括起来)

                awk '{i=1;while(i<3){print $i,i++}}' file

                        打印每行第>1 <3的字段值        

                3.grep

1.说明

       进行全局搜索,将匹配的行打印。其中包括grep、egrep(相当于grep -E,使用正则表达式匹配)、fgrep(相当于grep -F,使用字符串匹配)

2.格式

        grep [选项] 模式 [文件]

       (1) 模式:

                -E:使用正则表达式匹配
                -F:使用字符串匹配
                -e:多选项的逻辑或
                -f :从文件中获取匹配模式
                -i :不区分大小写
                -w:全词匹配
                -x :整行匹配

        (2)杂项:
                -s :支持错误信息

                -v :反向匹配

        (3)输出控制:
                -n :打印行号
                -o :仅显示匹配的字符串,不显示本行的所有信息
                -q :静默模式,不将结果输出
                -c :计算匹配次数,按行计算

        (4)环境控制:
                -A:显示匹配行及之后指定行的内容

                -B:显示匹配行及之前指定行的内容
                -C:显示匹配行及之前后指定行的内容

3.例子

        (1)在test.txt文件中搜索指定字符串"string",并将匹配的结果打印

                grep -F 'string' test.txt 或 grep 'string' test.txt

        (2)不区分大小写匹配

                grep -i 'string'

        (3)反向匹配(打印出不包含"string"的行)

                grep -v 'string'

        (4)同时检索"string"和"test"两个字符串

                grep -E 'string|test

        (5)查找ip地址的行

                ip address | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'

        (6)在test.txt文件中搜索指定字符串"string",并将匹配的结果打印

                grep -F 'string' test.txt 或 grep -i 'string' test.txt

        (7)打印检索到"string"的行及行号

                grep -n 'string'

        (8)检索到"string"出现的次数

                grep -c 'string'

        (9)查找以"str"开始的行

                grep '^str'

        (10)查找以')'指定字符结束的行(注意有些符号需要转义,在符号前加'\'转义符)

                grep -n ')$' test.txt

        (11)查找包含txxt的行

                grep 't..ttest.txt

        (12)在test.txt文件中搜索以字符串"#"开头的行,并将匹配的结果打印

                grep “^#” test.txt

        (13)在test.txt文件中搜索以字符串";"结尾的行,并将匹配的结果打印

                grep ";$"test.txt

        (14)在test.txt文件中搜索非空的行,并将匹配的结果打印

                grep "^$"test.txt -v

        (15)在test.txt文件中搜索包含小写字母的行,并将匹配的结果打印

                grep "[a-z]" test.txt

        (16)在test.txt文件中搜索包含大、小写字母的行,并将匹配的结果打印

                grep "[a-zA-Z]" test.txt

        (17)在test.txt文件中搜索包含数字的行,并将匹配的结果打印

                grep "[0-9]" test.txt

        (18)在test.txt文件中搜索包含字符串"test"和"1234"的行,并将匹配的结果打印

                grep -E ’test|1234‘ test.txt  grep -e "test" -e "1234" test.sh

        (19)在test.txt文件中搜索以大写字母开头的行,并将匹配的结果打印

                grep -E "^[A-z]" test.txt -v

        (20)在test.txt文件中搜索出现251的行,并将匹配的结果打印

                grep -E '1{2,5}' test.txt

        (21)在test.txt文件中搜索出现至少21的行,并将匹配的结果打印

                grep -E '1{2,}' test.txt

        (22)在/文件中递归搜索以字符串"#"开头的行,并将匹配的结果打印

                grep -r "^#" /

                4.more

1.说明

       在加载文件时从文件卡头开始加载,以页为单位分段显示文件内容以便阅读。

2.操作

        q               :退出more

        Enter        :向下滚动n行(在more中,先输入想滚动的行数,再点击Enter)

        空格键      :向下滚动一屏幕的内容

        b               :向上滚动一屏幕的内容

        :f               :显示当前文件名和行号

        =               :显示当前行号

3.格式

        more [选项] <文件>

        参数:

                -c                  清屏后显示内容
                -d                  显示帮助信息
                -p                  与选项"c"相似
                -s                  将多个空白行压缩成一行
                -u                  将文件中的下划线去掉显示
                -<number>   显示的行数number
                +<number>  从number行开始显示文件
                +/<string>     搜索string,并从string前两行开始显示

4.例子

        (1)从第50行开始显示file

                more +50 file

        (2)从file文件中搜索string字符串并显示

                more +/string file

                如果字符串包含数字或者空格,需要将字符串用双引号括住,如:

                more +/"hello word 123" file

                5.less

1.说明

       和more类似,以页为单位分段显示文件内容。区别在于more会加载整个文件并将内容显示到窗口,而less则类似vi那样打开文件。

2.操作

        q/:q/Q/:Q/ZZ      :退出less

        e/^E/j/^N/Enter  :向下滚动n行(^E和指Ctrl+E,^即Ctrl键,本小节不再赘述)

        f/^F/^V/z/空格键:向下滚动一屏幕的内容

        b/^B/w               :向上滚动一屏幕的内容

        d/^D                  :向下滚动一页半屏幕的内容

        u/^U                  :向上滚动一页半屏幕的内容

        /string                :向下搜索字符串

        ?string               :向上搜索字符串

        n                        :重复刚才的搜索行为(跟在/string或?string之后)

        N                       :反向刚才的搜索行为(跟在/string或?string之后)

        :f/=/^G               :显示当前文件名和行号

        G                       :跳转到文件末尾

        g                        :跳转到文件开头

3.格式

        less [选项] <文件>

        参数:同more

4.例子

        less和more除了查看文件,还长用于配合管道查看命令的结果

        (1)查看进程

                ps aux | less

        (2)查看文件较多的目录

                ls /dev | less

                6.file

1.说明

       用于分辨文件的类型,不通过扩展名而通过文件头部信息获取。

2..格式

        file [选项] [文件名]

        -b:简单显示文件类型,不显示文件名

        -i :输出 mime 类型的字符串

3.例子

        (1)查看test文件类型

                file test

        (2)简要查看test文件类型

                file -b test

        (3)查看test文件mime类型字符串

                file -i test

        2.压缩/解压管理

                1.tar压缩解压

1.参数

                -c:创建归档

                -C:临时切换工作目录

                -f:创建和释放的文件名

                -P:绝对路径

                -v:显示过程

                -x:释放归档

2.例子

        (1)压缩

                tar zcvf lib64.tgz /uer/lib64

        (2)解压

                tar zxvf lib64.tgz

                2.zip压缩解压

1.说明

        本小节主要讲述gzip、bzip2、xz三种压缩,除了格式不同外,gzip压缩速度最快,xz压缩率最高,bz2适中。这三种一般用于压缩文件,由于运用较少,此处仅简单举例说明用法。

2.例子

        (1)gzip

                压缩:gzip 准备压缩文件

                解压:gunzip 准备解压缩文件(.gz结尾的文件)

        (2)bzip2

                压缩:bzip2 压缩生成

                解压:bunzip2 准备解压缩文件(.bz2结尾的文件)

        (3)xz

                压缩:xz 压缩生成

                解压: unxz 准备解压缩文件(.xz结尾的文件)

四、网络管理命令

        1.ifconfig

1.说明

        Linux中用于查看、配置网络信息。与Windows中的ipconfig类似

2.格式

        ifconfig [-a] [-v] [-s] <网口> [[<AF>] <ip地址>]

        参数

                -a :显示所有的网卡,已关闭的网卡也会显示出来

                -s :简单显示网卡列表(会显示出网卡名、MTU、传输数据)

                -v :冗余模式,会将出现的错误打印出来

3.例子

        (1)显示网络设备信息

                ifconfig 或 ifconfig -a

                可以查看到如下结果:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.6.125  netmask 255.255.255.0  broadcast 192.168.6.255
        inet6 fe80::2e0:4cff:fe68:11  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:68:00:11  txqueuelen 1000  (Ethernet)
        RX packets 1299820  bytes 159787996 (159.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23059  bytes 1867322 (1.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 44902860  bytes 3417717216 (3.4 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44902860  bytes 3417717216 (3.4 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

                eth0表示网卡名;lo表示回环网卡,可用来在本机中进行通信;

                UP表示网卡现行状态为开启状态;

                BROADCAST表示支持广播;

                RUNNING表示接口正在工作;

                MULTICAST表示支持多播;

                mtu 1500表示最大传输单元1500字节;

                inet表示ip地址,一般为IPv4,lo中一般为127.0.0.1;

                netmask表示子网掩码;

                broadcast表示广播地址,IP地址同一网段的最后一个地址;

                inet6表示IPv6地址, lo中一般为::1;

                prefixlen表示IPv6的前缀长度(类似IPv4的子网掩码作用);

                ether表示网卡的mac地址;

                txqueuelen 表示设置的传送队列长度为1000;

                (Ethernet)表示以太网连接类型,(Local Loopback)表示本地回环类型;
                packets 接收/发送到正确的包的数据;
                errors 接收/发送时产生错误的包数;

                dropped接收/发送时丢弃的包数;

                overruns 接收/发送时速度过快而丢失的包数;

                frame 接收时frame错误丢失的包数;

                carrier 发送时carrier错误丢失的包数;

                collisions 冲突信息的包数;

        (2)查看指定网卡eth0

                ifconfig eth0

        (3)开启/关闭eth0网卡

                ifconfig eth0 up/down

        (4)配置eth0网卡的IP地址

                ①添加地址

                        ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.255.0        (添加IPv4地址)

                        ifconfig eth0 add xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/prefixlen (添加IPv6地址)

                ②删除地址

                        ifconfig eth0 del xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/prefixlen  (删除IPv6地址)

        (5)配置eth0网卡的MAC地址

                ①先关闭网卡

                        ifconfig eth0 down

                ②修改MAC地址

                        ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx

                ③开启网卡

                        ifconfig eth0 up

        (6)配置eth0最大传输单元为800

                ifconfig eth0 mtu 800

        (7)为eth0网卡绑定新的ip地址

                ifconfig eth0:0 xxx.xxx.xxx.xxx

        2.ip

1.说明

        用于配置网口、路由等网络相关的任务。和ifconfig相似,但是功能比其更加强大,ifconfig很久之前已经停止维护。

2.格式

        ip [ OPTIONS ] OBJECT { COMMAND | help }

        OPTIONS

                -f:指定协议族(inet | inet6 | mpls | bridge | link)

                -4:使用IPv4的网络协议

                -6:使用IPv6的网络协议

                -0:使用link的网络协议

                -l:IP地址刷新的最大循环数

                -o:记录信息在一行中输出

        OBJECT

                address    :IP地址信息

                link           :网络信息

                neighbour:邻居表信息

                route        :路由信息

        COMMAND

                show        :显示数据

                add           :添加

                del            :删除

                set            :设置

3.例子

        (1)显示网络基本信息

                ip address 或 ip addr 或 ip addr show

        (2)开启/关闭网卡eth0设备

                ip link set eth0 up/down

        (3)设置网卡eth0的最大传输单元为1500

                ip link set eth0 mtu 1500

        (4)设置网卡eth0的MAC地址为xx:xx:xx:xx:xx:xx

                ip link set eth0 address xx:xx:xx:xx:xx:xx

        (5)网卡eth0添加IP地址xxx.xxx.xxx.xxx/xx

                ip addr add xxx.xxx.xxx.xxx/xx dev eth0       

                        (xxx.xxx.xxx.xxx为IP地址,xx为掩码或前缀长度)

        (6)删除网卡eth0的IP地址xxx.xxx.xxx.xxx/xx

                ip addr del xxx.xxx.xxx.xxx/xx dev eth0

        (7)显示路由表

                ip route 或 ip route list 或 ip route show

        (8)在网卡eth0上添加网关xxx.xxx.xxx.xxx

                ip route add default via xxx.xxx.xxx.xxx dev eth0

        (9)删除网卡eth0的网关地址xxx.xxx.xxx.xxx

                ip route delete default via xxx.xxx.xxx.xxx dev eth0

        3.route

1.说明

        用于获取或者配置内核ip路由表,通过创建静态路由指定网络的接口。

2.格式

        route [-FC] {add|del|flush} ...

        参数

                add        :添加一条新的路由

                del         :删除一条路由

                -f            :清除所有不是主路由的路由表

                -n           :不解析地址和端口号,以数字形式显示

                -p           :和add一起使用的时候可以是路由变为永久性的

3.例子

        (1)显示网络基本信息

                route

        (2)在网卡eth0设置网关xxx.xxx.xxx.xxx

                route add default gw xxx.xxx.xxx.xxx dev eth0

        (3)删除网卡eth0的网关xxx.xxx.xxx.xxx

                route del default gw xxx.xxx.xxx.xxx dev eth0

        4.netstat

1.说明

        用于统计并显示ip、tcp、udp、icmp协议相关的统计数据,此外还可以显示路右边、实际连接网络、网络接口设备的信息。

2.格式

        netstat [-vWeenNcCF] [<Af>] -r        
        netstat [-vWnNcaeol] [<Socket> ...]
        netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }

        参数

                -r, --route                      显示路由表
                -i, --interfaces               显示网口列表
                -s, --statistics                像snmp协议一样显示网络数据
                -v, --verbose                 详细展示
                -n, --numeric                 不解析地址和端口号,以数字形式显示
                -N, --symbolic               解析MAC地址
                -e, --extend                  显示显示以太网统计信息
                -p, --programs              显示socket的pid、端口号
                -o, --timers                   显示定时器
                -c, --continuous            连续监听
                -l, --listening                 显示监听服务的套接字
                -a, --all                          显示所有的套接字 (默认未连接模式)
                -C, --cache                   显示路由缓存而不是FIB
                -t, --tcp                         仅显示TCP相关选项
                -u, --udp                       仅显示UDP相关选项

3.例子

        (1)显示网络所有有效连接的信息列表(包括监听和已建立连接)

                netstat -a

        (2)显示网卡列表

                netstat -i

        (3)显示详细的网络统计信息(以不同协议类型进行区分)

                netstat -s

        (4)显示监听的套接字

                netstat -l

        (5)显示路由信息

                netstat -r

        (6)显示所有的tcp/udp端口

                netstat -at 或 netstat -au

        5.arp

1.说明

        显示或设置MAC缓冲区的ip地址。

2.格式

        参数

                -a                        :以可选(BSD)样式显示(所有)主机
                -e                        :以默认(Linux)方式显示(所有)主机
                -s, --set               :配置新的ARP表项
                -d, --delete          :删除指定条目
                -v, --verbose        :详细显示
                -n, --numeric       :不解析名称
                -i, --device           :指定网络接口(例如eth0)
                -D, --use-device  :从给定设备读取<hwaddr>
                -A, -p, --protocol  :指定协议族

3.例子

        (1)显示arp缓存表

                arp

        (2)将ipxxx.xxx.xxx.xxx和MACxx:xx:xx:xx:xx:xx绑定

                arp -s xxx.xxx.xxx.xxx xx:xx:xx:xx:xx:xx

        (3)删除缓存表中网卡eth0的arp项xxx.xxx.xxx.xxx 

                arp -i eth0 -d xxx.xxx.xxx.xxx 

        (4)使用eth0的MAC地址回答eth1xxx.xxx.xxx.xxx的arp请求

                arp -i eth1 -Ds xxx.xxx.xxx.xxx  eth0 pub

        6.ifup/ifdown

1.说明

        ifup用于启动网口,ifdown用于关闭网口,配置的网口配置文件必须在“/etc/sysconfig/network-scripts/ifcfg-”或者“/etc/sysconfig/network”的文件。

2.格式

        ifup/ifdown <options> <ifaces...>

        参数

                -a:处理所有标有“auto”的接口
                -i:使用FILE来定义接口

3.例子

        (1)启动/关闭eth0网口

                ifup/ifdown eth0

        (2)启动/关闭所有网口

                ifup/ifdown -a

五、磁盘管理命令

        1.df

1.说明

        显示每个文件所在的文件系统信息,默认显示所有文件系统信息。

2.格式

        df [OPTION]... [FILE]...

        参数

                -a:显示所有的文件系统,包括伪的、重复的、不可访问的
                -B:在打印前设置每块大小,按尺寸进行计数
                -h:打印大小以1024为单位
                -H:打印尺寸1000为单位
                -i :列出索引节点信息而不是块使用情况
                -l :在获取使用信息之前不调用sync(默认)使用FIELD_LIST定义的输出格式
                -P:使用POSIX输出格式,删除所有对可用空间无关紧要的条目,并生成一个总数
                -t :限制列出类型为type的文件系统
                -T:打印文件系统类型
                -x:限制列表不属于type类型的文件系统

3.例子

        (1)显示磁盘的使用情况(默认使用KB为单位)

                df

        (2)显示全部磁盘的使用情况

                df -a

        (3)以KB以上的单位来显示磁盘的使用情况

                df -h

        (4)显示磁盘的文件系统类型

                df -T

        (5)显示全部磁盘中类型为ext3

                df -t ext3

        2.du

1.说明

        针对目录或文件,统计并显示磁盘占用空间。

2.格式

        du [OPTION]... [FILE]...

        参数

                -0:显示时不换行
                -a:显示所有文件,而不仅仅是目录
                -B:设置显示时每块的大小
                -b:以字节为单位列出磁盘空间使用状况
                -c:附加显示统计结果
                -h:以K、M、G为单位显示
                -k:以1K为单位显示
                -m:以1M为单位显示
                -s:仅显示统计结果
                -x:跳过不同文件系统上的目录

3.例子

        (1)显示根目录的磁盘使用情况(默认显示当前目录)

                du /

        (2)递归显示根目录的所有目录磁盘使用情况(默认显示当前目录)

                du -a /

        3.fdisk

1.说明

        显示或操作磁盘分区表,是一个类似vi编辑器的交互式命令。分区就是把硬盘连续的区块当做一个独立的磁硬使用。

2.格式

        fdisk [options] <disk>      修改磁盘分区表

        fdisk [options] -l [<disk>] 显示磁盘分区表

        参数

                -b:物理和逻辑扇区大小
                -B:创建新标签时不要擦除引导位
                -c:模式为'dos'或'nondos'(默认)
                -l :显示分区
                -o:输出列
                -t :只识别指定的分区表类型
                -u:显示单位:'柱面'或'扇区'(默认)
                -C:指定柱面数
                -H:指定磁头数
                -S:指定每个磁道的扇区数量

3.操作

        a:切换可引导标志
        b:编辑嵌套的BSD磁盘标签
        c:切换DOS兼容性标志
        d:删除分区
        F:列出空闲的未分区空间
        l:列出已知分区类型
        n:添加一个新分区
        p:打印分区表
        t:更改分区类型
        v:验证分区表
        i:打印分区信息
        m:打印菜单
        u:更改显示/输入单元
        I:从sfdisk脚本文件加载磁盘输出
        O:转储磁盘布局到sfdisk脚本文件
        w:将表写入磁盘并退出
        q:不保存更改而退出
        g:创建一个新的空GPT分区表
        G:创建一个新的空SGI (IRIX)分区表
        o:创建一个新的空DOS分区表
        s:创建一个新的空Sun分区表

4.例子

        (1)显示所有分区(包含起始、大小、类型)

                fdisk -l

        (2)在/dev/ram0创建分区

                ①终端输入fdisk /dev/ram0,进入fdisk分区界面;

                ②输入“p”回车,查看分区状态;

                ③输入“n”回车,开始分区;

                ④输入“p”回车,生成主分区;输入“e”回车,生成拓展分区;

                ⑤输入分区的序列号,默认为1;

                ⑥输入起始扇区;
                ⑦输入最后扇区;
                ⑧保存配置输入“w”;不保存退出输入“q”;

        (3)在/dev/ram0删除分区

                ①终端输入fdisk /dev/ram0,进入fdisk分区界面;

                ②输入“p”回车,查看分区状态;

                ③输入“d”回车,删除分区;

                ④输入分区的序列号,默认为1;

                ⑤保存配置输入“w”;不保存退出输入“q”;

        4.dd

       

1.说明

        复制文件,根据操作数进行转换和格式化。

2.格式

        dd [OPERAND]...

        参数

                bs=BYTES             :每次读取和写入最多BYTES字节(默认:512);
                cbs=BYTES           :一次BYTES字节
                conv=CONVS        :按照逗号分隔的符号列表转换文件
                count=N                 :只复制N个输入块
                ibs=BYTES            :每次最多读取字节(默认:512)
                if=FILE                   :从FILE而不是stdin读取
                iflag=FLAGS          :按照逗号分隔的符号列表阅读
                obs=BYTES           :每次写入字节数(默认:512)
                of=FILE                  :写入到FILE而不是标准输出
                oflag=FLAGS         :按照逗号分隔的符号列表书写
                seek=N                  :在输出开始时跳过N个字节大小的块
                skip=N                   :在输入开始时跳过N个字节大小的块
                ascii                       :从EBCDIC到ASCII
                ebcdic                    :从ASCII转换为EBCDIC
                ibm                        :从ASCII转换为备用EBCDIC
                block                     :把每一行转换为长度为cbs,不足部分用空格填充
                unblock                 :把每一行长度为cbs,不足部分用空格填充
                lcase                     :将大写改为小写
                ucase                    :将小写改为大写
                nocreat                 :不创建输出文件
                notrunc                 :不截断输出文件
                noerror                 :读取错误后继续

3.例子

        (1)将u-boot.img烧录到/dev/ssb1分区
                dd if=u-boot.img of=/dev/ssb1 conv=fdatasync

        5.lsblk

1.说明

        列出块设备信息(包含设备的主次设备号、大小、类型、挂载点)。

2.格式

        lsblk [options] [<device> ...]

        参数

                -a:打印所有设备
                -b:以字节显示大小
                -d:不要打印从属关系
                -D:打印丢弃功能
                -e:按主机号排除设备(默认:RAM磁盘)
                -f:输出文件系统信息
                -i :只使用ASCII字符
                -I :只显示指定主设备号的设备
                -J:使用JSON输出格式
                -l :使用列表格式输出
                -T:使用树格式输出
                -m:输出权限信息
                -n:不打印标题
                -o:输出列
                -O:输出所有列
                -p :打印完整的设备路径
                -P:使用键值对输出格式
                -r :使用原始输出格式
                -s:反向依赖
                -S:SCSI设备的输出信息
                -t :拓扑输出信息
                -x:work按<column>对输出进行排序

3.例子

        (1)显示所有的块设备

                lsblk -a

        6.stat

1.说明

        显示文件或文件系统状态。

2.格式

        stat [OPTION]... FILE...

        参数

                -L:显示连接文件的信息
                -f :显示文件系统状态,而不是文件状态
                -c:以指定格式输出
                -t :简单模式输出

        格式

                参数不包含-f时

                        %a:八进制访问权限(注意'#'和'0'打印标志)
                        %A:可读形式的访问权限
                        %b:分配的块数(见%B)
                        %B:%b显示的每个块的字节大小
                        %d:十进制设备编号
                        %D:十六进制设备编号
                        %f :十六进制的原始模式
                        %F:文件类型
                        %g:所有者组ID
                        %G:所有者组名
                        %h:硬链接数
                        %i :inode号
                        %m:挂载点
                        %n:文件名
                        %N:如果是符号链接,文件名带引号
                        %o:最佳I/0传输大小提示
                        %s:总大小,以字节为单位
                        %t :十六进制的主要设备类型,用于字符/块设备特殊文件
                        %T:十六进制的次要设备类型,用于字符/块设备特殊文件
                        %u:所有者的用户ID
                        %U:所有者的用户名

                参数包含-f时

                        %b:文件系统中的数据块总数
                        %c:文件系统中文件节点总数
                        %d:文件系统中空闲的文件节点
                        %f:文件系统中的空闲块
                        %i :十六进制文件系统ID
                        %l :文件名的最大长度TTTMTT here
                        %s:块大小(用于更快的传输)
                        %S:基本块大小(用于块计数)
                        %t :十六进制文件系统类型
                        %T:可读形式的文件系统类型

3.例子

        (1)显示test文件的详细信息(包含大小、文件类型、权限等信息)

                stat test

        (2)显示test文件在文件系统中的详细信息(包含大小、文件类型等信息)

                stat -f test

        (3)显示test文件的文件类型

                stat -c %F test

        (4)显示test文件在文件系统中文件节点总数

                stat -f -c %c  test

六、进程管理命令


         补充说明:在Linux系统中,进程的状态主要包含R、S、D、I、T、Z状态,此外还有'<'、'N '、'l'、'+'、's'状态辅助表示进程状态。以下是对这些状态的详细说明:

        R:运行态,表示进程在CPU的就绪队列中,正在运行或者等待CPU分配时间片后再运行;

        S:可中断休眠态,表示进程等待事件而挂起,等待的事件发生,进程会被唤醒转为运行态;

        D:不可中断休眠态,表示进程和硬件进行交互,交互过程中不可以被中断;

         I :空闲态,一般用于不可中断休眠的内核进程中,和D状态的区别在于I状态没有任何负载;

        T:停止态,收到信号SINSTOP导致进程暂时停止,可由SINCONT信号使其继续运行;

        Z:僵尸态,进程已经结束,但是父进程没有结束,导致进程的资源没有被回收;

        <:优先级高的进程;

        N:优先级低的进程;

         l :进程中包含线程(此处为小写字母'l',上一处为大写字母'I');

        + :前台进程,终端中运行的命令启动的进程;

        s :会话首进程,会话是为了完成一个任务,一个或多个进程组成的一个集合;


      1.ps

1.说明

        列举系统中当前运行的进程。

2.格式

        ps [options]

        参数

                -A:显示所有进程(和选项-e一致);
                -a:显示终端的所有进程;
                -f:可显示是进程的父进程PID;

                -j:显示进程同家族的进程;
                -u:显示已知用户进程(包括进程的CPU/内存占有率、进程状态、启动指令);
                -x:显示不受终端控制的进程(显示命令的路径);


                e:显示启动指令是的环境变量;
                h:不显示第一行;
                v:以虚拟储存器格式显示;
                s:以信号格式显示;

3.例子

        (1)查看全部进程状态(显示用户名、PID、CPU/MEM占有率、状态、开始时间等)

                ps -aux

        (2)查看全部进程的父进程(显示用户名、PID、PPID等)

                ps -ef

        (3)查看全部进程家族关系(显示PID、PPID、进程组ID即PGID、会话ID即SID等)

                ps -ajx

        2.top

1.说明

        动态查看进程信息。

2.格式

        top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

        参数

                -hv              :显示帮助信息和版本
                -bcHiOSs    :显示关键字
                -d secs       :设置信息刷新时间为secs秒
                -n max        :设置更新次数为max次
                -u|U user    :设置监控用户为user的进程
                -p pid(s)      :设置监控进程的PID
                -o field        :设置输出时排序的规则为field字段(使用-bcHiOSs获取的字段);
                -w [cols]      :设置输出的宽度为cols;

3.例子

        (1)动态查看进程

                top

                        注意:top指令也是可用于交互的工具,运行top之后。

                                输入c:切换显示运行命令名和完整的命令行;

                                输入M:切换为按照内存占用率由高到低的顺序显示进程;

                                输入P:切换为按照CPU占用率由高到低的顺序显示进程;

        (2)动态查看用户名为root的进程

                top -U root

        (3)动态监控PID为100的进程

                top -p 100

        (4)设定监控刷新时长为5

                top -d 5

        (5)动态按照内存占用率由高到低顺序查看进程

                top -o %MEM

        3.kill

1.说明

        向进程发送信号,没有指定信号将会给进程发送SIGTERM(终止进程)。

2.格式

        kill [-s sigspec | -n signum | -sigspec] pid | jobspec ...

        kill -l [sigspec]

        参数

                -s sig:给进程发送的信号名为sig;
                -l/L    :列举所有信号;

3.例子

        (1)查看所有信号

                kill -l

        (2)杀死PID为100的进程

                kill 100

        (3)给PID为100的进程发送信号9

                kill -9 100 或kill -s SIGKILL 100 

        (4)杀死用户root的所有进程

                kill -u root

        (5)杀死test进程

                kill -9 $(ps -ef | grep test)

        4.jobs

1.说明

        查看被停止的进程列表,一般当一个正在运行时,收到Ctrl+Z的型号后,进程被停止,此进程就可以被jobs之后查看到,启动、停止、终止以及恢复作业的这些功能统称为作业控制。

2.格式

        jobs [-lnprs] [jobspec ...]

        jobs -x command [args]

        参数

                -l :除进程名信息外,还列出进程id
                -n:仅列出自上次通知以来已更改状态的进程
                -p:只列出PID
                -r :显示正在运行的作业
                -s:显示已停止的作业

3.例子

        (1)查看进程的PID和作业号

                jobs -l

                补充:

                        fg :会将后台暂停的进程恢复到前台去运行

                                fg + %序列号 

                        bg :会将后台暂停程序在后台运行

                                bg + %序列号

        5.pstree

1.说明

        以树的形式显示进程关系。

2.格式

        pstree [-acglpsStuZ] [ -h | -H PID ] [ -n | -N type ] [ -A | -G | -U ] [ PID | USER ]

        参数

                -a       :显示命令行参数
                -A       :使用ASCII字符划线字符
                -c        :不压缩相同的子树
                -h        :突出显示当前进程及同组进程
                -H       :突出显示指定进程及同组进程
                -g        :work显示进程组id
                -G       :使用VT100线条绘制字符
                -l         :不截断长行
                -n        :PID输出排序
                -N       :按命名空间类型排序(cgroup, ipc, mnt, net, pid, user, uts)
                -p        :显示pid
                -s        :显示所选进程的父进程
                -S        :显示名称空间转换
                -t         :显示完整的线程名称
                -T        :隐藏线程,只显示进程
                -u        :显示uid转换
                -U       :使用UTF-8 (Unicode)划线字符
                -V       :显示版本信息
                -Z       :显示SELinux安全上下文
                PID     :从PID开始;默认为1 (init)
                USER :只显示root于该用户进程的树

3.例子

        (1)以树的形式显示进程

                pstree 

        (2)以树的形式显示进程及命令行指令

                pstree -a

        (3)以树的形式显示进程及PID

                pstree -p

七、驱动管理命令

        1.insmod

1.说明

        将模块加载到内核。

2.格式

        insmod [options] filename [args]

        参数

                -f:强制将模块载入;
                -m:输出模块的载入信息;
                -p:测试模块是否能正确地载入kernel;
                -s:将所有信息记录在系统记录文件中;
                -v:执行时显示详细的信息;

3.例子

        (1)加载test.ko模块

                insmod test.ko

        2.lsmod

1.说明

        查看内核加载的所有模块。

2.格式

        lsmod

3.例子

        (1)查看内核加载的所有模块

                lsmod

        3.rmmod

1.说明

        卸载内核驱动模块。

2.格式

        rmmod [options] modulename ..

        参数

                -f:强制模块卸载并可能使机器崩溃。这需要内核中的强制模块移除选项
                -s:打印到syslog,而不是stderr

3.例子

        (1)卸载test.ko模块

                rmmod test.ko

        4.dmesg

1.说明

        显示或控制内核环缓冲区。

2.格式

        dmesg [options]

        参数

                -C:清除内核环缓冲区
                -c :阅读并清除所有消息
                -D:禁用向控制台打印消息
                -E:启用将消息打印到控制台
                -F:使用该文件代替内核日志缓冲区
                -f :限制输出到定义的设施
                -H:输出为可读形式
                -k:显示内核消息
                -L:默认情况下,消息的颜色(自动、始终或从不)是启用的
                -l :将输出限制为定义的级别
                -n:设置打印到控制台的消息级别
                -P:不要将输出管道输出到分页器中
                -r :打印原始消息缓冲区
                -S:强制使用syslog(2)而不是/dev/kmsg
                -s :缓冲区大小查询内核环缓冲区
                -u:显示用户空间消息
                -w:等待新消息
                -x:解码功能和级别为可读字符串
                -d:显示打印消息之间的时间间隔
                -e:以可读格式显示本地时间和时间增量
                -T:显示可读的时间戳(可能不准确!)
                -t :不要在消息中显示时间戳

3.例子

        (1)查看内核缓冲区中记录的所有数据

                dmesg

        (2)查看并清空内核缓冲区中记录的所有数据

                dmesg -c

八、总结

        在不同的设备中有些指令可能需要提前下载相关安装包。以上内容仅是Linux中常用的一些指令的常用用法,还有很多指令在此未能提及。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令PDF是一种包含Linux操作系统中常用命令和其使用方法的电子书格式文件。通过下载和阅读Linux命令PDF,用户可以方便地学习、查找和使用Linux系统中的各种命令Linux命令PDF中通常会包含诸如文件操作、目录管理、进程管理、网络配置、软件安装等方面的命令。通过学习这些命令,用户可以更好地理解和掌握Linux系统的使用。不论是Linux初学者还是有经验的用户,都可以利用Linux命令PDF来提高自己的技能和效率。 Linux命令PDF的优势包括: 1. 全面性:Linux命令PDF中包含了Linux系统中几乎所有的常用命令,用户可根据需要选择学习和掌握特定的命令。 2. 方便性:PDF文件格式易于阅读和搜索,用户可以方便地在文档中查找和定位具体的命令和使用方法。 3. 离线使用:用户可以将Linux命令PDF下载到本地,便于随时查阅,无需依赖网络连接。 4. 可打印性:用户可以将Linux命令PDF打印成纸质文档,以备在没有电脑或电子设备的情况下使用。 5. 更新性:由于Linux系统的不断更新和发展,命令也在不断增加和演变。因此,一些Linux命令PDF会提供定期的更新版本,使用户能够获取到最新的命令和使用方法。 总之,Linux命令PDF是一种有助于用户学习和使用Linux系统的工具。通过下载和了解Linux命令PDF,用户可以很快地了解和掌握Linux系统中的常用命令,从而提高自己的工作效率和技能水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值