【Linux基础】Linux下常用的系统命令

文章目录

  • 一、前言
  • 二、系统监控和进程管理指令
    • [2.1 ps命令](#2.1 ps命令)
    • [2.2 top命令](#2.2 top命令)
    • [2.3 kill命令](#2.3 kill命令)
    • [2.4 shutdown命令](#2.4 shutdown命令)
  • 三、文件和目录管理指令
    • [3.1 cd命令](#3.1 cd命令)
    • [3.2 ls命令](#3.2 ls命令)
    • [3.3 mkdir命令](#3.3 mkdir命令)
    • [3.4 cat 命令](#3.4 cat 命令)
    • [3.5 cp命令](#3.5 cp命令)
    • [3.6 mv命令](#3.6 mv命令)
    • [3.7 rm命令](#3.7 rm命令)
    • [3.8 chmod命令](#3.8 chmod命令)
    • [3.9 ln命令](#3.9 ln命令)
    • [3.10 pwd命令](#3.10 pwd命令)
  • 四、文件查找和文本处理指令
    • [4.1 grep命令](#4.1 grep命令)
    • [4.2 find命令](#4.2 find命令)
    • [4.3 tar命令](#4.3 tar命令)
    • [4.4 head命令](#4.4 head命令)
    • [4.5 tail命令](#4.5 tail命令)
    • [4.6 wc命令](#4.6 wc命令)
    • [4.7 tee命令](#4.7 tee命令)
  • 五、网络相关命令
    • [5.1 ping命令](#5.1 ping命令)
    • [5.2 ifconfig命令](#5.2 ifconfig命令)
  • 六、程序和软件安装管理
    • [6.1 install命令](#6.1 install命令)
    • [6.2 which命令](#6.2 which命令)
  • 七、环境变量

一、前言

本文主要总结了工作中常用的linux指令,有遇到新的命令会不定期更新。

二、系统监控和进程管理指令

2.1 ps命令

作用:查看当前进程信息。

常用选项

  • -e: 显示所有进程,包括其他用户的进程。
  • -f: 显示更详细的进程信息,包括父进程 ID (PPID)、启动时间等。
  • -u: 显示进程的用户名和内存使用情况。
  • -aux: 组合选项,显示所有用户的详细进程信息。
  • --sort: 根据指定字段对进程进行排序,例如 --sort=-%mem 按内存使用率降序排列。

例子

c 复制代码
root@lubancat-vm:/home/lubancat# ps -aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.8  0.3 169040 12708 ?        Ss   12:51   0:03 /sbin/init splash
root           2  0.0  0.0      0     0 ?        S    12:51   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   12:51   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   12:51   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   12:51   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I<   12:51   0:00 [netns]
root           7  0.0  0.0      0     0 ?        I    12:51   0:00 [kworker/0:0-rcu_par_gp]
root           8  0.0  0.0      0     0 ?        I<   12:51   0:00 [kworker/0:0H-events_highpri]

名词解释

USER:进程的所有者(启动该进程的用户)。

PID:进程 ID(Process ID),是系统分配给每个进程的唯一标识符。

%CPU:进程占用 CPU 的百分比。表示该进程在最近一段时间内对 CPU 的使用率。

%MEM:进程占用内存的百分比。表示该进程使用的物理内存占总内存的比例。

VSZ:虚拟内存大小(Virtual Memory Size),单位是 KB。表示进程占用的虚拟内存总量,包括正在使用的内存、已分配但未使用的内存,以及交换到磁盘的内存。

RSS:常驻内存大小(Resident Set Size),单位是 KB。表示进程当前实际占用的物理内存(不包括交换到磁盘的部分)。

TTY:进程关联的终端(Terminal)。

  • ? 表示进程没有关联到任何终端(通常是后台进程或系统守护进程)。
  • pts/0 或 tty1 表示进程关联到具体的终端。

STAT:进程的状态(Process State)。

常见的状态包括:

  • R(Running):进程正在运行或可运行(在运行队列中)。
  • S(Sleeping):进程正在等待某个事件完成(通常是 I/O 操作)。
  • D(Uninterruptible Sleep):进程正在等待 I/O 操作,且不能被中断。
  • Z(Zombie):僵尸进程,表示进程已终止,但其父进程尚未回收它。
  • T(Stopped):进程被信号暂停(例如按 Ctrl+Z )。
  • <:高优先级进程。
  • N:低优先级进程。
  • +:前台进程组中的进程。
  • s:会话领导者(Session Leader)。
  • l:多线程进程。(小写的L)

START:进程启动的时间。格式通常是 HH:MM:SS(小时:分钟:秒)。

TIME:进程占用 CPU 的总时间。格式是 HH:MM:SS,表示进程从启动到现在累计使用的 CPU 时间。

COMMAND:启动进程的命令名称或命令行。如果是用 ps aux 命令,会显示完整的命令行;如果是 ps -ef,则可能只显示命令名称。

2.2 top命令

作用:常用的分析性能的工具。

例子

c 复制代码
  进程 USER      PR  NI    VIRT    RES    SHR CPU %MEM     TIME+ COMMAND                                 
  2257 wlc-work  20   0   46124   4192   3320 R   1.0  0.2   0:01.01 top                                    
     1 root      20   0  159832   8972   6556 S   0.0  0.4   0:04.40 systemd                                
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 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                             
     5 root      20   0       0      0      0 I   0.0  0.0   0:00.14 kworker/0:0-eve                        
     6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H-kb                        
     7 root      20   0       0      0      0 I   0.0  0.0   0:00.00 kworker/u256:0-                        
     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.09 ksoftirqd/0         

名词解释

PR: 进程的优先级。PR 是 "priority" 的缩写。进程的优先级决定了它在 CPU 调度中的优先顺序。数值越小,优先级越高。

NI: 进程的 "nice" 值。nice 值用于调整进程的优先级。数值范围是 -20 到 19,-20 表示最高优先级,19 表示最低优先级。nice 值越低,进程优先级越高。

VIRT: 进程使用的虚拟内存总量,单位通常为 KB 或 MB。它包括进程的代码、数据、共享库和文件映射等所占用的内存。

RES: 进程的常驻内存集(resident set size),即实际驻留在内存中的物理内存量。它不包括交换空间或虚拟内存。

SHR: 进程共享的内存大小,单位为 KB 或 MB。这个值表示该进程所使用的、可以被其他进程共享的内存区域(如共享库)。

CPU:当前进程占用的 CPU 百分比。这表示该进程使用的 CPU 时间的比率。比如,100% 表示进程正在占用一个完整的 CPU 核心。

%MEM:进程占用的物理内存的百分比,表示该进程使用的内存占系统总内存的比例。

TIME+:进程的总 CPU 时间,通常表示为分钟:秒的格式,显示进程自启动以来所消耗的 CPU 时间。

COMMAND:显示进程的命令名,即运行该进程的程序名称。通常是可执行文件的名称。

2.3 kill命令

作用:向指定的进程发送信号,常用于结束不再需要的进程或是停止占用过多资源的进程。尽管它叫做 "kill",但它不仅仅是杀死进程,还可以发送多种信号来控制进程的行为。

基本用法

shell 复制代码
kill <pid>

参数

pid:进程的进程号。

该命令默认会发送一个SIGTERM信号(编号15),它请求进程优雅的终止。进程可以选择响应该信号并清理资源后退出。

SIGKILL (9):强制杀死进程,不允许进程进行任何清理。此信号不能被捕获或忽略,是一个"硬杀"命令。

shell 复制代码
kill -9 <pid>

使用 kill -9 强制结束进程时,进程没有机会进行清理操作,可能会导致数据丢失或文件损坏。因此,在可能的情况下,建议先使用默认的 SIGTERM 信号(kill )。

其他的信号的作用可以自行去搜索。

shell 复制代码
killall 进程名

假如你要杀死进程名为firework的进程,可以使用:

shell 复制代码
killall firework

2.4 shutdown命令

作用:用于安全地关闭或重启计算机。

基本用法

shell 复制代码
shutdown [选项] [时间] [消息]

常用选项

  • -h 或 --halt :关闭系统。
  • -r 或 --reboot :重启系统。
  • -c 或 --cancel :取消已计划的关机或重启。
  • -P 或 --poweroff :关闭系统并断电(默认行为)。
  • -k :发送警告消息但不实际关机。
  • -t <秒> :指定延迟时间后执行操作。(中间有个空格)

时间参数

  • now :立即执行。
  • +<分钟> :指定分钟后执行,如 +5 表示5分钟后。
  • HH:MM :在指定时间执行,格式为24小时制。

消息参数:

  • 可选的广播消息,通知所有用户。

例子

shell 复制代码
#立刻关机
shutdown -h now

#五分钟之后关机
shutdown -h +5

#晚上22点关机
shutdown -h 22:00

#取消计划
shutdown -c

#五分钟之后发送警告
shutdown -k +5 "系统即将关闭"

三、文件和目录管理指令

3.1 cd命令

作用:改变当前工作目录。

基本用法

cd ...:切换到当前目录的上级目录。

cd ~:切换到用户的主目录。

cd ./:保持当前目录。

cd -:切换到上一个工作目录。

cd /:切换到根目录。

3.2 ls命令

作用:列出目录中的文件和子目录。

基本用法

c 复制代码
ls [选项] [目录或文件]
  • 若不指定目录或文件,默认列出当前目录的内容。
  • 若指定目录,则列出该目录的内容。
  • 若指定文件,则显示该文件的信息。

常用选项

  • -l :以长格式显示详细信息,包括文件类型、权限、链接数、所有者、组、大小、修改时间等。(小写的L)
  • -a :显示所有文件,包括隐藏文件(以 . 开头的文件)。
  • -h :与 -l 一起使用时,以易读的格式显示文件大小(如 KB、MB)。
  • -r :反向排序。
  • -t :按修改时间排序,最新文件在前。
  • -R :递归列出子目录内容。
  • -S :按文件大小排序,最大文件在前。
  • --color :彩色显示输出,通常不同类型文件会有不同颜色。

3.3 mkdir命令

作用:创建一个或多个空目录

基本用法

c 复制代码
mkdir [选项] 目录名
  • 目录名:要创建的目录名称,可以是相对路径或绝对路径。
  • 可以同时创建多个目录,用空格分隔。

常用选项

  • -p :递归创建目录。如果父目录不存在,会自动创建。
  • -m :设置目录的权限模式(如 mkdir -m 755 dirname )。
  • -v :显示创建目录的详细信息(verbose)。

例子

shell 复制代码
#创建一个空目录 
mkdir test

#在已有的new目录中创建一个新的test目录并给它777权限 
mkdir -m 777 /home/new/test

#递归创建目录,new可以不存在 
mkdir -p /home/new/test

#创建目录并给权限 
mkdir -p -m 777 路径

3.4 cat 命令

作用:查看、创建、合并和复制文件内容。cat命令适合查看小文件,大文件建议使用less或者more。主要是和重定向命令配合使用。

基本用法

shell 复制代码
cat [选项] [文件]
  • -n :显示行号。
  • -b :显示非空行的行号。
  • -s :压缩连续空行为一行。
  • -A :显示所有字符,包括特殊字符(如换行符、制表符等)。

例子

shell 复制代码
#查看文件内容
cat file.txt

#显示行号
cat -n file.txt
#或者
nl file.txt

#合并文件
cat file1.txt file2.txt > combined.txt

#创建文件
cat > newfile.txt

#复制文件
cat file.txt > copy.txt

#显示特殊字符
cat -A file.txt

3.5 cp命令

作用:复制文件或目录。

基本用法

shell 复制代码
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
  • 源文件:要复制的文件或目录。
  • 目标文件:复制后的文件或目录名称。
  • 目标目录:将源文件复制到指定目录中。

常用选项

  • -r 或 -R :递归复制目录及其内容(用于复制目录)。
  • -i :交互模式,覆盖前提示确认。
  • -f :强制复制,覆盖目标文件时不提示。
  • -v :显示复制过程的详细信息(verbose)。
  • -p :保留文件的属性(如权限、时间戳等)。
  • -a :归档模式,相当于 -dpR ,保留所有文件属性和递归复制目录。
  • -u:仅当源文件比目标文件新时才复制(更新模式)。

例子

shell 复制代码
#复制目录
cp -rf dir1 dir2

#交互模式 如果flie2已经存在则会提示你是否覆盖
cp -i file1 file2

#保留文件属性 复制文件并保留权限、时间戳等属性
cp -p file1 file2

3.6 mv命令

作用:移动或重命名文件和目录。

基本用法

shell 复制代码
mv [选项] 源文件或目录 目标文件或目录

常用选项

  • -i :交互式操作,覆盖前提示确认。
  • -f :强制操作,直接覆盖不提示。
  • -v :显示详细操作信息。
  • -n :不覆盖已存在文件。
  • -u :仅在源文件比目标文件新或目标文件不存在时移动。

注意事项

  • 如果目标路径是目录,文件或目录会被移动到该目录下。
  • 如果目标路径是文件名,文件或目录会被重命名或覆盖。
  • 使用 -i 选项可避免意外覆盖文件。

3.7 rm命令

作用:删除文件或目录。

基本用法

shell 复制代码
rm [选项] 文件或目录

常用选项

  • -f :强制删除,忽略不存在的文件,不提示确认。
  • -i :交互式删除,删除前提示确认。
  • -r 或 -R :递归删除目录及其内容。
  • -v :显示详细操作信息。
  • -d :删除空目录。

3.8 chmod命令

作用:用于更改文件或目录的权限。

基本用法

shell 复制代码
chmod [选项] 模式 文件或目录

权限表示

  • 符号模式:使用 u(用户)、g(组)、o(其他)、a(所有)与 +(添加)、-(移除)、-(设置)结合 -(读)、w(写)、x(执行)来设置权限。
  • 数字模式:使用三位或四位八进制数表示权限,每位分别代表用户、组、其他的权限。

常用选项

  • -R:递归更改目录及其内容的权限。
  • -v :显示详细操作信息。
  • -c :仅在更改时显示信息。
  • -f :忽略错误信息。

例子

1.符号模式

shell 复制代码
#添加执行权限
chmod u+x file.txt

#移除写权限
chmod g-w file.txt

#设置读写权限
chmod o=rw file.txt

2.数字模式

shell 复制代码
#设置权限为 rwxr-xr--   用户:rwx,组:r-x,其他:r--
chmod 754 file.txt

#递归更改权限
chmod -R 755 dir1

3.9 ln命令

作用 :创建文件或目录的链接,分为硬链接符号链接(软链接)

基本用法

shell 复制代码
ln [选项] 源文件或目录 目标文件或目录

常用选项

  • -s :创建符号链接(软链接)。如果不带改参数就默认硬链接
  • -f :强制创建链接,覆盖已存在的目标文件。
  • -v :显示详细操作信息。
  • -i :交互式操作,覆盖前提示确认。

软链接

符号链接,它包含了到原文件的路径信息。类似window的快捷方式。是一个独立的文件,存储源文件的路径。

特性:

(1)软链接有自己的文件属性及权限等;

(2)可对不存在的文件或目录创建软链接;

(3)软链接可交叉文件系统;

(4)软链接可对文件或目录创建;

(5)创建软链接时,链接计数 i_nlink 不会增加;

(6)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

创建软链接:

shell 复制代码
#创建file文件的软链接 并命名为link
ln -s file link

硬链接

硬链接是一种特殊的文件链接方式,其本质是为文件创建了一个额外的"入口"。

特性:

  1. 共享 inode 和数据块:硬链接与源文件共享相同的 inode 和数据块,这意味着它们指向的是同一个文件内容。
  2. 基于已存在文件创建:硬链接只能针对已存在的文件进行创建,无法对尚未创建的文件或目录进行硬链接操作。
  3. 文件系统限制:硬链接不能跨越不同的文件系统。如果源文件和目标链接位于不同的文件系统中,硬链接将无法创建。
  4. 仅适用于文件:硬链接只能对普通文件创建,不能对目录创建硬链接。这是因为目录的结构和文件不同,目录需要维护其自身的层级关系。
  5. 删除不影响其他链接:删除一个硬链接文件不会影响其他具有相同 inode 的文件。只要还有其他硬链接存在,文件内容仍然可以被访问。
  6. 修改同步性:修改其中一个硬链接文件的内容,其他所有硬链接文件的内容也会同步更新,因为它们共享同一个数据块。
  7. 文件大小一致:由于硬链接与源文件共享数据块,因此它们的文件大小始终保持一致。

创建硬链接:

shell 复制代码
#为file.txt 创建一个硬链接 file_hardlink.txt
ln file.txt file_hardlink.txt

3.10 pwd命令

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

基本用法

shell 复制代码
pwd [选项]

常用选项

  • -L, --logical:显示逻辑路径,即当前目录的符号链接路径(默认行为)。如果当前目录是通过符号链接访问的,pwd -L 会显示符号链接的路径。
  • -P, --physical:显示物理路径,即当前目录的实际路径,忽略任何符号链接。如果当前目录是通过符号链接访问的,pwd -P 会显示最终的目标路径。

四、文件查找和文本处理指令

4.1 grep命令

作用:在文件中搜索匹配特定模式的文本行,并将结果输出到标准输出(通常是终端)。

基本用法

shell 复制代码
grep [选项] 搜索模式 [文件名]

常用选项

  • -i:忽略大小写,进行不区分大小写的搜索。
  • -v:反向搜索,输出不匹配搜索模式的行。
  • -n:在输出中显示匹配行的行号。
  • -c:统计匹配行的数量,而不是输出匹配的行。
  • -l:只列出包含匹配行的文件名,而不是输出匹配的行。
  • -r** 或 ****-R**:递归搜索目录中的所有文件。
  • -w:仅匹配整词,避免部分匹配。
  • -e:指定多个搜索模式,可以多次使用 -e 来指定多个模式。
  • -o:仅输出匹配的部分,而不是整行。

例子:

shell 复制代码
#搜索目录example中文件包含 "error" 或 "warning" 的行
grep -e "error" -e "warning"  -r example/

#搜索error所在的文件
grep -lr "error" example

4.2 find命令

作用:在目录树中查找文件和目录。

基本用法

shell 复制代码
find [路径] [选项] [表达式]
  • 路径:指定查找的起始目录,默认为当前目录 (.)。
  • 选项:控制find的行为。
  • 表达式:定义查找条件。

常用选项

1.按名称查找

  • -name:按文件名查找(区分大小写)。
  • -iname:按文件名查找(不区分大小写)。
shell 复制代码
find /path/to/search -name "filename"

2.按类型查找

  • -type f:查找文件。
  • -type d:查找目录。
shell 复制代码
find /path/to/search -type f

3.按大小查找

  • -size +100M:查找大于 100MB 的文件。
  • -size -100M:查找小于 100MB 的文件。
shell 复制代码
find /path/to/search -size +100M

4.按时间查找

  • -mtime -7:查找过去 7 天内修改的文件。
  • -mtime +7:查找 7 天前修改的文件。
  • -atime:按访问时间查找。
  • -ctime:按状态变更时间查找。
shell 复制代码
find /path/to/search -mtime -7

5.执行操作

  • -exec:对查找到的文件执行命令,{}代表当前文件,;表示命令结束。
shell 复制代码
find /path/to/search -name "*.log" -exec rm {} \;

6.组合条件

  • -and:逻辑与(默认)。
  • -or:逻辑或。
  • -not:逻辑非。
shell 复制代码
find /path/to/search -name "*.txt" -and -size +1M

最常用的起始也就前面两种用法。

4.3 tar命令

作用:用于文件打包和压缩。

基本用法

shell 复制代码
tar [选项] [输出文件] [输入文件或目录]
  • 选项:控制tar的行为(如创建、提取、压缩等)。
  • 输出文件:生成的归档文件名(如.tar、.tar.gz等)。
  • 输入文件或目录:需要打包的文件或目录。

常用参数选项

  • -c --create:创建新的归档文件,即打包,打包的意思就是说把一堆文件打包成一个文件。
  • -x --extract:解压文件。
  • -v --verbose:可视化,显示详细的tar处理的文件信息的过程。
  • -f --file:要操作的文件名。
  • -z:通过gzip来进行压缩或解压缩(.tar.gz或.tgz)。
  • -j:通过bzip2来归档压缩文件(.tar.bz2)。
  • -J:使用xz压缩工具压缩成.xz文件(.tar.xz)。
  • -t --list:列出归档文件中的内容。
  • -r:向归档文件中追加文件。
  • -C --directory=DIR:解压文件至指定的目录,如果是解压到当前目录,可以不加-C。

例子

shell 复制代码
#解压到指定目录
tar -xzvf archive.tar.gz -C /path/to/directory

#查看文件中的内容
tar -tzvf archive.tar.gz

#追加文件
tar -rvf archive.tar newfile

#打包并压缩
tar -czvf archive.tar.gz file1 file2 dir1

#解压
tar -xzvf archive.tar.gz

常用压缩格式对比

格式 命令选项 压缩率 速度 文件扩展名
gzip -z 中等 较快 .tar.gz
bzip2 -j 较高 较慢 .tar.bz2
xz -J 最高 最慢 .tar.xz

4.4 head命令

作用:显示文件的开头部分(默认显示前 10 行)。它通常用于快速查看文件的内容,而不需要加载整个文件。

基本用法

shell 复制代码
head [选项] [文件]

常用选项

选项 说明
-n <行数> 显示文件的前 <行数>行(例如 -n 20)。
-c <字节数> 显示文件的前 <字节数>字节。
-q 不显示文件名(静默模式)。
-v 总是显示文件名(默认行为)。

例子

shell 复制代码
#显示前十行
head filename.txt

#显示前N行
head -n N filename.txt

#显示前N个字节
head -c N filename.txt

#显示多个文件的前N行,并在每个文件内容前显示文件名。
head -n N file1.txt file2.txt

#静默模式(不显示文件名)
head -q -n N file1.txt file2.txt

#从标准输入读取数据 通过管道将cat的输出传递给head,显示前10行。
cat filename.txt | head -n 10

4.5 tail命令

作用:用于显示文件的末尾部分(默认显示最后 10 行)。它通常用于查看日志文件或实时监控文件内容的变化。

基本用法

shell 复制代码
tail [选项] [文件]

常用选项

选项 说明
-n <行数> 显示文件的最后 <行数>行(例如 -n 20)。
-c <字节数> 显示文件的最后 <字节数>字节。
-f 实时跟踪文件内容的变化(常用于日志监控)。
-q 不显示文件名(静默模式)。
-v 总是显示文件名(默认行为)。

例子

shell 复制代码
#显示文件的最后十行
tail filename.txt

#实时显示文件内容的变化
tail -f /var/log/syslog

4.6 wc命令

作用:主要用于统计文件的行数、单词数和字节数等信息。默认会同时统计行数、单词数和字节数。

基本用法

shell 复制代码
wc [选项] 文件名

常用选项

  • -c:统计文件的字节数。
  • -l:统计文件的行数。
  • -w:统计文件的单词数。
  • -m:统计文件的字符数(包括换行符等)。
  • -L:统计文件中最长行的长度。

4.7 tee命令

作用:将标准输入(stdin)的内容同时输出到标准输出(stdout)和一个或多个文件中。它的名字来源于管道(pipeline)中的"T"型分叉,表示数据流的分流。

基本用法

shell 复制代码
command | tee [选项] 文件名

常用选项

  • -a:追加模式(append)。如果不使用-a选项,tee默认会覆盖文件内容。
  • -i:忽略中断信号(ignore interrupt signals)。即使接收到中断信号(如 Ctrl+C),tee也会继续运行。

例子

shell 复制代码
#一个命令 ls -l,我们希望将它的输出保存到文件 output.txt 中,同时在终端上显示
ls -l | tee output.txt

#如果希望将输出追加到文件中,而不是覆盖文件
ls -l | tee -a output.txt

五、网络相关命令

5.1 ping命令

作用:用于测试主机之间的网络连接是否正常。它通过发送 ICMP(Internet Control Message Protocol)回显请求消息来检查目标主机是否可达,并测量往返时间(Round-Trip Time, RTT)。

基本用法

shell 复制代码
ping [选项] 目标主机

常用选项

  • -c <次数>:指定发送 ICMP 回显请求的次数。默认情况下,ping会一直发送请求,直到用户手动终止(按 Ctrl+C)。
  • -i <间隔>:指定发送请求的时间间隔(秒)。默认间隔为 1 秒。
  • -I <网卡名>:指定发送ICMP请求的网络接口。
  • -t :设置数据包的生存时间(Time To Live,TTL)。默认值通常为 64 或 128,具体取决于操作系统。
  • -s <字节数>:指定发送的数据包大小(不包括 IP 和 ICMP 头)。默认大小为 56 字节。
  • -W <超时时间>:设置等待目标主机响应的超时时间(秒)。默认值为 1 秒。
  • -a:在发送回显请求时,同时发送警告音(仅限某些系统)。
  • -q:安静模式,只显示简要信息。

例子

shell 复制代码
#从 eth0 网络接口向目标 IP 地址 114.114.114.114 发送 5 次 ICMP 回显请求。每次请求之间的时间间隔为 5 秒。
ping -i 5 -c 5 -I eth0 114.114.114.114

5.2 ifconfig命令

作用:它是用于配置和显示网络接口的网络参数的工具。它允许用户查看网络接口的状态、配置 IP 地址、启用或禁用接口等。

基本用法

shell 复制代码
ifconfig [接口名称] [选项] [参数]

常用选项和参数

  • 无参数:显示所有网络接口的配置信息。
  • 接口名称:指定要操作的网络接口(如eth0、wlan0、lo等)。
  • up:启用指定的网络接口。
  • down:禁用指定的网络接口。
  • inet:配置接口的 IPv4 地址。
  • netmask:设置子网掩码。
  • broadcast:设置广播地址。
  • hw ether:设置硬件地址(MAC 地址)。
  • mtu:设置最大传输单元(MTU)。

例子

shell 复制代码
#查看特定网络接口的配置信息
ifconfig eth0

#启用/禁用网络接口
ifconfig eth0 up/down

#配置网络接口的 IP 地址
ifconfig eth0 192.168.1.101 netmask 255.255.255.0

#设置广播地址
ifconfig eth0 broadcast 192.168.1.255

#设置 MAC 地址
ifconfig eth0 hw ether 00:11:22:33:44:55

#设置 MTU
ifconfig eth0 mtu 1400

六、程序和软件安装管理

6.1 install命令

作用:它是用于安装或复制文件到指定位置,并且可以同时设置文件的权限、所有者和所属组等属性。它通常用于脚本中,用于自动化安装程序或配置文件的部署。

基本用法

shell 复制代码
install [选项] 源文件 目标文件
install [选项] 源文件... 目标目录

常用选项

  • -d或--directory:创建目录,而不是复制文件。如果目录已存在,不会报错。
  • -m或--mode=模式:设置文件的权限(如0755)。
  • -o或--owner=所有者:设置文件的所有者。
  • -g或--group=组:设置文件的所属组。
  • -t或--target-directory=目录:指定目标目录。
  • -b或--backup:如果目标文件已存在,创建备份文件(默认备份方式为简单备份)。
  • -S或--suffix=后缀:指定备份文件的后缀(与-b选项一起使用)。
  • -p或--preserve-timestamps:保留源文件的时间戳。
  • -C或--compare:在安装前比较源文件和目标文件,如果内容相同则不覆盖。
  • -v或--verbose:显示详细信息。

例子

下面是Makefile中比较常用的三种语句。

shell 复制代码
#将 sourcefile 复制到 /path/to/destination,并设置文件权限为 0755
install -m 0755 sourcefile /path/to/destination

#创建目录 /path/to/newdir,如果目录已存在,不会报错
install -d /path/to/newdir

#复制文件并保留时间戳
install -p sourcefile /path/to/destination

6.2 which命令

作用:用于查找并显示可执行文件(命令)的完整路径。

基本用法

shell 复制代码
which [选项] 命令名

常用选项

  • 无参数:直接查找并显示指定命令的路径。
  • -a:显示所有匹配的路径。默认情况下,which只显示第一个匹配的路径。
  • -s:静默模式,不输出任何内容,只返回状态码(成功返回 0,失败返回非 0)。
  • -q:安静模式,仅输出匹配的路径数量。
  • -u:显示别名或函数的定义(如果命令是别名或函数)。
  • -m:显示所有匹配的路径,包括别名和函数。
  • -p:显示路径,但不检查文件是否存在。
  • -i:忽略大小写。

注意事项

  1. 环境变量PATH
    • which命令依赖于环境变量PATH来查找命令。如果某个命令不在PATH中,which将无法找到它。
    • 可以通过echo $PATH查看当前的PATH环境变量。
  2. 别名和函数
    • 如果某个命令是别名或函数,which可以通过-u或-m选项显示其定义。

七、环境变量

常见环境变量:

环境变量 含义
HOME 系统跟目录
PATH 系统路径
HOSTNAME 主机名称
SHELL 当前使用的Shell

通过 echo 显示字符串(指定环境变量)。

通过 export 设置新的环境变量。

通过 env 显示所有环境变量。

通过 set 命令显示当前 Shell 会话中的所有本地变量(包括环境变量和本地 Shell 变量)。

相关推荐
Code Warrior25 分钟前
【Linux】Linux基础指令3
linux·服务器
南朝雨38 分钟前
linux下安装elasticsearch及ik分词器
linux·elasticsearch·全文检索
leblancAndSherry38 分钟前
Gitlab + Jenkins 实现 CICD
linux·运维·docker·kubernetes·gitlab·jenkins
光路科技1 小时前
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
服务器·网络·重构
半桔1 小时前
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
linux·运维·服务器·面试·centos
wanhengidc2 小时前
服务器中CC攻击的特点有哪些?
运维·服务器
小杜的生信筆記2 小时前
生信服务器 | 做生信为什么推荐使用Linux服务器?
linux·运维·服务器
luopeng2076634362 小时前
虚拟局域网中配置某台服务器作为网关的方案
运维·服务器·php
ARM2NCWU2 小时前
高密度ARM服务器的散热设计
运维·服务器
wanhengidc2 小时前
站群服务器的应用场景都有哪些?
运维·服务器