Linux常用命令

文件与目录管理相关命令

ls

用于显示当前目录或指定目录下的文件和子目录列表。

常用选项

  • -l:以详细信息列出(long format)

  • -a:显示所有文件,包括以 . 开头的隐藏文件

  • -h:人类可读的文件大小(与 -l 一起使用)

ls -lah /home/user/

#结果
drwxr-xr-x  2 user user 4096 May  1 12:34 Documents
-rw-r--r--  1 user user  220 May  1 12:34 file.txt

cd

切换当前工作目录。

cd [路径]

cd /home/user/Documents

pwd

显示当前工作目录的绝对路径。

pwd
 
#结果
/home/user/Documents

mkdir

创建新目录。

常见选项

  • -p:递归创建父目录。

mkdir [选项] 目录名

mkdir -p /home/user/Documents/new_folder

rmdir

删除空目录。

rmdir [目录名]

rmdir /home/user/Documents/new_folder

rm

删除文件或目录。

rm [选项] 文件名

常见选项:

-r:递归删除目录及其内容。

-f:强制删除,不会询问确认。

-i:交互式删除,删除前会询问确认。

cp

复制文件或目录。

常见选项

  • -r:递归复制目录。

  • -i:交互式,覆盖前询问。

  • -u:仅在源文件比目标文件更新

cp [选项] 源文件 目标文件


rm file.txt
rm -r dir1

touch

创建一个空文件,或更新文件的访问时间和修改时间。

touch 文件名

touch newfile.txt

find

在文件系统中查找文件或目录。

find [路径] [条件] [动作]

#在/home/user目录下查找所有后缀为.txt的文件
find /home/user -name "*.txt"

cat

查看文件内容,或者同时查看多个文件内容。

cat [文件1] [文件2] ...

file1.txt:
Hello from file1!
This is the first file.
file2.txt:
Hello from file2!
This is the second file.

cat file1.txt file2.txt
#结果
Hello from file1!
This is the first file.
Hello from file2!
This is the second file.

 ln

创建硬链接或符号链接。

硬链接:
ln 源文件 链接文件

符号链接:
ln -s 源文件 链接文件

创建 file.txt 的硬链接 file_link.txt:
ln file.txt file_link.txt
创建了一个硬链接 file_link.txt,它与原文件 file.txt 指向同一数据块。
此时
cat file.txt      # 输出 file.txt 的内容
cat file_link.txt # 输出 file.txt 的内容


创建 file.txt 的符号链接 file_symlink.txt:
ln -s file.txt file_symlink.txt
创建了一个符号链接 file_symlink.txt,它是一个指向 file.txt 的快捷方式。

stat

显示文件或文件系统的详细信息。

stat 文件

stat file.txt
#输出
File: file.txt
Size: 2048       Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 1234567    Links: 1
Access: 2025-05-01 14:00:00.000000000
Modify: 2025-04-30 09:00:00.000000000
Change: 2025-04-30 09:00:00.000000000
Birth: -

tar

tar 是 Linux 中常用的归档工具,可以将多个文件打包成一个 .tar 文件,还可以结合 gzip、bzip2 实现压缩。

常见选项

  • -c:创建归档文件(create)。

  • -x:解包归档文件(extract)。

  • -v:显示处理过程(verbose)。

  • -f:指定文件名(file)。

  • -z:使用 gzip 压缩(.tar.gz)。

  • -j:使用 bzip2 压缩(.tar.bz2)。

示例(打包并压缩):
tar -czvf archive.tar.gz mydir/

示例(解压):
tar -xzvf archive.tar.gz

gzip / gunzip

gzip:压缩单个文件,生成 .gz 文件。

常见选项

  • -k:保留原始文件。

  • -v:显示详细信息。

gunzip:解压 .gz 文件。

示例(压缩):
gzip -k file.txt
示例结果:
file.txt.gz  (原始 file.txt 仍保留)
示例(解压):
gunzip file.txt.gz

zip

zip 是 Windows/Linux 都常见的压缩格式,支持多个文件。

常见选项:
  • -r:递归压缩目录

  • -v:显示详细信息

  • -9:最大压缩率

