指令的组成
Linux指令:命令名称、选项和参数
-
命令名称:是指执行特定功能的命令的名称。例如,ls命令用于列出当前目录的内容,cd命令用于切换当前工作目录。
-
选项(Options):选项是用于修改命令行为或提供额外功能的标志。选项通常由一个短横线(-)或两个短横线(- -)引导,并跟随一个字母或单词。例如,ls命令的-l选项用于以长格式输出文件信息。
-
参数(Arguments):参数是指向命令传递数据或指定操作对象的值。参数通常跟在命令和选项之后。例如,在cp命令中,第一个参数通常是要复制的源文件,第二个参数是目标文件或目录。
例如,ls -l /home/user是一个典型的Linux指令,ls是命令名称,-l是选项,/home/user是参数。
参数
-
输出格式选项:
-
-l:以长格式输出文件信息,包括文件权限、所有者、大小、创建时间等。
-
-s:以简单格式输出文件大小。
-
-h:以人类可读的方式显示文件大小。
-
文件操作选项:
-
-r:递归操作目录下的所有文件和子目录。
-
-i:删除文件前逐一确认
-
-R:递归操作包括子目录在内的所有文件。
-
-f:强制执行删除操作,即使文件正在使用中或者只读(写保护)。
-
-n:不创建文件或目录。
-
进程控制选项:
-
-u user:以指定用户身份启动新进程。
-
-c:仅启动新的进程,不等待其结束。
-
-p:显示进程信息但不杀死进程。
-
用户和组选项:
-
-u user:以指定用户身份执行指令。
-
-g group:以指定用户所属的组身份执行指令。
-
-G group1,group2,...:以指定用户所属的组身份执行指令,并显示所有属于这些组的文件。
-
其他选项:
-
-v:显示指令执行的详细信息。
-
-x:在执行指令之前先执行其他指令,并显示它们的输出结果。
-
--no-xxx:禁用指令中的某些选项或功能。
-
--xxx=value:设置指令中的选项值为特定值。
常见的指令
man 帮助手册
在 Linux 中,man
是一个非常有用的命令,它用于查阅手册页(manpage),以获取有关特定命令、函数、库、选项或其他系统工具的详细信息。man
命令的语法如下:
man [选项] 命令名
man
命令提供了以下常用的参数和选项:
-
-k
:使用关键字查找匹配的命令或功能。 -
-m
:显示手册页的列表,而不是单个页面。 -
-f
:显示所有可用的命令和它们的帮助页面。 -
-a
:将输出翻译为多种语言。 -
-h
:显示帮助信息,说明如何使用man
命令。 -
-l
:显示当前目录下的所有手册页的列表。 -
-p
:仅显示命令名和参数列表,而不显示详细信息。 -
-r
:递归地查找子目录中的手册页。
man ls
clear 清理屏幕
clear
命令用于清除终端屏幕上的所有内容,以便用户可以重新开始输入和查看内容。
tree 显示文件结构
tree
命令用于以树状结构展示文件和目录的层次关系,便于管理和浏览文件系统。
参数:
-
-a
:显示所有文件和目录,包括隐藏文件和目录。 -
-f
:仅显示文件名,不显示目录和隐藏文件。 -
-h
:以人类可读的格式显示文件大小,使用易懂的单位(如KB、MB、GB等)。 -
-l <n>
:以最少的输出显示文件系统结构,只显示前n个层次的文件和目录。 -
-f
和-h
通常与-l
参数一起使用,以限制输出文件系统的深度和大小。 -
-u
:以用户名和权限的形式显示文件和目录的详细信息。 -
-R
:递归地显示子目录中的文件和目录。 -
<path>
:指定要查看的文件或目录的路径。
shutdown 关机 reboot 重启
shudown
shutdown
命令用于关闭Linux系统,它提供了一种安全的方式来保存和关闭系统。
参数:
-
-h
:立即关闭系统。 -
-h now
:立即强制关闭系统。 -
-r
:重新启动系统。 -
-r now
:立即强制重新启动系统。 -
-k
:只发送关闭警告,不实际关闭系统。 -
-c
:取消shutdown命令。 -
-t
:指定等待的时间(秒)来显示倒计时信息。 -
-f
:强制关闭系统,忽略其他正在运行的进程。 -
-p
:使用系统关机密码来锁定系统,并关闭所有打开的设备。
示例:
-
立即关闭系统,并等待5秒显示警告信息:
shutdown -h +5
-
立即强制关闭系统,并锁定所有打开的设备:
shutdown -p now
reboot
reboot
命令用于重新启动系统。它通常用于系统出现问题时,希望重新启动系统并解决这些问题。
基本语法如下:
reboot [选项]
一些常见选项和参数:
-
-a
:自动登录并启动系统服务。 -
-f
:强制重新启动系统,不等待系统服务完成。 -
-i
:在重新启动系统之前,关闭所有网络接口。 -
-n
:在重新启动之前,不要检查是否有未完成的进程。 -
-r
:在重新启动之前,等待系统服务完成。 -
-s
:在重新启动之前,运行系统服务。 -
-w
:仅模拟重启,不实际重启系统。
除了这些选项,reboot
命令还接受一些其他参数,用于指定要执行的操作。这些参数可以是以下之一:
-
+
:添加指定操作到要执行的操作列表中。 -
-
:从要执行的操作列表中删除指定操作。
例如,要重新启动系统并等待系统服务完成,可以运行以下命令:
reboot -r
要重新启动系统并关闭所有网络接口,可以运行以下命令:
reboot -f -i
data cal 时间操作 stat查看文件时间
data
介绍
用于显示或设置系统日期和时间
date [选项] [时间格式]
date`命令的主要参数包括:
-
-d
:用于指定一个日期时间字符串,并显示或设置系统时间。 -
-s
:用于设置系统时间,使用指定的日期时间字符串。 -
+%F
:显示或设置系统日期和时间,格式为YYYY-MM-DD。 -
+%x
:显示或设置系统日期,格式为MM/DD/YYYY。 -
+%T
:显示或设置系统时间,格式为HH:MM:SS。 -
+%Z
:显示时区信息。 -
+: 类似选项 以+后的形式输出
-
%Y-%m.%d+%H:%M:%S 以 年-月.日+时:分:秒 输出时间
时间戳
时间戳是指从某个特定的时间点(称为“epoch”)开始到当前时间所经过的秒数。时间戳通常用于记录文件或数据的创建时间、修改时间等,也可以用于计算两个时间点之间的时间间隔.
用法
1.输出时间
date +%Y-%m.%d+%H:%M:%S
2.查看时间戳
date +%s
3.查看指定时间的时间戳
date +%s -d "2023-07-20 10:30:00" date -d "2023-07-20 10:30:00" +%s
4.查看指定时间戳的时间
date +%Y-%m.%d+%H:%M:%S -d @123456 date -d @123456 +%Y-%m.%d+%H:%M:%S
5.设置系统时间为指定日期和时间:
date -s "2023-07-20 10:30:00"
这将设置系统时间为2023年7月20日10:30:00。
cal
日历操作 cal[参数] [月] [年]
-
-a
:显示所有天,包括非工作日。 -
-f
:仅显示月份的日期,不显示星期几。 -
-F
:强制指定月份的某一天(即使它是周末)。 -
-m
:只显示一个月份。 -
-u
:显示星期几的完整名称,而不是缩写。 -
-j
:将日期转换为数字形式(即,1表示第一天,2表示第二天等)。
查看当前年份的日历,可以使用以下命令:
cal
查看特定月份的日历,可以提供月份作为参数,例如:
cal 7 # 显示7月份的日历
查看特定年份的特定月份的日历,可以使用以下命令:
cal 7 2023 # 显示2023年7月份的日历
stat
stat命令是一个常用的系统工具,用于查看文件和文件系统的状态信息。它可以显示文件和目录的详细信息,包括文件权限、所有者、大小、创建日期、访问次数、磁盘使用情况等。
参数和选项:
-
-c <format>
:使用指定的格式来显示输出。例如,-c %Y
将显示文件创建日期,-c %U
将显示文件所有者的用户名等。 -
-f
:显示文件系统信息,例如磁盘使用情况、挂载点等。 -
-k
:显示磁盘使用情况,例如已使用空间、剩余空间、已分配空间等。 -
-l
:使用长格式显示文件和目录信息,包括所有详细信息。 -
-n
:使用长格式显示文件和目录信息,但不显示所有详细信息。 -
-r
:递归显示目录及其子目录中的文件和目录信息。
使用例子:
-
查看文件状态:
stat myfile
这将会显示myfile文件的详细信息,包括文件权限、所有者、大小、创建日期、访问次数等。
-
查看文件系统信息:
stat -f /
这将会显示根文件系统的磁盘使用情况、已使用空间、剩余空间、已分配空间等信息。
-
查看目录状态:
stat -l /
这将会递归显示根目录及其子目录中的文件和目录信息,包括文件权限、所有者、大小、创建日期、访问次数等。
-
查看磁盘使用情况:
stat -k /
这将会显示根文件系统的磁盘使用情况,包括已使用空间、剩余空间、已分配空间等信息。
输出指令
ls ll
ls选项
ll:通常是"ls -l"命令的别名。 可以通过在用户的shell配置文件(如.bashrc或.bash_profile)中添加别名来创建"ll"
"ls" 用于列出目录中的文件和子目录。它通常用于查看当前目录的内容,但也可以用于列出其他目录的内容。
-
"-l":以长格式显示文件和目录的详细信息。
-
"-a":显示所有文件和目录,包括以点号 ("." 或 "..") 开头的隐藏文件和目录。
-
"-f":以文本格式显示文件名,而不是图标格式。
-
"-r" 或 "-R":递归地列出子目录中的文件和目录。
-
"-h":以人类可读的方式显示文件大小。
-
"-F": 在文件名后面显示文件类型的特殊字符。这些特殊字符包括:
-
“/”:表示目录
-
“*”:表示可执行文件
-
“@”:表示符号链接
-
“|”:表示管道文件
-
"=":表示套接字文件。例如,"mysocket="表示是一个套接字文件
-
">":表示命名管道文件(FIFO)。例如,"myfifo>"表示是一个命名管道文件。
-
-
“-d”:用于显示目录本身的详细信息,而不是目录中的文件和子目录。
例如:ls -l -d /etc/
cd
"cd" 是在命令行中使用的常见命令,用于更改当前工作目录。它用于导航到不同的目录以访问文件和子目录。
-
"cd 目录路径":切换到指定的目录路径。 例如:cd /home/user,将当前目录切换到 "/home/user" 目录。
-
"cd ..":切换到上一级目录。 例如:如果当前在 "/home/user" 目录中,则 "cd .." 将切换到 "/home" 目录。
-
"cd":切换到当前用户的主目录,通常是 "/home/用户名"。 例如:如果当前用户是 "user",那么 "cd" 命令将切换到 "/home/user" 目录。
-
"cd ~":切换到当前用户的主目录,与上面的 "cd" 命令相同。
-
"cd -":切换到之前所在的目录。 例如:如果之前所在目录是 "/home/user",用 "cd -" 切换后将回到该目录。
pwd
打印当前工作目录的路径
cat
Cat命令用于将文件的内容输出到标准输出设备(通常是屏幕)。它可以将多个文件合并成一个文件,也可以将单个文件的内容逐行输出。Cat命令的语法如下:
cat [选项] 文件名
-
-n
:显示行号。 -
-b
:在行号前面添加空格。 -
-s
:在遇到空白行或空文件时,将相邻的空行合并为一行。 -
-e
:在空白行的末尾添加表示空行的字符(通常是制表符)。 -
-p
:除了行号,还会输出被截断的行(通常是在管道中使用的选项)。 -
-t
:仅显示文件开头几行的时间戳(时间格式为 YYYY/MM/DD HH:MM:SS)。 -
-v
:显示无法打开的文件的列表,并列出每个文件的模式和状态。 -
-F
:按字段输出文本文件,用制表符(\t
)分隔。 -
-b numfile [filename ...]
:对给定文件进行适当的分隔并在输出的开始添加标题,而非对所有输入的文件的末尾进行添加标题。numfile为字段的分隔字符(例如^I
)。
除了这些选项和参数,Cat命令还可以与其他命令结合使用,例如管道(|
)和重定向符号(>
和 <
)。
echo
echo [选项] [参数]
-
-n
:在输出后不换行。 -
-e
:启用转义字符的支持。 -
-n -e
:同时禁用换行符和转义字符。 -
-e variable
:将变量值输出为文本。
除了这些选项和参数,echo
命令还可以接受各种文本或变量作为参数,并在终端上输出它们。
以下是一些使用echo
命令的示例:
-
输出文本:
echo "Hello, World!"
-
输出变量值:
my_var="Hello, World!" echo $my_var
-
输出多个参数:
echo "参数1" "参数2" "参数3"
输出结果为:"参数1 参数2 参数3"
-
使用
-e
选项启用转义字符支持:
echo -e "反斜杠 \t 换行 \n"
输出结果为:"反斜杠 \t 换行"(注意,反斜杠后面的空格和换行符会被保留)
printf
允许用户以格式化的方式输出文本到终端。printf
命令的灵感来源于 C 语言中的同名函数,但在 Linux 中,它是一个独立的命令,不需要使用编程语言的语法。
printf "格式化字符串" [参数...]
格式化字符串
格式化字符可以包含普通文本和所谓的“格式说明符”,这些说明符告诉 printf
如何格式化参数。以下是一些常用的格式说明符:
-
%d
:输出一个整数。 -
%f
:输出一个浮点数。 -
%s
:输出一个字符串。 -
%c
:输出一个字符。 -
%p
:输出一个指针值。 -
%u
:输出一个无符号整数。 -
%x
/%X
:输出一个十六进制数。 -
%o
:输出一个八进制数。 -
%t
:输出一个时间戳。 -
%%
:输出一个百分号。
参数
参数是 printf
命令的输入值,它们位于格式化字符串的后面。参数可以是变量、值或表达式。
示例
# 输出整数 printf "我的年龄是: %d岁\n" 25 # 输出浮点数 printf "圆周率是: %.2f\n" 3.14159 # 输出字符串 printf "我的名字是: %s\n" "Alice" # 输出字符 printf "字符 'A' 的ASCII值是: %d\n" 'A' # 输出指针 printf "指针值是: %p\n" $(printf "Hello, World!" | head -c 1)
注意事项
-
格式说明符周围必须有百分号
%
。 -
参数列表中变量的名称必须是有效的 Bash 变量名。
-
如果格式说明符或参数中包含空格或其他特殊字符,它们需要被引用或转义。
more
more
是一个能够按页显示文本文件内容的命令行分页器,通常用于查看长文本文件且逐页浏览。它允许用户在查看文件内容时逐页滚动,并且还提供了一些额外的功能来方便导航和搜索文本。more
命令的基本语法如下:
more [选项] [文件名]
-
-num
:从文件的第num
行开始显示内容。 -
-d
:显示每页结束时的提示,等待用户按下空格或回车键以滚动到下一页。 -
-s
:将连续的空行压缩成一个空行。 -
-c
:将控制字符显示为^
符号后紧跟一个字符的形式。 -
-p
:在每页开始时清屏,并显示每页的起始行编号。 -
+num
:从文件的第num
行开始查看文件内容。 -
文件名
:指定要查看的文件的名称。
使用 more
命令时,你可以通过按下 Space
键来滚动到下一页,按下 Enter
键来滚动到下一行,或者按下 q
键来退出 more
。
总之,more
是一个有用的命令行工具,用于逐页查看文本文件的内容,并提供了一些浏览和搜索文本的功能。它对于查看大型日志文件或长文本文件特别有用。
less
在Linux中,Less 是一个命令行的分页工具,用于浏览文本文件内容并逐页显示。高效地查看大型文本文件,查找特定文本的出现,以及更好地浏览和理解文件的内容。相比常用的 more
命令,less
具有更多的功能和交互性。
less [选项] [文件名]
-
空格
:滚动至下一页。 -
B
:滚动至上一页。 -
G
:跳至文件末尾。 -
g
:跳至文件开头。 -
/pattern
:搜索指定模式的文本。 -
n
:在文本中查找下一个匹配项。 -
N
:在文本中查找上一个匹配项。 -
q
:退出 Less。 -
h
:显示 Less 命令的帮助信息。 -
R
:重新读取文件并显示最新的内容。 -
-N
:显示行号。 -
-i
:忽略搜索时的大小写。 -
-S
:禁用自动换行。 -
-F
:自动退出,如果只有一个屏幕的内容需要显示。 -
-X
:禁用清屏操作。
head
head
命令用于快速查看文本文件或数据流的前几行内容。它的基本语法如下:
head [选项] [文件名]
其中,选项
可以是以下之一:
-
-n
:要显示的行数。例如,head -n 5
将显示文件的前 5 行。 -
-N
:显示行号。例如,head -N +3
将显示文件中从第 3 行开始的行。 -
-f
:在文件末尾添加一个新行。 -
-q
:静默模式,不显示文件名。
文件名
是要查看的文件名或数据流。如果省略文件名,则 head
命令将读取标准输入。
不确定行数 默认输出10行。
例如,要查看文件 example.txt
的前 5 行内容,可以使用以下命令:
head -n 5 example.txt
如果要显示从第 3 行开始的行,可以使用以下命令:
head -N +3 example.txt
tail
在 Linux 中,tail
命令在处理文本文件和数据流时非常灵活和实用。通过合理使用 tail
命令的参数和选项,可以方便地查看文件末尾的内容,并处理实时更新的文件。
tail [选项] [文件名]
tail
命令提供了以下常用的参数和选项:
-
-n
:指定要显示的行数。例如,tail -n 5
将显示文件的最后 5 行。 -
-f
:实时显示文件内容的更新。当文件被修改时,tail -f
将自动刷新显示。 -
-c
:显示修改后的行数。 -
-r
:反向显示输出。 -
-q
:静默模式,不显示文件名。 -
-p
:显示文件的内容,而不是文件名。 -
-e
:选项指定编辑器类型,例如vim
或nano
。 -
-s
:选项重新加载已修改的文件内容。 -
-t
:选项将输出限制为特定的时间间隔(毫秒)
文件目录创建 拷贝 删除 移动
touch
touch
命令是一个简单而实用的工具,用于创建新的空文件或更改现有文件的日期和时间戳。通过合理使用 touch
命令的参数和选项,可以方便地管理文件的时间戳,并控制文件的创建时间
touch [选项] [文件名]
touch
命令提供了以下常用的参数和选项:
-
-a
:更改文件的访问时间戳。 -
-c
,--no-create
:不创建任何文件 -
-d
,--date=字符串
:使用指定字符串表示时间而非当前时间 -
-m
:仅更改文件的修改时间戳。 -
-r
,--reference=FILE
: 复制时间戳从源文件到目标文件。 -
-t
:指定文件的日期和时间戳。 -
-u
:仅在文件被访问后更新其访问时间戳。
例如,要创建一个名为 example.txt
的新空文件,可以使用以下命令:
touch example.txt
如果要更改现有文件 example.txt
的日期和时间戳,可以使用以下命令:
touch -t 20230217 15:30:00 example.txt
mkdir
mkdir
命令用于创建目录以下是mkdir
命令的一些常用参数和介绍:
-
-p
:递归创建目录。如果父目录不存在,mkdir -p
将创建所有必要的父目录。 -
-m
:设置新目录的权限。可以使用数字表示权限,也可以使用符号表示权限(例如rwxr-xr-x
)。 -
-v
:显示详细信息。使用此参数后,mkdir
命令将显示创建目录的详细过程。 -
-f
:如果目录已存在,则不报错。 -
-t
:指定要创建的目录类型。可以使用特定的文件系统类型(如ext4
)或指定允许的文件系统类型列表。 -
-q
:安静模式。在执行过程中不显示任何输出。 -
-s
:使用特殊文件系统(如ext3)。
除了这些常用参数,还有一些其他选项和功能可以通过组合使用其他命令或工具来实现。例如,可以使用find
命令结合mkdir
命令来创建多层嵌套的目录结构。
下面是一个简单的示例,展示了如何使用mkdir
命令创建目录:
mkdir -p /path/to/directory/subdir1/subdir2
这个命令将递归地创建/path/to/directory/subdir1/subdir2
目录及其所有父目录,如果它们不存在的话。
rm
rm
命令用于删除文件和目录。它的基本语法如下:
rm [选项] [文件/目录]
-
-f
:强制删除,无需提示确认。使用此选项时,rm
将不会询问是否删除文件,而是直接删除。 -
-i
:交互模式,在删除文件时提示用户进行确认。使用此选项时,rm
将在删除每个文件之前询问用户确认操作。 -
-r
或-R
:递归删除目录及其内容。如果要删除一个目录及其下的所有文件和子目录,必须使用递归选项。请注意,使用这个选项时要格外小心,因为它将不会询问任何确认,直接删除整个目录。 -
-d
:删除空目录。如果要删除一个空目录,可以使用这个选项。 -
-v
:显示详细删除信息,以便查看删除的文件名。 -
--preserve-root
:防止删除根目录 ("/")。
使用 rm
命令删除文件和目录是不可恢复的操作,请谨慎使用。
unlink
unlink
是 Linux 系统中用于删除文件或目录的命令。它的基本语法如下:
unlink [选项] 目标文件
选项可以包括:
-
-f
:强制删除文件,不提示确认。 -
-r
或--recursive
:递归删除目录及其下所有文件。
unlink
命令会删除指定的文件或目录,但不会删除文件系统中的数据块,这些数据块可能会被后来的文件操作重新使用。如果文件已被打开并且有其他文件句柄指向它,unlink
命令可能不会立即删除文件,直到所有文件句柄都被关闭。
例如,要删除名为 file.txt
的文件,可以使用以下命令:
unlink file.txt
如果要递归删除一个目录及其下所有文件,可以使用以下命令:
rm -r directory_name
rm
命令也可以用来删除文件和目录,与 unlink
命令的功能相似。
cp
cp
命令用于复制一个或多个文件或目录
cp [选项] 源文件/目录 目标文件/目录
cp
命令提供了以下常用的参数和选项:
-
-r
或-R
:若源文件为目录,则递归复制整个目录及其内容,包括子目录和文件。 -
-i
:交互模式,如果目标文件已经存在时,提示用户进行确认。使用此选项时,cp
将询问是否覆盖已存在的文件。 -
-v
:显示详细的复制信息,以便跟踪复制的文件和目录。 -
-p
:保持源文件的属性,包括文件权限、修改时间和所有者等。 -
-a
:归档模式,相当于-pdr
的组合(保持源文件属性、递归复制整个目录)。 -
-u
:仅复制源文件中不存在于目标文件或修改时间较新的文件。
例如,要将文件 file1.txt
复制到目录 folder
中,可以使用以下命令:
cp file1.txt folder/
要递归复制目录 folder1
及其下的所有文件和子目录到目标目录 folder2
中,可以使用 -r
或 -R
选项:
cp -r folder1/ folder2/
mv
mv
命令用于移动文件或重命名文件,它的基本语法如下:
mv [选项] 源文件/目录 目标文件/目录
mv
命令可以执行以下操作:
-
移动文件:将源文件(或目录)移动到目标路径,实现文件或目录的移动操作。
-
重命名文件:如果目标路径与源文件所在的路径相同,
mv
命令将重命名文件,即改变文件的名称。
mv
命令提供了以下常用的参数和选项:
-
-i
:交互模式,如果目标文件已经存在时,提示用户进行确认。使用此选项时,mv
将询问是否覆盖已存在的文件。 -
-v
:显示详细的移动信息,以便跟踪移动的文件和目录。 -
-f
:强制执行,即使目标文件已经存在也不询问用户进行确认。使用此选项时,mv
将直接覆盖已存在的文件。 -
-u
:仅在目标文件不存在或源文件的修改时间较新时执行移动操作。
下面是一些示例用法:
-
移动文件夹:将目录
folder
移动到目标路径destination
下:
mv folder/ destination/
-
重命名文件:将文件
file1.txt
重命名为newfile.txt
:
mv file1.txt newfile.txt
需要注意的是,当目标路径与源路径不同时,mv
命令将执行文件的移动操作;如果目标路径与源路径相同,mv
命令将执行文件的重命名操作。
查找
find
find
命令用于在文件系统中查找文件和目录,可以根据文件名、文件类型、权限、修改时间等条件进行过滤。它还可以递归地搜索子目录和隐藏的目录。
参数:
-
-name
:指定要搜索的文件名模式。可以使用通配符进行匹配。 -
-type
:指定要搜索的文件类型,例如普通文件、目录、符号链接等。 -
-user
:指定要搜索的用户。 -
-group
:指定要搜索的组。 -
-size
:指定文件大小的范围,可以使用+
表示大于,-
表示小于,具体的单位可以在后面指定,如k
表示KB,m
表示MB等。 -
-mtime
:指定文件的修改时间,可以指定天数范围内的修改时间,例如-mtime +7
表示搜索七天前修改过的文件。 -
-depth
:递归搜索时深度优先搜索。 -
-exec
:对找到的文件执行指定的命令。 -
-ok
:类似于-exec
,但是用户会得到提示而不是直接执行命令。 -
查找当前目录下所有扩展名为
.txt
的文件:
find . -name "*.txt"
-
查找当前用户所有位于
/home/
目录下的普通文件:
find /home/ -type f -user $USER
-
查找最近三天内被修改过的文件:
find /path/to/search -mtime -3
grep
grep
命令用于在文本文件中搜索匹配指定模式的行,并输出这些匹配的行。它支持使用各种选项和参数来定制搜索行为和输出格式。
参数:
-
-i
:忽略大小写进行搜索。 -
-r
或--recursive
:递归地搜索指定目录及其子目录下的文件。 -
-R
:表示递归搜索模式匹配的文件和目录。将搜索指定目录及其子目录下的所有文件 -
-l
:仅输出包含匹配项的文件名。 -
-n
:显示匹配行的行号。 -
-v
:输出不匹配指定模式的行。 -
-f FILE
:从文件中读取模式进行搜索。 -
PATTERN
:要搜索的文本模式。
示例:
-
搜索文件中的匹配项并输出:
grep "pattern" file.txt
-
搜索当前目录及其子目录下的文件,并显示匹配项的行号:
grep -n "pattern" directory/*
-
递归搜索指定目录下的文件,并输出包含匹配项的文件名:
grep -l "pattern" directory/
压缩 解压缩
zip
zip
命令用于在Linux中创建和操作zip文件。zip文件是一种压缩格式,它可以将多个文件压缩成一个文件。这有助于减小文件大小并节省磁盘空间。
参数:
-
-r
:递归地将目录及其子目录添加到zip文件中。 -
-q
:在创建zip文件时保持静默模式,不显示详细信息。 -
-j
:将文件添加到zip文件中,保留文件的路径信息。 -
-R
:删除zip文件中的所有文件。 -
-l
:在创建zip文件时,仅列出文件名而不压缩文件。 -
-o OUTPUT
:将zip文件保存到指定的输出文件中。
示例:
-
将目录压缩成zip文件:
zip -r directory.zip directory/
-
将文件压缩成zip文件:
zip -r file.zip file.txt
-
将目录及其子目录压缩成zip文件:
zip -rR directory.zip directory/
unzip
unzip
命令用于解压缩zip文件,将其中的文件提取到指定目录中。它提供了方便的方式来解压缩zip文件,并可以处理不同类型的压缩文件。
参数:
-
-o
:覆盖解压缩文件中的文件时,提示确认是否要覆盖。 -
-j
:跳过文件的压缩部分,直接提取文件的内容。 -
-d
:指定解压缩后文件的保存目录。 -
-l
:仅显示zip文件中包含的文件列表,而不解压缩文件。 -
-v
:显示详细的解压缩过程信息。 -
file.zip
:要解压缩的zip文件的名称。
示例:
-
解压缩zip文件到当前目录:
unzip file.zip
-
覆盖解压缩文件中的文件时提示确认:
unzip -o file.zip
-
将解压缩后的文件保存到指定目录:
unzip file.zip -d /path/to/destination/directory/
tar
tar
命令用于将文件和目录打包成一个tar文件,以便于存储和传输。它还可以将文件和目录从tar文件中解压缩,以便进行进一步的编辑和处理。
参数:
-
-cf
:创建、更新或查看tar文件。 -
-txz
:压缩后使用xz算法加密,并将tar文件传输到远程服务器。 -
-zt
:仅显示tar文件中包含的文件列表。 -
-zcvf
:压缩、创建、更新并打包tar文件。 -
-xf
:解压缩tar文件。 -
-v
:显示详细的解压缩过程信息。 -
-C /path/to/destination
:指定解压缩后文件的保存目录。 -
file.tar
:要打包或解压缩的tar文件的名称。
示例:
-
打包当前目录中的文件和目录到一个tar文件:
tar -cf archive.tar directory/ file1.txt file2.txt
-
解压缩tar文件到指定目录:
tar -xf archive.tar -C /path/to/destination/directory/
查看文件/系统属性 历史命令
history ctrl+R
history
命令用于查看历史命令记录,它提供了方便的方式来回顾之前的操作。通过使用history
命令,用户可以轻松地查找之前执行的命令,以便进行重新执行、编辑或查看输出。
-
-l
:以长格式显示历史命令列表。 -
-r
:按照反向顺序显示历史命令列表。 -
-i <n>
:限制显示历史命令的数量为n条。 -
-a <file>
:将历史命令记录追加到指定的文件中,而不是覆盖现有文件。 -
-s <file>
:将当前历史命令记录文件与指定的文件合并。 -
-t
:仅显示最近执行的命令列表。
which
which
命令用于查找某个命令的位置,它可以在系统中搜索命令的路径,并返回该命令所在的完整路径。这对于查找系统中安装的命令的位置非常有用,特别是当你命令是否已经安装或者在哪个目录下时。
-
-a <name>
:搜索所有匹配指定名称的文件,而不只是命令。 -
-L
:在搜索路径中排除任何在 /usr/local//man 中的手册页。 -
-s
:在输出中仅显示命令的名称,而不显示路径。 -
-n
:在输出中显示命令的完整路径,而不是命令的名称。 -
-p <dir>
:在指定的目录中搜索命令。
which ls
查找在/usr/local/bin
目录下的ls
命令的位置:
which -p /usr/local/bin ls
uname
uname
命令用于显示有关Linux系统的信息,例如主机名、操作系统名称、架构和版本等。
参数:
-
-a
:显示所有相关信息,包括内核版本、机器标识符、网络接口信息等。 -
-n
:显示主机名,而不是完整的主机名解析。 -
-r
:显示操作系统名称和版本。 -
-s
:显示操作系统名称。 -
-m
:显示机器架构(例如x86、x86_64等)。
示例:
-
显示系统名称和版本:
uname -r
-
显示完整的系统信息:
uname -a
-
显示主机名:
uname -n
free -k -m -g
在Linux中,free
是一个用于显示系统内存使用情况的命令行工具。它提供了有关系统内存分配和可用内存的详细信息。
介绍:
free
命令用于查看系统中的物理内存和交换空间的使用情况,包括已使用的内存、空闲内存、缓存内存和共享内存等。它提供了有关内存分配和释放的详细信息,以及内存碎片和缓存的影响。
参数:
-
-h
:以人类可读的格式显示内存使用情况,使用易懂的单位(如KB、MB等)。 -
-t
:显示每个进程使用的总内存和空闲内存的时间信息。 -
-m
:以MB为单位显示内存使用情况。 -
-v
:显示free
命令的版本信息。 -
-k
:以KB为单位显示内存使用情况。 -
-g
:以GB为单位显示内存使用情况。
示例:
-
显示系统总内存和可用内存:
free
-
显示特定进程使用的内存情况:
free -p <进程ID>
df
df
可以报告系统中所有挂载点的磁盘使用情况,包括已使用的空间、空闲空间和交换空间
参数:
-
-h
:以人类可读的格式显示磁盘使用情况,使用易懂的单位(如KB、MB、GB等)。 -
-t <filesystem>
:仅显示指定文件系统中的磁盘使用情况。 -
-x <filesystem>
:排除指定文件系统中的磁盘使用情况。 -
-u <increment>
:更新磁盘使用情况的增量值。 -
-k
:以KB为单位显示磁盘使用情况。 -
-m
:以MB为单位显示磁盘使用情况。 -
-g
:以GB为单位显示磁盘使用情况,不考虑文件系统的块大小。
示例:
-
显示整个系统的磁盘使用情况:
df -h
-
仅显示
/home
文件系统中的磁盘使用情况:
df -t /home
-
排除
/tmp
文件系统中的磁盘使用情况:
df -x /tmp
lscpu
lscpu
命令用于显示有关系统处理器的信息,包括架构、型号、核心数、线程数等。
参数:
-
-p
:显示处理器列表及其详细信息。 -
-i
:仅显示接口类型和编号。 -
-C
:显示缓存和内存信息。 -
-c
:仅显示物理CPU信息,不包括逻辑CPU。 -
-f
:显示完整的处理器名称列表。 -
-x
:显示扩展属性。
示例:
-
显示完整的处理器信息:
lscpu
-
仅显示处理器名称列表:
lscpu -f
lsmem
lsmem
命令用于查看系统内存信息,包括内存使用情况、分配情况、缓存和交换空间等信息。
参数:
-
-h
:以人类可读的格式显示内存使用情况,使用的单位(如KB、MB、GB等)。 -
-F
:显示内存分配情况,包括分配的内存、已使用的内存、剩余的内存和缓存的内存等信息。 -
-m
:以MB为单位显示内存使用情况。 -
-g
:以GB为单位显示内存使用情况,不考虑内存的块大小。 -
-M
:以MiB为单位显示内存使用情况,不考虑内存的块大小。 -
-p
:显示内存分配情况,包括分配的内存、已使用的内存、剩余的内存和缓存的内存等信息,以进程为单位。
示例:
-
显示系统内存使用情况:
lsmem -h
-
显示内存分配情况:
lsmem -F
-
仅显示以GB为单位的内存使用情况:
lsmem -m -g
ps ps aux ps ajx
ps
用于显示当前系统中的进程状态和信息,包括进程ID(PID)、进程名称、用户、CPU使用情况、内存使用情况等。
参数:
-
-e
:显示所有进程,包括非用户进程。 -
-f
:显示完整的进程信息,包括命令行参数和环境变量。 -
-o
: 指定输出进程信息pid,ppid,user,cmd等. -
-l
:以长格式显示进程信息,包括PID、PPID、USER、%CPU、%MEM等。 -
-u
:按照用户名和进程ID的格式显示进程信息。 -
-p <PID>
:显示指定进程的详细信息。 -
-w
:以宽格式显示进程信息,包括命令行参数和环境变量。 -
-C <command>
:仅显示指定命令的进程。 -
-t
:按照终端名称和进程ID的格式显示进程信息。
示例:
-
显示当前所有进程的详细信息:
ps -ef
-
仅显示PID为1234的进程的详细信息:
ps -p 1234 -o pid,ppid,user,cmd
ps aux
ps aux
命令用于查看系统中的所有进程,包括用户进程和非用户进程。它提供了有关进程的详细信息,包括进程执行时间、CPU使用情况、内存使用情况等。
显示系统中的所有进程的详细信息:
ps aux
ps ajx
ps aux
命令用于显示所有当前运行的进程的详细信息,包括进程ID(PID)、CPU使用率、内存占用等。这个命令提供了非常详细的信息,但可能对于查看大量进程时不太方便。
ps ajx
命令则是一个更简洁的版本,它只显示进程的PID、状态和命令名称,而不包括其他详细信息。这个命令更加简洁易读,但对于需要快速查看进程信息的用户来说可能更为方便。
du
(Disk Usage)
du
命令用于估算文件和目录的磁盘使用情况,它提供了文件大小的信息,并可以按照不同的方式进行排序和显示。
参数:
-
-h
:以人类可读的格式显示文件大小,使用易读的千兆字节(GB)和兆字节(MB)等单位。 -
-s
:仅显示总计,而不显示每个目录的磁盘使用情况。 -
-x
:排除不在指定目录下的文件和目录。 -
-k
:以千字节为单位显示文件大小。 -
-b
:在显示文件大小的同时,显示已使用的百分比。 -
-c
:在显示总计时,显示每个目录的磁盘使用情况。 -
-m
:以兆字节为单位显示文件大小。 -
-l
:对目录使用长格式显示,包括目录的累加大小和数量。 -
-p
:以递归方式列出指定目录下的所有文件和子目录,并显示它们的磁盘使用情况。
示例:
-
估算当前目录下所有文件的磁盘使用情况:
du -sh *
-
估算指定目录下的磁盘使用情况,并按照文件大小进行排序:
du -sh -k /path/to/directory
ldd指令检测动态依赖
ldd命令用于诊断在运行时动态链接到共享库的方式,它可以帮助用户确定一个可执行文件或共享库所依赖的库以及它们的版本。
ldd的参数和选项:
-
-v
:显示详细信息,包括库的路径。 -
-d
:显示动态链接依赖关系。 -
-u
:显示未解析的符号。 -
-r
:递归地显示所有依赖关系。 -
<path/to/file>
:指定要检查的可执行文件或共享库的路径。
使用的例子:
-
诊断一个可执行文件的动态依赖关系:
ldd <path/to/executable>
这将会显示该可执行文件所依赖的共享库列表以及它们的路径。
-
显示特定共享库的依赖关系:
ldd -d <path/to/shared/library>
这将会显示指定共享库的动态链接依赖关系。
-
显示未解析的符号:
ldd -u <path/to/executable>
这将会显示该可执行文件中所用到的但未在共享库中解析的符号。
-
递归地显示所有依赖关系:
ldd -r <path/to/directory> | grep notfound
这将会查找指定目录下的所有文件,并显示它们所依赖的共享库及其路径。如果某个文件没有找到相应的共享库,它会被包含在结果中。
stat
stat命令是一个常用的系统工具,用于查看文件和文件系统的状态信息。它可以显示文件和目录的详细信息,包括文件权限、所有者、大小、创建日期、访问次数、磁盘使用情况等。
参数和选项:
-
-c <format>
:使用指定的格式来显示输出。例如,-c %Y
将显示文件创建日期,-c %U
将显示文件所有者的用户名等。 -
-f
:显示文件系统信息,例如磁盘使用情况、挂载点等。 -
-k
:显示磁盘使用情况,例如已使用空间、剩余空间、已分配空间等。 -
-l
:使用长格式显示文件和目录信息,包括所有详细信息。 -
-n
:使用长格式显示文件和目录信息,但不显示所有详细信息。 -
-r
:递归显示目录及其子目录中的文件和目录信息。
使用例子:
-
查看文件状态:
stat myfile
这将会显示myfile文件的详细信息,包括文件权限、所有者、大小、创建日期、访问次数等。
-
查看文件系统信息:
stat -f /
这将会显示根文件系统的磁盘使用情况、已使用空间、剩余空间、已分配空间等信息。
-
查看目录状态:
stat -l /
这将会递归显示根目录及其子目录中的文件和目录信息,包括文件权限、所有者、大小、创建日期、访问次数等。
-
查看磁盘使用情况:
stat -k /
这将会显示根文件系统的磁盘使用情况,包括已使用空间、剩余空间、已分配空间等信息。
还有很多的命令可以根据需要查看文档