Linux命令大全

Linux命令大全_第1张图片
荒诞也好,愚笨也好,总会过去的

文章目录

  • 文件相关
  • 压缩相关
    • tar
    • zip
  • 进程相关
    • ps
    • kill
  • 网络相关
    • netstat
  • IPC相关
    • ipcs
    • ipcrm
  • 系统资源相关
    • top
    • free
    • fdisk
    • df
    • du
  • 权限相关
    • umask
    • chmod
    • chown
    • chgrp
  • 总结

文件相关

  • ls:列出当前目录中的文件和子目录。
ls

常用选项:

-l:以长格式显示文件和目录的详细信息,包括权限、所有者、大小和修改时间等。
-a:显示所有文件,包括以.开头的隐藏文件。
-h:以人类可读的格式显示文件大小,例如使用 KB、MB 或 GB。
-t:按修改时间排序,最新的文件先显示。
-r:以相反的顺序显示文件。

Linux命令大全_第2张图片


  • cd:改变当前工作目录。
cd <目录路径>

  • pwd:显示当前工作目录的路径。
pwd

  • mkdir:创建一个新的目录。
mkdir <目录名>

常用选项:

-p:递归创建目录,如果上级目录不存在则一并创建。

Linux命令大全_第3张图片


  • touch:创建一个新的空文件或更新已有文件的访问和修改时间。
touch <文件名>

  • cp:复制文件或目录。
cp <源文件路径> <目标文件路径>

常用选项:

-r:递归复制目录及其内容。
-i:在复制前进行交互式确认。
-u:仅复制源文件中比目标文件新或不存在的文件。


  • mv:移动文件或目录,也可以用于文件或目录的重命名。
mv <源文件路径> <目标文件路径>

  • rm:删除文件或目录。
rm <文件路径>

常用选项:

-r:递归删除目录及其内容。
-i:在删除前进行交互式确认。


  • cat:将文件的内容输出到标准输出(屏幕)。
cat <文件路径>

  • head 和 tail:分别用于显示文件的前几行和后几行。
head <文件路径>
tail <文件路径>

常用选项

-n <行数>:指定要显示的行数。
-f:持续显示文件的末尾内容,如日志文件。


  • wc::统计文件中字、词和行数。
wc [选项] 文件

常用选项:

-l:仅显示行数。
-w:仅显示词数。
-c:仅显示字符数。
-m:仅显示字符数,与 -c 类似。
-L:显示最长行的长度。

压缩相关

tar

tar(tape archive)命令是在Linux和Unix系统中用于创建、查看、提取和管理归档文件的常用命令。它通常用于将多个文件或目录组合成一个单一的归档文件,并且可以进行压缩。

tar [选项] 归档文件名.tar 文件或目录
  • 选项tar 命令支持多种选项,下面是一些常见的选项及其功能:

    • -c:创建新的归档文件。
    • -x:提取归档文件。
    • -t:列出归档文件中的内容。
    • -f:指定归档文件的名称。
    • -z:使用 gzip 压缩(通常与 -c 一起使用)。
    • -j:使用 bzip2 压缩(通常与 -c 一起使用)。
    • -r:向已存在的归档文件中追加文件。
    • -u:只提取比归档文件中的文件更新的文件。
    • -v:显示详细信息,通常用于显示操作的进展。

示例用法:

  1. 创建一个归档文件:

    tar -cvf archive.tar file1.txt file2.txt directory1/
    
  2. 创建并压缩一个归档文件使用 gzip:

    tar -czvf archive.tar.gz file1.txt file2.txt directory1/
    
  3. 创建并压缩一个归档文件使用 bzip2:

    tar -cjvf archive.tar.bz2 file1.txt file2.txt directory1/
    
  4. 提取归档文件的内容:

    tar -xvf archive.tar
    
  5. 列出归档文件的内容:

    tar -tvf archive.tar
    
  6. 向已存在的归档文件中追加文件:

    tar -rvf archive.tar newfile.txt
    
  7. 只提取比归档文件中的文件更新的文件:

    tar -uvf archive.tar file1.txt
    