zip -r myarchive.zip mydir/

unzip

解压 .zip 文件

常见选项:
  • -l:列出压缩包内容但不解压

  • -d:指定解压目录

  • -o:覆盖已存在文件而不提示

unzip myarchive.zip

权限与用户管理类命令

chmod

更改文件或目录的权限。

chmod [选项] 权限 文件

常见选项

  • +:添加权限

  • -:删除权限

  • =:设置权限

  • r:读权限

  • w:写权限

  • x:执行权限

#给file.txt添加可执行权限
chmod +x file.txt

#给 file.txt 设置为所有者可读、可写,其他用户只读
chmod 644 file.txt

补充:文件权限

chmod 命令用于更改文件的权限。权限以三位八进制数字(如 644、777)表示,每一位数字控制不同用户类型的权限:文件所有者、所属用户组、其他用户。

权限的数字表示法

每个数字表示一个权限集,其中:

  • 4 表示读权限(r)

  • 2 表示写权限(w)

  • 1 表示执行权限(x)

这三个数字可以组合起来,表示不同的权限组合。每一位数字表示一种用户类型的权限设置:

  • 第一个数字:表示文件所有者的权限

  • 第二个数字:表示文件所属用户组的权限

  • 第三个数字:表示其他用户的权限

举例:

644

  • 6(文件所有者的权限):64 + 2,意味着文件所有者拥有 权限,但没有 执行 权限。

  • 4(所属用户组的权限):4 意味着该用户组只有 权限。

  • 4(其他用户的权限):4 同样意味着其他用户只有 权限。

所以,chmod 644 file.txt 表示文件 file.txt 对文件所有者可读可写,对用户组和其他用户只读。

777

  • 7(文件所有者的权限):74 + 2 + 1,意味着文件所有者拥有 读、写、执行 权限。

  • 7(所属用户组的权限):7 同样意味着该用户组拥有 读、写、执行 权限。

  • 7(其他用户的权限):7 也意味着其他用户拥有 读、写、执行 权限。

所以,chmod 777 file.txt 表示文件 file.txt 对所有人(包括文件所有者、用户组、其他用户)都具有 读、写、执行 权限。

chown

更改文件或目录的所有者。

chown [选项] 用户[:用户组] 文件

常见选项

  • -R:递归操作,改变目录及其中的文件和子目录的所有者。

#更改文件 file.txt 的所有者为 user1:
chown user1 file.txt

#递归地更改目录 mydir 及其所有子目录和文件的所有者:
chown -R user1 mydir

chgrp

更改文件或目录的所属用户组。

  • 用户:是操作系统中的个体,可以是人,也可以是服务、进程等。

  • 用户组:是一组用户的集合,允许多个用户共享一组资源或权限。

  • 所属用户组:是指一个文件或目录的管理和访问权限的用户组。每个文件或目录都有一个所属用户组,可以是文件所有者所属的组,也可以是其他组。

chgrp [选项] 用户组 文件

常见选项

  • -R:递归更改目录及其中所有文件的所属用户组。

将 file.txt 的用户组更改为 group1:
chgrp group1 file.txt

递归更改目录 mydir 的所属用户组为 group1:
chgrp -R group1 mydir

groupadd

创建一个新的用户组。

groupadd [选项] 用户组

创建一个新用户组 group1:
groupadd group1

useradd

创建一个新的用户账户。

useradd [选项] 用户

常见选项

  • -m:创建用户时自动创建用户的主目录。

  • -G:将用户添加到一个或多个附加组。

  • -s:指定用户的默认登录 shell。

创建一个名为 user1 的新用户,并自动创建其主目录:
useradd -m user1

创建一个新用户 user2,并将其添加到 group1 组:
useradd -m -G group1 user2

passwd

修改用户的密码。

passwd [用户]

#修改当前用户的密码:
passwd
#修改 user1 的密码:
passwd user1

groups

显示当前用户或指定用户所属的所有用户组。

#显示当前用户所属的组:
groups
#显示 user1 所属的组:
groups user1

进程管理类命令

ps

查看当前系统中的进程信息。它可以显示所有进程、特定进程或某个特定条件下的进程。

