Linux常用命令总结

这篇博客汇总了Linux系统中常见的操作命令,包括目录与文件管理(如cd、pwd、mkdir等)、文件内容操作(如vim、cat、more等)、系统管理(如ps、top、kill等)、网络管理(如ifconfig、netstat)以及压缩解压和包管理工具的使用。旨在提供一个快速参考指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

本文主要目的为总结Linux常用操作命令,由于时间、篇幅所限,仅列出部分个人认为常用的命令及参数,对于不常用的参数暂不做介绍。

参考资料

  • 鸟哥的Linux私房菜
  • https://blog.csdn.net/m0_50546016/article/details/119984255

目录

一. 目录与文件管理(cd/pwd/mkdir/rmdir/ls/cp/mv)

  1. cd

命令简介:变更当前目录

命令格式:cd DIRECTORY

示例:

$ cd /usr/bin
  1. pwd

命令简介:显示当前目录

命令格式:pwd [OPTION]…

示例:

$ pwd
/usr/bin
  1. ls

命令简介:列出目录下的文件

命令格式:ls [OPTION]… [FILE]…

常用参数:

-a:列出全部文件,包括隐藏文件(文件名以 . 开头)

-l:列出文件属性与权限等数据

-R:递归的列出所有子目录及文件

示例:

$ ls /etc/samba/ -alR
/etc/samba/:
total 28
drwxr-xr-x  3 root root 4096 Sep  8 16:49 .
drwxr-xr-x 81 root root 4096 Sep 24 15:58 ..
-rw-r--r--  1 root root    8 Jun 20  2019 gdbcommands
-rw-r--r--  1 root root 8989 Sep  8 16:49 smb.conf
drwxr-xr-x  2 root root 4096 Jun 20  2019 tls

/etc/samba/tls:
total 8
drwxr-xr-x 2 root root 4096 Jun 20  2019 .
drwxr-xr-x 3 root root 4096 Sep  8 16:49 ..
  1. mkdir

命令简介:创建新目录

命令格式:mkdir [OPTION]… DIRECTORY…

常用参数:

-p:递归创建上层目录

示例:

$ ls
dir1
$ mkdir -p dir2/dir3
$ ls dir2 -R
dir2:
dir3

dir2/dir3:
  1. rm

命令简介:删除指定的文件或目录

命令格式:rm [OPTION]… [FILE]…

常用参数:

-f:强制,忽略不存在的文件,不出现警告信息

-r:递归删除目录和它们的内容,删除目录的常用选项

示例:

$ rm -rf /tmp/testdir

注:使用rm -rf时请仔细确认删除的文件夹。可将-rf参数移到命令最后,避免误操作,如键入rm -rf /后误碰回车键。

  1. cp

命令简介:复制文件和目录

命令格式:cp [OPTION]… SOURCE… DIRECTORY

常用参数:

-d:保留链接,如不加此参数,链接将被复制为真实的文件

-R/-r:递归复制目录

-a:等同于 -dr

示例:

$ ls -R
.:
dir1

./dir1:
test
$ cp -r dir1 dir2
$ ls -R
.:
dir1  dir2

./dir1:
test

./dir2:
test
  1. mv

命令简介:移动或重命名文件

命令格式:mv [OPTION]… SOURCE… DIRECTORY

示例:

$ ls -R
.:
dir1  dir2

./dir1:
test

./dir2:
test
$ mv dir1/test dir2/test1
$ ls -R
.:
dir1  dir2

./dir1:

./dir2:
test  test1

二. 文件内容操作(vim/cat/more/tail/grep/sed/echo)

  1. vim

命令简介:功能强大的文本编辑器,vim需要一定的学习成本,在此受篇幅限制不对操作进行介绍。

如想了解基本操作,请参阅vimtutor;如需使用vim作为IDE编程环境,可以参阅 https://blog.csdn.net/wooin/article/details/1858917 等文章。

命令格式:vim [options] [file …]

示例:

$ vim test.c
  1. cat

命令简介:将文件内容打印至终端

命令格式:cat [OPTION]… [FILE]…

示例:

# cat /var/log/kern.log
Oct  8 09:13:07 debDev kernel: [  110.853233] e1000: ens33 NIC Link is Down
Oct  8 09:13:09 debDev kernel: [  112.868894] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Oct  8 09:13:31 debDev kernel: [  135.044942] e1000: ens33 NIC Link is Down
Oct  8 09:13:35 debDev kernel: [  139.076362] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Oct  8 09:13:37 debDev kernel: [  141.092293] e1000: ens33 NIC Link is Down
Oct  8 09:13:43 debDev kernel: [  147.141304] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Oct  8 09:14:34 debDev kernel: [  197.541782] e1000: ens33 NIC Link is Down
Oct  8 09:14:38 debDev kernel: [  201.575456] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

......

  1. more

命令简介:一个过滤器,将文本分页显示,通常配合管道( | )处理其他程序的输出,如cat。

与more命令类似但功能更加强大的命令还有less。

命令格式:more [options] file…

示例:

# cat /var/log/kern.log | more
Oct  8 09:13:07 debDev kernel: [  110.853233] e1000: ens33 NIC Link is Down
Oct  8 09:13:09 debDev kernel: [  112.868894] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Oct  8 09:13:31 debDev kernel: [  135.044942] e1000: ens33 NIC Link is Down
Oct  8 09:13:35 debDev kernel: [  139.076362] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

...... #内容总共占满屏幕,此处省略部分内容

Oct  9 09:33:50 debDev kernel: [    0.000000] vmware: using sched offset of 7858469686 ns
Oct  9 09:33:50 debDev kernel: [    0.000001] tsc: Detected 2904.004 MHz processor
Oct  9 09:33:50 debDev kernel: [    0.002864] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
Oct  9 09:33:50 debDev kernel: [    0.002865] e820: remove [mem 0x000a0000-0x000fffff] usable
Oct  9 09:33:50 debDev kernel: [    0.002868] last_pfn = 0xc0000 max_arch_pfn = 0x400000000
--More--

此时按空格可以翻页,更多功能请参考命令手册。

  1. tail

命令简介:输出文件末尾部分,常用于查看日志文件最新的部分

常用参数:

-n lines:指定输出文件末尾的行数

命令格式:tail [OPTION]… [FILE]…

示例:

# tail -n 5 /var/log/kern.log
Oct 12 08:48:32 debDev kernel: [    6.225529] audit: type=1400 audit(1633999712.355:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=500 comm="apparmor_parser"
Oct 12 08:48:32 debDev kernel: [    6.226830] audit: type=1400 audit(1633999712.355:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/tcpdump" pid=499 comm="apparmor_parser"
Oct 12 08:48:32 debDev kernel: [    6.380566] IPv6: ADDRCONF(NETDEV_UP): ens33: link is not ready
Oct 12 08:48:32 debDev kernel: [    6.389846] e1000: ens33 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Oct 12 08:48:32 debDev kernel: [    6.390564] IPv6: ADDRCONF(NETDEV_CHANGE): ens33: link becomes ready
  1. grep

命令简介:检索文件中的关键词

常用参数:

-i:检索时忽略大小写

-n:显示行号

-r:递归读取目录中的所有文件

命令格式:grep [OPTION…] PATTERNS [FILE…]

grep [OPTION…] -e PATTERNS … [FILE…]

示例:

# grep -rn "nameserver" /etc
/etc/resolv.conf:3:nameserver 223.5.5.5
/etc/resolv.conf:4:nameserver 114.114.114.114
/etc/services:36:nameserver	42/tcp		name		# IEN 116
/etc/init.d/nmbd:10:# Short-Description: Samba NetBIOS nameserver (nmbd)

注:使用 -e 参数时,PATTERNS为一个正则表达式。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,功能十分强大,语法详情可以参考 https://www.runoob.com/regexp/regexp-syntax.html

  1. sed

命令简介:过滤和转换文本的流编辑器,常用于在脚本中对文本文件进行自动化处理。它可以实现对文件进行新增、删除、替换及打印等操作,可以配合正则表达式进行复杂的替换操作。

命令格式:sed [OPTION]… {script-only-if-no-other-script} [input-file]…

示例:

### 在文件第4行后添加一行"newLine"
$ sed -e 4a\newLine testfile 
### 将ifconfig结果中,IP前面的部分删除
$ /sbin/ifconfig ens33 | grep 'inet ' | sed 's/^.*inet//g'
 192.168.10.11  netmask 255.255.255.0  broadcast 192.168.10.255
  1. echo

命令简介:显示一行文本,可以方便的在脚本中打印信息或配合IO重定向向日志中追加信息

命令格式:echo [SHORT-OPTION]… [STRING]…

示例:

$ echo Hello World!
Hello World!

三. 系统管理(ps/top/free/kill)

  1. ps

命令简介:显示当前的进程状态

命令格式:ps [options]

常用参数:

a:用一个终端(tty)列出所有进程,或者与x选项一起使用时列出所有进程

u:以面向用户的格式显示

x:列出与ps相同EUID的所有进程,或者与a选项一起使用时列出所有进程

示例:

$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 169380 10064 ?        Ss   09:06   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    09:06   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        I<   09:06   0:00 [rcu_gp]
root          4  0.0  0.0      0     0 ?        I<   09:06   0:00 [rcu_par_gp]
root          6  0.0  0.0      0     0 ?        I<   09:06   0:00 [kworker/0:0H-kblockd]
root          8  0.0  0.0      0     0 ?        I<   09:06   0:00 [mm_percpu_wq]
root          9  0.0  0.0      0     0 ?        S    09:06   0:00 [ksoftirqd/0]
root         10  0.0  0.0      0     0 ?        I    09:06   0:08 [rcu_sched]
root         11  0.0  0.0      0     0 ?        I    09:06   0:00 [rcu_bh]
root         12  0.0  0.0      0     0 ?        S    09:06   0:00 [migration/0]

......

  1. top

命令简介:显示linux进程

命令格式:top [options]

示例:

$ top
top - 14:49:11 up  5:42,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   2978.9 total,   2619.5 free,    160.6 used,    198.8 buff/cache
MiB Swap:    975.0 total,    975.0 free,      0.0 used.   2653.1 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    18 root      20   0       0      0      0 I   0.3   0.0   0:19.37 kworker/1:0-events_freezable
  1383 qinxy     20   0   11104   3512   3060 R   0.3   0.1   0:00.02 top
     1 root      20   0  169380  10064   7880 S   0.0   0.3   0:01.32 systemd
     2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
     3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
     4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
     6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd
     8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     9 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/0
    10 root      20   0       0      0      0 I   0.0   0.0   0:08.64 rcu_sched
    11 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_bh
    12 root      rt   0       0      0      0 S   0.0   0.0   0:00.07 migration/0
    13 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/0:1-memcg_kmem_cache
    14 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
    15 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1
    16 root      rt   0       0      0      0 S   0.0   0.0   0:00.43 migration/1
    17 root      20   0       0      0      0 S   0.0   0.0   0:00.01 ksoftirqd/1
    19 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-kblockd
    20 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/2

......

  1. free

命令简介:显示系统中可用和已用的内存数量

命令格式:free [options]

常用参数:

-h:显示易读的输出

-m:以MB为单位显示输出

示例:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          2.9Gi       160Mi       2.6Gi       9.0Mi       198Mi       2.6Gi
Swap:         974Mi          0B       974Mi
  1. kill

命令简介:向进程发送信号

命令格式:kill [options] […]

常用参数:

-:指定发送的信号,默认信号为 TERM

示例:

$ ps au
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        528  0.0  0.0   5612  1680 tty1     Ss+  09:06   0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
qinxy       659  0.0  0.1   8628  5312 pts/0    Ss   09:08   0:00 -bash
qinxy      1116  0.0  0.1   8048  4956 pts/1    Ss   13:57   0:00 -bash
qinxy      1475  3.2  0.2  17500  8332 pts/1    S+   15:42   0:00 vim
qinxy      1477  0.0  0.0  10632  3008 pts/0    R+   15:42   0:00 ps au
$ kill -9 1475
$ ps au
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        528  0.0  0.0   5612  1680 tty1     Ss+  09:06   0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
qinxy       659  0.0  0.1   8628  5312 pts/0    Ss   09:08   0:00 -bash
qinxy      1487  0.3  0.1   7916  4740 pts/1    Ss+  15:44   0:00 -bash
qinxy      1493  0.0  0.1  10632  3056 pts/0    R+   15:44   0:00 ps au

注: -9KILL 信号,用于强制杀死进程。

四. 网络管理(ifconfig/netstat)

  1. ifconfig

命令简介:查询、配置网络接口,常用于对网络接口的IP、掩码、MTU、MAC地址等信息进行配置

命令格式:ifconfig [-v] interface [aftype] options | address …

常用参数:

-a:显示所有当前可用的接口(包括down状态的接口)

示例:

# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.11  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe15:54f5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:15:54:f5  txqueuelen 1000  (Ethernet)
        RX packets 12453  bytes 1003177 (979.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11367  bytes 4079246 (3.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:0c:29:15:54:ff  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        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 172  bytes 10320 (10.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 172  bytes 10320 (10.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
# ifconfig ens37 192.168.2.100 netmask 255.255.255.0
# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.11  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::20c:29ff:fe15:54f5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:15:54:f5  txqueuelen 1000  (Ethernet)
        RX packets 12596  bytes 1014007 (990.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11448  bytes 4087888 (3.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.2.100  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:0c:29:15:54:ff  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        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 172  bytes 10320 (10.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 172  bytes 10320 (10.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  1. netstat

命令简介:打印网络连接、路由表、接口状态等信息

命令格式:netstat [options]

常用参数:

-r:显示内核路由表

-i:显示所有网络接口

-s:显示协议统计信息

-n:显示数字地址,不试图确定符号主机、端口或用户名

-p:显示socket所属的PID和进程名

-l:仅显示监听socket

-a:显示监听、非监听socket,配合-i时显示所有接口信息(包括未up接口)

-t: TCP协议

-u: UDP协议

示例:

# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      571/smbd            
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      571/smbd            
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      532/sshd            
# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.10.2    0.0.0.0         UG        0 0          0 ens33
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33
  1. ping

命令简介:向网络主机发送ICMP ECHO_REQUEST报文,常用于诊断网络问题

命令格式:ping [options] destination

常用参数:

-c count:在发送count个ECHO_REQUEST报文后停止发送

-i interval:在发送每个数据包间等待interval秒

-I interface:interface可以是一个接口地址或接口名称,它将源地址或接口设置为指定的地址或接口

-s packetsize:指定发送的字节数,默认为56(加8字节ICMP头共64字节)

示例:

$ ping -c 3 -s 1000 192.168.10.2
PING 192.168.10.2 (192.168.10.2) 1000(1028) bytes of data.
1008 bytes from 192.168.10.2: icmp_seq=1 ttl=128 time=0.119 ms
1008 bytes from 192.168.10.2: icmp_seq=2 ttl=128 time=0.352 ms
1008 bytes from 192.168.10.2: icmp_seq=3 ttl=128 time=0.569 ms

五. 压缩解压(tar/unzip)

  1. tar

命令简介:归档管理工具,用于压缩、解压文件

命令格式:tar {A|c|d|r|t|u|x} [options] [ARG…]

常用参数:

-c:创建归档

-x:解压归档

-t:查看归档文件

-f:归档文件名

-v:详细列出所处理的文件

-p:解压文件权限信息

–exclude=PATTERN:排除PATTERN文件

-j:使用bzip2过滤归档

-J:使用xz过滤归档

-z:使用gzip过滤归档

示例:

### 压缩/etc目录
$ tar czf etc.tar.gz /etc
### 解压aaa.tar.gz
$ tar xf aaa.tar.gz

注:-c/x/t等标识操作的参数仅能存在一个。

  1. unzip

命令简介:解压zip文件工具

命令格式:unzip [options] file[.zip] [file(s) …] [-x xfile(s) …] [-d exdir]

示例:

$ unzip aaa.zip

六. 包管理(apt/yum)

包管理器是在电脑中自动安装、配制、卸载和升级软件包的工具组合,几乎每一个Linux发行版都有自己的包管理器。

一般来说使用较多的Linux发行版分两大系列:

RedHat系:如Redhat、CentOS、Fedora等,其软件包格式为rpm

Debian 系:如Debian、Ubuntu及其衍生版等,其软件包格式为deb

  1. apt

命令简介:deb包管理的命令行接口

命令格式:apt [options] {command}

示例:

### 更新软件源
# apt update
### 更新软件
# apt upgrade
### 安装软件gcc
# apt install gcc
  1. yum

命令简介:rpm包管理的命令行接口

命令格式:yum [options] [command] [package …]

示例:

### 更新软件
# yum update
### 安装软件gcc
# yum install gcc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值