zip

在Linux中,zip 命令用于创建和管理ZIP文件,ZIP是一种常见的压缩文件格式,它可以将多个文件和目录打包成一个ZIP文件,以便于传输、存储和共享。

zip [选项] 压缩文件名.zip 源文件或目录
  • 选项zip 命令支持多种选项,下面是一些常见的选项及其功能:

    • -r:递归地压缩目录及其子目录中的文件。
    • -q:静默模式,不显示任何输出信息。
    • -9:使用最高级别的压缩,以获得更好的压缩率,但可能会花费更多时间。
    • -u:只更新已经存在于压缩文件中的文件,而不创建新的压缩文件。
    • -j:不保留目录结构,将所有文件放在压缩文件的根目录中。
    • -T:测试压缩文件,检查其完整性。
    • -v:显示详细的压缩信息。

示例用法:

  1. 压缩单个文件:

    zip archive.zip file.txt
    
  2. 压缩多个文件或目录:

    zip archive.zip file1.txt file2.txt directory1/
    
  3. 递归压缩目录及其子目录中的所有文件:

    zip -r archive.zip directory1/
    
  4. 静默模式压缩:

    zip -q archive.zip file.txt
    
  5. 更新已存在的压缩文件:

    zip -u archive.zip newfile.txt
    
  6. 测试压缩文件的完整性:

    zip -T archive.zip
    

进程相关

ps

ps 是一个用于显示当前正在运行的进程信息的常用命令,通常在Linux和Unix系统中使用。它提供了许多选项,可以用于筛选和显示不同类型的进程信息。

ps [选项]
  • 选项ps 命令支持多种选项,下面是一些常见的选项及其功能:

    • -a:显示所有用户的进程,通常与 -x 一起使用。
    • -u:以用户为单位显示进程信息,包括用户名、PID、CPU占用等。
    • -x:显示无控制终端的进程,通常与 -a 一起使用。
    • -e:显示所有进程,包括守护进程。
    • -f:以完整格式显示进程信息,包括父进程ID(PPID)和其他详细信息。
    • -l:以长格式显示进程信息,包括更多的详细信息。
    • -p:仅显示指定PID的进程。
    • -t:显示与指定终端关联的进程。
    • --sort:根据指定的标志对进程列表进行排序,例如 --sort=-%cpu 可以按CPU占用率降序排序。

示例用法:

  1. 显示当前用户的所有进程:

    ps
    
  2. 显示所有用户的进程:

    ps -e
    
  3. 显示进程详细信息:

    ps -l
    
  4. 显示指定PID的进程:

    ps -p 12345
    
  5. 显示与指定终端相关的进程:

    ps -t tty1
    
  6. 以完整格式显示所有进程信息:

    ps -ef
    
  7. 显示所有进程并按CPU占用率降序排序:

    ps aux --sort=-%cpu
    

kill

kill 命令用于在Linux和Unix系统中终止或发送信号给进程。通常,它允许您向进程发送信号,以控制其行为或终止进程。

kill [选项] 进程ID
  • 选项kill 命令支持一些常见的选项,下面是其中一些:

    • -l:列出可用的信号列表。
      Linux命令大全_第4张图片

    • -s:指定要发送的信号。默认情况下,kill 发送 SIGTERM 信号,可以使用 -s 选项来指定其他信号。

    • -9:发送 SIGKILL 信号,这是一种无法被阻止的强制终止信号,通常用于终止顽固进程。

    • -SIGNAME:使用信号名称来指定要发送的信号,例如 -TERM-KILL

    • -<信号编号>:使用信号的数字编号来指定要发送的信号,例如 -15 表示 SIGTERM-9 表示 SIGKILL

示例用法:

  1. 终止一个进程:

    kill 进程ID
    

    例如,kill 12345 将终止PID为12345的进程。

  2. 使用不同的信号终止进程:

    kill -s 信号 进程ID
    

    例如,kill -s SIGTERM 12345 将发送 SIGTERM 信号给PID为12345的进程。

  3. 使用信号编号终止进程:

    kill -9 进程ID
    

    例如,kill -9 12345 将发送 SIGKILL 信号给PID为12345的进程,强制终止它。