ps [选项]

常见选项

  • -e-A:显示所有进程。

  • -f:显示更详细的信息。

  • -u:显示指定用户的进程。

  • aux:常用选项,显示所有用户的进程,并以用户友好的方式显示。

top

实时查看系统中的进程信息,并动态更新。它显示 CPU、内存使用情况,帮助用户了解系统资源的分配情况。

top

常见选项:

  • -d:指定更新间隔时间(单位:秒)。

  • -n:指定显示更新的次数。

  • -u:显示指定用户的进程。

  • -p:显示指定进程ID的信息。

  • -b:以批处理模式运行,适用于脚本。

top - 11:23:45 up 2 days,  4:19,  3 users,  load average: 0.13, 0.20, 0.18
Tasks: 152 total,   1 running, 151 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.3 us,  0.6 sy,  0.0 ni, 97.9 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :  16003.7 total,   4327.1 free,   8323.5 used,   3353.1 buff/cache
MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.   6089.0 avail Mem

kill

发送信号到进程,最常用的信号是 SIGTERM(终止进程)和 SIGKILL(强制终止进程)。通过进程 ID(PID)指定要终止的进程。

kill [选项] PID

常见选项

  • -9:强制终止进程(即 SIGKILL)。

  • -15:默认终止信号(即 SIGTERM)。

发送默认的终止信号(SIGTERM)给进程:
kill 1234
强制终止进程(SIGKILL):
kill -9 1234

pkill

根据进程名称发送信号,可以用来结束特定名称的进程,类似于 kill,但不需要知道 PID。

pkill [选项] 进程名称

常见选项

  • -9:强制终止进程。

  • -u:指定用户。

根据进程名称终止所有 firefox 进程:
pkill firefox
强制终止 firefox 进程:
pkill -9 firefox

nice

启动一个进程并设置其优先级。数值越小,优先级越高;数值越大,优先级越低。

nice [选项] 命令 [参数]

常见选项

  • -n:指定优先级数值,范围是 -20(最高优先级)到 19(最低优先级)。

启动一个进程并设置其优先级为 10(低优先级):
nice -n 10 command
启动一个进程并设置其优先级为 -10(高优先级):
nice -n -10 command

renice

修改正在运行的进程的优先级(也称为 "nice 值")。这个命令通常用于调整某个进程的资源使用优先级。

renice [选项] 优先级 PID

常见选项

  • -n:指定优先级数值。

  • -p:指定进程 ID。

将进程 1234 的优先级修改为 -5:
renice -n -5 -p 1234
将 bob 用户的所有进程的优先级修改为 10:
renice -n 10 -u bob

系统信息查看类命令

uname

显示系统的基本信息,如操作系统名称、内核版本等。

常见选项

  • -a:显示所有信息,包括内核名称、主机名、内核版本、机器硬件架构等。

  • -r:显示内核版本。

  • -s:显示操作系统名称。

  • -m:显示机器硬件架构。

uname -a
#示例结果:
Linux hostname 5.4.0-42-generic #46-Ubuntu SMP Tue Jun 23 18:39:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

hostname

显示或设置系统的主机名。

常见选项

  • -I:显示系统的 IP 地址。

  • -f:显示完整的主机名。

hostname -I

示例结果:
192.168.1.10

uptime

显示系统的运行时间、当前时间、系统负载等信息。

常见选项

  • -p:以简洁格式显示系统的运行时间。

uptime

示例结果:
11:23:45 up 2 days,  4:19,  3 users,  load average: 0.13, 0.20, 0.18

df

显示文件系统的磁盘空间使用情况。

常见选项

  • -h:以人类可读的格式(例如 MB、GB)显示磁盘空间。

  • -T:显示文件系统类型。

df -h

示例结果:
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   25G   23G  54% /
tmpfs            16G  1.2G   14G   8% /dev/shm

网络管理类命令

ifconfig

显示或配置网络接口信息。

