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

server/2025/2/9 11:54:01/

一、前言

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

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

2.1 ps命令

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

常用选项

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

例子

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命令

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

例子

  进程 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”,但它不仅仅是杀死进程,还可以发送多种信号来控制进程的行为。

基本用法

kill <pid>

参数

pid:进程的进程号。

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

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

kill -9 <pid>

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

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

killall 进程名

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

killall firework

2.4 shutdown命令

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

基本用法

shutdown [选项] [时间] [消息]

常用选项

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

时间参数

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

消息参数:

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

例子

#立刻关机
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命令

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

基本用法

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

常用选项

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

3.3 mkdir命令

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

基本用法

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

常用选项

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

例子

#创建一个空目录 
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。主要是和重定向命令配合使用。

基本用法

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

例子

#查看文件内容
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命令

作用:复制文件或目录。

基本用法

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

常用选项

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

例子

#复制目录
cp -rf dir1 dir2#交互模式 如果flie2已经存在则会提示你是否覆盖
cp -i file1 file2#保留文件属性 复制文件并保留权限、时间戳等属性
cp -p file1 file2

3.6 mv命令

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

基本用法

mv [选项] 源文件或目录 目标文件或目录

常用选项

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

注意事项

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

3.7 rm命令

作用:删除文件或目录。

基本用法

rm [选项] 文件或目录

常用选项

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

3.8 chmod命令

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

基本用法

chmod [选项] 模式 文件或目录

权限表示

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

常用选项

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

例子

1.符号模式

#添加执行权限
chmod u+x file.txt#移除写权限
chmod g-w file.txt#设置读写权限
chmod o=rw file.txt

2.数字模式

#设置权限为 rwxr-xr--   用户:rwx,组:r-x,其他:r--
chmod 754 file.txt#递归更改权限
chmod -R 755 dir1

3.9 ln命令

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

基本用法

ln [选项] 源文件或目录 目标文件或目录

常用选项

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

软链接

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

特性:

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

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

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

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

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

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

创建软链接:

#创建file文件的软链接 并命名为link
ln -s file link

硬链接

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

特性:

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

创建硬链接:

#为file.txt 创建一个硬链接 file_hardlink.txt
ln file.txt file_hardlink.txt

3.10 pwd命令

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

基本用法

pwd [选项]

常用选项

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

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

4.1 grep命令

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

基本用法

grep [选项] 搜索模式 [文件名]

常用选项

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

例子:

#搜索目录example中文件包含 "error" 或 "warning" 的行
grep -e "error" -e "warning"  -r example/#搜索error所在的文件
grep -lr "error" example

4.2 find命令

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

基本用法

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

常用选项

1.按名称查找

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

2.按类型查找

  • -type f:查找文件。
  • -type d:查找目录。
find /path/to/search -type f

3.按大小查找

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

4.按时间查找

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

5.执行操作

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

6.组合条件

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

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

4.3 tar命令

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

基本用法

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。

例子

#解压到指定目录
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 行)。它通常用于快速查看文件的内容,而不需要加载整个文件。

基本用法

head [选项] [文件]

常用选项

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

例子

#显示前十行
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 行)。它通常用于查看日志文件或实时监控文件内容的变化。

基本用法

tail [选项] [文件]

常用选项

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

例子

#显示文件的最后十行
tail filename.txt#实时显示文件内容的变化
tail -f /var/log/syslog

4.6 wc命令

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

基本用法

wc [选项] 文件名

常用选项

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

4.7 tee命令

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

基本用法

command | tee [选项] 文件名

常用选项

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

例子

#一个命令 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)。

基本用法

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:安静模式,只显示简要信息。

例子

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

5.2 ifconfig命令

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

基本用法

ifconfig [接口名称] [选项] [参数]

常用选项和参数

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

例子

#查看特定网络接口的配置信息
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命令

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

基本用法

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中比较常用的三种语句。

#将 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命令

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

基本用法

which [选项] 命令名

常用选项

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

注意事项

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

http://www.ppmy.cn/server/166212.html

相关文章

模型 冗余系统(系统科学)

系列文章分享模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。为防故障、保运行的备份机制。 1 冗余系统的应用 1.1 冗余系统在企业管理中的应用-金融行业信息安全的二倍冗余技术 在金融行业&#xff0c;信息安全是保障业务连续性和客户资产安全的关键。随着数字化…

新注册的域名无法访问,是怎么回事?

域名是企业和个人线上身份的标识&#xff0c;是对外展示信息提供服务的窗口&#xff0c;其重要性不言而喻。然而&#xff0c;不少朋友在新注册域名后&#xff0c;却遭遇了无法访问的尴尬情况&#xff0c;这到底是怎么回事呢&#xff1f; 域名解析尚未生效 域名注册完成后&…

React 生命周期函数详解

React 组件在其生命周期中有多个阶段&#xff0c;每个阶段都有特定的生命周期函数&#xff08;Lifecycle Methods&#xff09;。这些函数允许你在组件的不同阶段执行特定的操作。以下是 React 组件生命周期的主要阶段及其对应的生命周期函数&#xff0c;并结合了 React 16.3 的…

探秘数据结构之单链表:从原理到实战的深度解析

目录 一、链表的概念及结构 1.1 链表的独特定义 1.2 火车车厢式的形象类比 1.3 节点的结构体定义剖析 1.4 链表物理与逻辑结构的特性差异 二、单链表的实现 2.1 类型定义的优化策略 2.2 链表操作函数的声明框架 2.3 链表操作函数的实现细节 三、链表的分类 前言 …

ES6-代码编程风格(数组、函数)

1 数组 使用扩展运算符&#xff08;...&#xff09;复制数组。 const itemsCopy [...items]; 使用Array.from 方法将类似数组的对象转为数组。 const foo document.querySelectorAll(.foo); const nodes Array.from(foo); 2 函数 立即执行函数可以写成箭头函数的形式…

Maven的三种项目打包方式——pom,jar,war的区别

Maven 是一个强大的项目管理和构建工具&#xff0c;广泛应用于Java项目的构建和管理。Maven 支持多种打包方式&#xff0c;其中最常用的三种是 pom、jar 和 war。理解这三种打包方式的区别&#xff0c;对于正确配置和管理项目至关重要。本文将详细解释这三种打包方式的用途、特…

MR30分布式IO模块:驱动智能制造工厂的工业互联与高效控制新范式

在工业4.0与智能制造浪潮的推动下&#xff0c;传统制造业正经历着从“机械驱动”向“数据驱动”的深刻转型。作为工业数据连接领域的领军者&#xff0c;明达技术凭借其自主研发的MR30分布式IO模块&#xff0c;以创新的技术架构与卓越的性能表现&#xff0c;为全球制造企业构建了…

IDEA远程调试weblogic(docker部署)

1、 进入 /weblogic/CVE-2017-10271 文件夹&#xff0c;修改其中的 docker-compose.yml 文件&#xff0c; 将 8453 端口打开 2、 docker-compose up -d 编译镜像并启动容器 docker exec -it 3d /bin/bash 命令进入容器&#xff0c;使用 vi 修改文件 /root/Oracle/Middl…