网络相关

netstat

netstat 是一个用于查看网络相关信息的命令行工具,通常在Linux和Unix系统中使用。它提供了一种方式来显示网络连接、路由表、接口统计信息和其他网络相关的状态信息。

netstat [选项]
  • 选项netstat 命令支持多种选项,下面是一些常见的选项及其功能:

    • -t:显示TCP协议相关的连接。
    • -u:显示UDP协议相关的连接。
    • -l:仅显示正在监听的套接字。
    • -p:显示与每个连接关联的进程信息。
    • -n:以数字形式显示地址和端口号,而不进行反向DNS查找。
    • -r:显示路由表信息。
    • -i:显示网络接口的信息和统计数据。
    • -a:显示所有的连接,包括监听和非监听的。
    • -c:连续输出,实时刷新信息。
    • -s:显示各种网络统计信息,如IP、ICMP、TCP和UDP的统计数据。
    • -h:显示帮助信息,列出所有可用选项。

示例用法:

  1. 显示所有活动的网络连接:

    netstat -tuln
    

    这将显示所有TCP和UDP连接的详细信息,包括本地和远程地址以及端口号。
    Linux命令大全_第5张图片

  2. 显示监听的TCP连接:

    netstat -tln
    

    这将显示所有正在监听的TCP连接,通常用于查看哪些服务正在监听哪些端口。

  3. 显示路由表信息:

    netstat -rn
    

    这将显示系统的路由表,包括目标网络、网关、接口等信息。

  4. 显示网络接口信息和统计数据:

    netstat -i
    

    这将显示系统的网络接口信息,包括接口名称、数据包统计等。

  5. 显示各种网络统计信息:

    netstat -s
    

    这将显示各种网络协议(如IP、ICMP、TCP和UDP)的统计数据。

IPC相关

ipcs

ipcs 命令用于显示Linux和Unix系统中的系统V IPC(Inter-Process Communication,进程间通信)对象信息。IPC对象包括共享内存、消息队列和信号量,这些对象允许不同进程之间进行进程间通信。ipcs 命令用于列出当前系统中的IPC对象及其相关信息。

ipcs [选项]
  • 选项ipcs 命令支持多种选项,下面是一些常见的选项及其功能:

    • -m:显示共享内存信息。
    • -q:显示消息队列信息。
    • -s:显示信号量信息。
    • -a:显示所有IPC对象的信息。
    • -b:以字节为单位显示共享内存的大小(默认以页为单位)。
    • -c:显示创建IPC对象的进程的详细信息。
    • -t:以可读的时间格式显示时间戳。
    • -p:以权限标志的形式显示IPC对象的权限。
    • -h:显示帮助信息,列出所有可用选项。

下面是一些示例用法:

  1. 显示所有共享内存信息:

    ipcs -m
    
  2. 显示所有消息队列信息:

    ipcs -q
    
  3. 显示所有信号量信息:

    ipcs -s
    
  4. 显示所有IPC对象的信息:

    ipcs -a
    
  5. 以字节为单位显示共享内存的大小:

    ipcs -mb
    
  6. 显示创建IPC对象的进程的详细信息:

    ipcs -mc
    
  7. 以可读的时间格式显示时间戳:

    ipcs -mt
    
  8. 以权限标志的形式显示IPC对象的权限:

    ipcs -mp
    

ipcrm

ipcrm 命令用于在Linux和Unix系统中删除系统V IPC(Inter-Process Communication,进程间通信)对象,包括共享内存、消息队列和信号量。这个命令用于释放已经创建的IPC对象,通常在不再需要它们时使用。