常见选项

  • -a:显示所有接口的信息,包括已关闭的接口。

  • up:启用指定的网络接口。

  • down:禁用指定的网络接口。

  • eth0:指定一个特定的接口,例如 eth0,查看该接口的信息。

ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe7f:1c14  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3e:61:fc  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 12345678 (12.3 MB)
        TX packets 12345  bytes 12345678 (12.3 MB)

ping

测试与另一台计算机的网络连接情况。

常见选项

  • -c:指定发送的 ICMP 数据包数量。

  • -i:指定发送数据包的间隔时间(单位:秒)。

  • -t:指定 TTL(生存时间)。

ping -c 4 192.168.1.1


PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.050 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.046 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.047 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.044/0.047/0.050/0.003 ms

netstat

显示网络连接、路由表、接口统计等信息。

常见选项

  • -t:显示 TCP 连接。

  • -u:显示 UDP 连接。

  • -l:显示监听中的服务端口。

  • -a:显示所有的连接和监听端口。

  • -n:以数字形式显示地址和端口(不进行域名解析)。

netstat -tuln

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN

ss

查看 socket 统计信息,功能更强大且效率更高,相较于 netstat

常见选项

  • -t:显示 TCP 套接字。

  • -u:显示 UDP 套接字。

  • -l:显示监听中的套接字。

  • -a:显示所有套接字。

  • -n:显示数字格式的地址和端口(不进行解析)。

ss -tuln

State      Recv-Q     Send-Q         Local Address:Port         Peer Address:Port
LISTEN     0          128            0.0.0.0:22                0.0.0.0:*
LISTEN     0          128            [::]:80                   [::]:*

traceroute

显示数据包到达目标主机的路径,帮助排查网络延迟和路由问题。

常见选项

  • -n:以数字形式显示 IP 地址(不进行域名解析)。

  • -m:指定最大跳数。

  • -T:使用 TCP 协议进行追踪。

traceroute -n google.com

traceroute to google.com (216.58.192.174), 30 hops max, 60 byte packets
 1  192.168.1.1  0.588 ms  0.701 ms  0.797 ms
 2  10.10.10.1  3.059 ms  3.192 ms  3.336 ms
 3  172.217.0.14  5.466 ms  5.715 ms  6.016 ms

软件包管理类命令

apt

适用于 Debian/Ubuntu,用于管理 Debian 系系统的软件包(简化版 apt-get)。

常见选项

  • install <package>:安装指定软件包。

  • remove <package>:卸载指定软件包(保留配置文件)。

  • purge <package>:卸载并删除配置文件。

  • update:更新本地软件包索引。

  • upgrade:升级已安装的软件包。

sudo apt update
sudo apt install vim

Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
...
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  vim

dpkg

适用于 Debian/Ubuntu,低层级的软件包管理器,用于 .deb 包的安装、查询等。

常见选项

  • -i <package.deb>:安装 .deb 包。

  • -r <package>:卸载包。

  • -l:列出已安装包。

  • -s <package>:查看某个软件包的信息。

  • -L <package>:查看软件包安装的文件列表。

sudo dpkg -i example.deb

Selecting previously unselected package example.
(Reading database ... 158000 files and directories currently installed.)
Preparing to unpack example.deb ...
Unpacking example ...
Setting up example ...

yum

老版 RedHat/CentOS 的软件包管理器。

常见选项

  • install <package>:安装软件包。

  • remove <package>:删除软件包。

  • update:更新软件包到最新版本。

  • list installed:列出已安装的软件包。

  • search <name>:查找包含关键词的软件包。

sudo yum install wget

Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7 will be installed
...
Installed:
  wget.x86_64 0:1.14-18.el7

Complete!

dnf

yum 的替代品,提供更好的依赖解决方案和性能。

常见选项

  • install <package>:安装包。

  • remove <package>:卸载包。

  • update:升级包。

  • search <keyword>:搜索包。

  • info <package>:显示包信息。

sudo dnf install curl

Last metadata expiration check: 0:00:03 ago on Thu 01 May 2025 12:00:00 PM UTC.
Dependencies resolved.
================================================================================
 Package           Arch             Version                   Repository     Size
================================================================================
Installing:
 curl              x86_64           7.76.1-20.el8             baseos        270 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 270 k
Installed size: 545 k

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值