ipcrm [选项] 标识符
  • 选项ipcrm 命令支持以下选项:

    • -M:删除共享内存。
    • -Q:删除消息队列。
    • -S:删除信号量。
    • -m:删除具有指定标识符的共享内存。
    • -q:删除具有指定标识符的消息队列。
    • -s:删除具有指定标识符的信号量。
    • -a:删除所有IPC对象(共享内存、消息队列和信号量)。
    • -h:显示帮助信息,列出所有可用选项。
  • 标识符:要删除的IPC对象的标识符。对于共享内存和消息队列,通常是IPC对象的ID号;对于信号量,通常是IPC对象的标识键(key)。

示例用法:

  1. 删除指定ID的共享内存:

    ipcrm -m 12345
    

    这将删除共享内存ID为12345的对象。

  2. 删除指定ID的消息队列:

    ipcrm -q 67890
    

    这将删除消息队列ID为67890的对象。

  3. 删除指定ID的信号量:

    ipcrm -s 54321
    

    这将删除信号量ID为54321的对象。

  4. 删除所有IPC对象:

    ipcrm -a
    

    这将删除系统中的所有共享内存、消息队列和信号量。

系统资源相关

top

top 是一个实时性能监视工具,通常在Linux和Unix系统中使用。它以交互方式显示系统上运行的进程的实时性能信息,包括CPU使用率、内存占用、进程列表以及其他系统资源的相关信息。

top

top 命令在终端中启动,然后以实时模式显示系统性能信息。默认情况下,它按照CPU使用率降序列出进程,以便您可以看到哪些进程正在占用系统资源。

以下是一些常用的交互命令,您可以在 top 命令的实时界面中使用:

  • q:退出 top 命令。

  • P:按照CPU使用率降序排序进程。

  • M:按照内存占用降序排序进程。

  • T:按照进程运行时间排序进程。

  • k:杀死选中的进程,需要输入进程的PID。

  • Space:手动刷新 top 的显示。

  • 1:切换到单核心视图,显示每个CPU核心的使用情况。

  • H:显示或隐藏线程(在多线程进程中)。

  • s:更改 top 的刷新间隔时间。

  • h:显示 top 的帮助屏幕,列出可用的交互命令。

free

free 命令用于在Linux和Unix系统中显示系统的内存使用情况。它显示系统中的物理内存和交换空间的总量、已使用量和剩余量。free 命令提供了一个快速的方式来查看系统内存的情况,有助于监视系统的内存资源使用情况。

free [选项]
  • 选项free 命令支持一些选项,下面是一些常见的选项及其功能:

    • -t:显示总内存使用情况,包括物理内存和交换空间的总和。
    • -b:以字节为单位显示内存使用情况。
    • -k:以千字节(KB)为单位显示内存使用情况。
    • -m:以兆字节(MB)为单位显示内存使用情况。
    • -g:以吉字节(GB)为单位显示内存使用情况。
    • -h:以易读的格式显示内存使用情况,以适应人类阅读。
    • -s:以指定的时间间隔(秒)循环显示内存使用情况。

示例用法:

  1. 显示内存使用情况(默认以KB为单位):

    free
    
  2. 以MB为单位显示内存使用情况:

    free -m
    
  3. 以GB为单位显示内存使用情况:

    free -g
    
  4. 以易读的格式显示内存使用情况:

    free -h
    
  5. 循环显示内存使用情况:

    free -s 5
    

    这将每5秒刷新一次内存使用情况。

fdisk

fdisk 是一个用于管理磁盘分区的命令行工具,通常在Linux系统中使用。它允许用户查看、创建、删除、修改和管理硬盘分区。fdisk 命令是一个强大的工具,但需要小心操作,因为它可以对硬盘进行更改,而且操作不当可能导致数据丢失。

fdisk [选项] 设备文件
  • 选项fdisk 命令支持多种选项,下面是一些常见的选项及其功能:

    • -l:列出设备文件的分区表信息,但不进行任何分区操作。
    • -n:创建一个新分区。
    • -d:删除一个分区。
    • -t:更改分区的类型(ID)。
    • -p:打印分区表,与 -l 类似。
    • -u:在某些情况下,以柱面为单位而不是扇区为单位来显示和操作分区。

示例用法:

  1. 列出设备文件的分区表信息:

    fdisk -l /dev/sda
    

    这将显示硬盘 /dev/sda 上的分区表信息。

  2. 创建一个新分区:

    fdisk /dev/sda
    

    然后按照提示选择 n 选项来创建一个新分区,依次指定分区号、起始扇区、结束扇区等信息。

  3. 删除一个分区:

    fdisk /dev/sda
    

    然后按照提示选择 d 选项来删除一个分区,然后输入要删除的分区号。

  4. 更改分区的类型(ID):

    fdisk /dev/sda
    

    然后按照提示选择 t 选项来更改分区的类型,然后输入分区号和新的分区类型码。

df

df 命令用于显示磁盘使用情况,包括文件系统的容量、已用空间、可用空间以及挂载点等信息。在Linux和Unix系统中,df 命令是用于监视文件系统空间的常见工具。

df [选项] [文件系统]
  • 选项df 命令支持一些选项,下面是一些常见的选项及其功能:

    • -h:以人类可读的格式显示磁盘使用情况,以便更容易理解容量大小(使用GB、MB等)。
    • -T:显示文件系统类型。
    • -i:显示inode使用情况。
    • -t:仅显示特定类型的文件系统。
    • -x:排除特定类型的文件系统。
    • -P:以POSIX标准的输出格式显示,而不使用默认的格式。
    • --total:显示总计行,总计磁盘空间的使用情况。

示例用法:

  1. 显示所有挂载点的磁盘使用情况:

    df
    
  2. 以人类可读的格式显示磁盘使用情况:

    df -h
    
  3. 显示指定文件系统的磁盘使用情况:

    df /dev/sda1
    
  4. 显示总计磁盘空间使用情况:

    df --total
    
  5. 仅显示特定类型的文件系统,例如ext4:

    df -t ext4
    

du

du 命令(磁盘使用)用于查看指定目录或文件的磁盘使用情况,包括目录中的文件和子目录的大小。如果不指定目录或文件,du 默认查看当前目录。

du [选项] [目录或文件]
  • 选项du 命令支持一些选项,下面是一些常见的选项及其功能:

    • -h:以人类可读的格式显示文件和目录大小,以便更容易理解容量大小(使用GB、MB等)。
    • -s:仅显示指定目录或文件的总大小,而不显示子目录和文件的详细信息。
    • -c:同时显示每个子目录的大小和总大小。
    • -max-depth=N:限制深度,仅显示到指定深度的目录大小。
    • --exclude=PATTERN:排除匹配指定模式的文件或目录。
    • --time:同时显示上次访问文件的时间。

示例用法:

  1. 查看当前目录的磁盘使用情况:

    du
    
  2. 以人类可读的格式查看指定目录的磁盘使用情况:

    du -h /path/to/directory
    
  3. 查看指定目录的总大小(不包括子目录的详细信息):

    du -s /path/to/directory
    
  4. 查看指定目录的总大小和子目录的大小:

    du -c /path/to/directory
    
  5. 限制深度并显示指定目录的磁盘使用情况:

    du --max-depth=2 /path/to/directory
    
  6. 排除特定文件或目录的大小:

    du --exclude="*.log" /path/to/directory
    

权限相关

umask

umask 是一个在Unix和Linux系统中设置文件和目录默认权限的命令。umask 的主要功能是确定新创建文件和目录的权限掩码,以阻止或限制其他用户对这些文件和目录的访问。它用于设置掩码,该掩码会从最大权限(通常是 777666)中减去,以确定新文件和目录的实际权限。

umask [选项]
  • 选项umask 命令通常不需要选项,但可以使用以下选项:

    • -S:以符号形式显示umask值。这将显示类似于 -rw-rw-rw- 的形式,以表示掩码的效果。

umask 命令通常不是通过交互式方式执行的,而是在用户的shell配置文件(如.bashrc.bash_profile)或系统的shell启动脚本中设置。通过在这些配置文件中设置 umask 值,可以确保新创建的文件和目录遵循特定的权限规则。

umask 值是一个三位八进制数字,通常以 0 开头,例如 022002. 每个数字表示一组权限(用户、组、其他),其中每个位上的数字表示将要被屏蔽的权限。因此,022 表示将屏蔽组和其他用户的写权限,保留读和执行权限。

一些常见的 umask 值包括:

  • 022:默认值,通常用于普通用户。允许用户读和执行文件,但不允许写入。

  • 002:通常用于共享目录。允许组成员写入文件和目录,但其他用户只有读和执行权限。

  • 077:通常用于私有目录,禁止其他用户对文件和目录的任何访问。

  • 027:允许用户写文件,但不允许组成员写入文件和其他用户访问文件。

要设置 umask 值,可以在shell会话中使用 umask 命令,如:

umask 022

这将将umask值设置为 022,以确保新创建的文件和目录符合默认权限规则。

chmod

chmod 是一个用于更改文件或目录权限的命令,通常在Unix、Linux和类Unix系统中使用。它允许用户修改文件或目录的读、写和执行权限,以及文件所有者、所属用户组和其他用户的权限。

chmod [选项] 权限模式 文件或目录
  • 选项
    • -c:仅在发生更改时显示结果。
    • -v:显示详细的操作信息,包括已经更改的权限。
    • -R:递归地更改目录及其内容的权限。
    • --reference=参考文件:根据参考文件的权限设置目标文件的权限。

示例用法:

  1. 使用数字形式设置文件权限:

    chmod 644 file.txt
    

    这将设置文件 file.txt 的权限为 rw-r--r--

  2. 使用符号形式为文件添加写权限:

    chmod +w file.txt
    

    这将为文件 file.txt 添加写权限。

  3. 使用符号形式为目录及其内容递归设置权限:

    chmod -R 755 directory
    

    这将递归地将目录 directory 及其内容的权限设置为 rwxr-xr-x

  4. 使用参考文件的权限设置目标文件的权限:

    chmod --reference=reference_file target_file
    

    这将根据 reference_file 的权限设置 target_file 的权限。

chown

chown 是一个用于更改文件或目录的所有者(用户)和所属用户组的命令,chown 命令允许管理员或文件的所有者更改文件或目录的所有者,从而决定谁对文件或目录拥有控制权。

chown [选项] 新所有者:新组 文件或目录
  • 选项

    • -c:仅在发生更改时显示结果。
    • -v:显示详细的操作信息,包括已经更改的所有者和所属用户组。
    • -R:递归地更改目录及其内容的所有者和所属用户组。

示例用法:

  1. 更改文件的所有者和所属用户组:

    chown newuser:newgroup file.txt
    

    这将将文件 file.txt 的所有者更改为 newuser,所属用户组更改为 newgroup

  2. 更改目录及其内容的所有者和所属用户组(递归):

    chown -R newuser:newgroup directory
    

    这将递归地将目录 directory 及其内容的所有者更改为 newuser,所属用户组更改为 newgroup

  3. 仅更改文件的所有者:

    chown newuser file.txt
    

    这将将文件 file.txt 的所有者更改为 newuser,但保持原来的所属用户组不变。

chgrp

chgrp 命令用于更改文件或目录的所属用户组,与 chown 命令不同,chgrp 仅允许更改文件或目录的所属用户组,而不涉及更改文件的所有者。

chgrp [选项] 新组 文件或目录
  • 选项

    • -c:仅在发生更改时显示结果。
    • -v:显示详细的操作信息,包括已经更改的所属用户组。
    • -R:递归地更改目录及其内容的所属用户组。

下面是一些示例用法:

  1. 更改文件的所属用户组:

    chgrp newgroup file.txt
    

    这将将文件 file.txt 的所属用户组更改为 newgroup,但不更改文件的所有者。

  2. 更改目录及其内容的所属用户组(递归):

    chgrp -R newgroup directory
    

    这将递归地将目录 directory 及其内容的所属用户组更改为 newgroup,但不更改文件的所有者。

总结

统计一些常用的命令,欢迎在评论区补充!!

Linux命令大全_第6张图片

你可能感兴趣的:(重生之我要学Linux,linux,服务器,开发语言)