Linux 常用命令详解
作为一枚程序员,熟练掌握一些常见的 linux 命令是很有必要的,把握这些命令能帮忙咱们更好地治理 Linux 零碎,进步工作效率,并无效地解决各种问题,为了不便本人后续查阅以及帮忙不相熟 linux 命令的小伙伴,特意破费了大量工夫整顿了这篇将近两万字的超长文博客,大家能够先珍藏起来,而后细读一两遍留个印象,后续有用到不相熟的命令的时候再回来查阅这篇文章(当然英文厉害的也能够间接查看帮忙手册,只不过帮忙手册烦扰项太多,也没有突出重点)。
快捷操作
- 搜查目录的时候,按 tab 键主动补全
- 应用高低箭头,切换最近执行的命令
根本用法
# 查看某个命令具体的应用办法,man 是手册 manual 单词的缩写,退出命令详情面板输出 q 字母
man ls
文件目录切换、门路、查看、编辑
cd
命令用于切换当前工作目录
其语法格局如下:
cd [目录名]
其中,目录名
示意须要切换的目录名称。常见的应用形式如下:
# 目录阐明
/ # 代表零碎根目录
~ # 代表 home 主目录
- # 代表上一次切换的目录
./ # 代表当前目录
.. # 代表父级目录
../.. # 代表父级的父级目录
- 切换到以后用户的主目录:
cd / #切换到零碎根目录
cd ~
- 切换到上一级目录:
cd ..
- 切换到绝对路径下的目录:
cd /path/to/directory
- 切换到相对路径下的目录:
cd directory
注意事项:cd
命令须要有相应的权限能力切换到指定目录。如果用户没有权限进入指定目录,那么可能会收到 ”Permission denied” 的错误信息。另外,如果目录名蕴含空格等特殊字符,须要应用单引号或双引号将目录名括起来。
ls
命令它用于列出目录下的文件和子目录的信息
上面对 ls
命令的罕用参数及其含意进行介绍。
罕用参数
-l
:以长格局显示文件信息,包含文件的权限、所有者、所属组、大小、批改工夫等等。-a
:显示所有文件及目录,包含暗藏文件和目录。以.
结尾的文件和目录都被认为是暗藏文件和目录。-h
:以易读形式显示文件大小,比方ls -lh
。-r
:将文件依照相同的顺序排列,即倒序排列。-t
:将文件依照批改工夫的先后顺序排列,最近批改的文件排在最后面。-d
:显示目录本身的信息,而不是目录下的文件。例如ls -ld /etc
。
示例
- 显示目录下的所有文件和子目录信息:
ls
。 - 以长格局列出目录下的所有文件和子目录的详细信息:
ls -l
。 - 列出目录下的所有文件和子目录,包含暗藏文件和目录:
ls -a
。 - 列出所有目录中最新批改的文件:
ls -lt
。 - 以易读形式显示目录下文件的大小:
ls -lh
。 - 列出 /root 目录的详细信息:
ls -ld /root
。
注意事项:ls
命令既能用来查看文件信息,也能够用来查看目录信息。如果你想要查看一个目录下的所有文件和子目录的详细信息,间接在该目录下执行 ls -l
命令即可。如果你想要查看一个文件的详细信息,须要在该文件所在的目录下执行 ls -l 文件名
命令。
pwd
命令用于显示当前工作目录的绝对路径
其语法格局如下:
pwd [选项]
常见的选项有:
-L
: 显示符号链接的绝对路径。-P
: 显示理论门路,而非符号链接门路。
常见的应用形式如下:
- 显示当前工作目录的绝对路径:
pwd
- 显示符号链接的绝对路径:
pwd -L
- 显示理论门路:
pwd -P
注意事项:pwd
命令个别用于查看当前工作目录的门路,不须要其余非凡的权限。如果当前目录被删除或者权限发生变化,那么 pwd
命令可能会显示谬误的后果。
vim
是一个十分弱小的文本编辑器,罕用于 Linux 零碎下编辑文本文件
上面是 vim
命令的具体用法:
- 关上文件:
vim < 文件名 >
例如,要关上名为 file.txt
的文本文件,能够输出以下命令:
vim file.txt
- 命令模式:
vim
有三个模式:命令模式、插入模式和视觉模式。当你关上一个文本文件时,首先进入的是命令模式。在命令模式下,能够执行以下操作:
- 挪动光标:h(左)、j(下)、k(上)、l(右)。
- 切换到插入模式:i(以后光标处插入)、a(以后光标后插入)、o(以后行下方插入)、O(以后行上方插入)、cw(替换从以后光标地位开始到单词结尾的内容)、cc(替换整行内容)。
- 删除:x(删除以后字符)、dw(删除以后光标所在的单词)、dd(删除整行)、D(从以后地位删除到行尾)。
- 撤销:u(撤销上一步操作)。
- 搜寻:/(前向搜索)、?(反向搜寻)。
- 插入模式:
在命令模式下按下 i
、a
、o
等插入命令后,就进入了插入模式。在插入模式下,能够间接输出文本内容,直至按下 Esc
键回到命令模式。
- 视觉模式:
要进行文本的抉择操作,能够进入视觉模式。将光标挪动到要抉择的文本上,按下 v
键即可进入视觉模式。在视觉模式下,你能够应用 h
、j
、k
、l
来挪动光标,抉择要编辑的文本。抉择实现后,能够按下 d
、x
等键进行删除操作,也能够按下 y
键将文本拷贝到剪贴板中。
- 保留和退出:
在命令模式下输出以下命令能够保留文件并退出编辑器:
:wq
如果只是想保留文件而不退出编辑器,能够应用以下命令:
:w
如果想强制保留文件,能够应用以下命令:
:w!
如果想放弃所有对文本的批改并退出编辑器,能够应用以下命令:
:q!
如果文本曾经被批改过,须要强制退出编辑器而不保留文件,能够应用以下命令:
:q!
这些是 vim
编辑器的根本用法,还有很多其余高级性能期待你去挖掘。
文件目录创立、删除、挪动、复制、链接命令
mkdir
命令用于创立目录
其语法格局如下:
mkdir [选项] 目录名
其中,目录名
示意须要创立的目录名称,常见的选项有:
-p
: 创立多级目录,如果下级目录不存在则会一并创立。
常见的应用形式如下:
- 创立一个空目录:
mkdir mydir
- 创立多级目录:
mkdir -p /path/to/mydir
注意事项:mkdir
命令创立目录时须要具备相应的权限。如果以后用户没有写权限,那么无奈创立新目录。在一些 Linux 零碎中,如果没有 -p
选项,那么当要创立的下级目录不存在时,mkdir
命令会抛出谬误。这时须要手动先创立下级目录,或者应用 -p
选项一并创立下级目录。
rmdir
命令用于删除空目录
其语法格局如下:
rmdir [选项] 目录名
其中,目录名
示意须要删除的目录名称,常见的选项有:
-p
: 递归删除父目录,如果父目录不为空也将一并删除。
常见的应用形式如下:
- 删除一个空目录:
rmdir mydir
- 删除多个空目录:
rmdir dir1 dir2 dir3
注意事项:rmdir
命令只能删除空目录,如果目录非空会报错提醒。如果要删除非空目录,能够应用 rm -r
命令。如果须要递归删除父目录,能够应用 -p
选项,但须要审慎应用。
mv
命令是用于挪动或重命名文件或目录的命令
其语法格局如下:
mv [选项] 源文件 / 目录 指标文件 / 目录
其中,源文件 / 目录
示意须要挪动或者重命名的文件或目录,指标文件 / 目录
示意须要挪动或者重命名到的指标地位或新的名称。常见的选项有:
-i
: 在挪动文件时询问是否笼罩曾经存在的指标文件;-v
: 在挪动文件时显示具体的信息;-u
: 如果指标文件比源文件更晚批改过,则才会执行挪动操作;-f
: 强制挪动,不询问。
常见的应用形式如下:
- 将文件从一个目录移到另一个目录:
mv /old/path/file.txt /new/path/
- 将文件重命名:
mv /path/oldname.txt /path/newname.txt
- 挪动目录到另一个目录:
mv /old/path/ /new/path/
注意事项:当应用 mv
命令对文件或目录进行挪动或重命名操作时,如果指标文件曾经存在,原始文件将被替换。因而,尤其要留神对于重要的文件和目录的操作,能够加上 -i
选项确保安全性。
rm
命令用于删除文件或目录
其语法格局如下:
rm [选项] 文件或目录
其中,文件或目录
示意须要删除的文件或目录,常见的选项有:
-i
: 询问是否删除文件;-r
: 递归删除目录,即删除目录及其子目录;-f
: 强制删除,不询问确认。
常见的应用形式如下:
- 删除一个文件:
rm file.txt
- 删除一个目录:
rm -r /path/to/directory
- 删除多个文件:
rm file1.txt file2.txt
注意事项:rm
命令要慎用,因为删除后无奈复原,特地阐明 rm -rf /*
命令,示意删除零碎根目录下所有的文件(禁用 )。如果须要删除文件或目录,并且心愿防止误删的状况,能够思考应用-i
选项询问确认。如果须要删除目录及其子目录,则须要应用 -r
选项。如果须要强制删除,能够应用 -f
选项,但须要留神应审慎应用。
cp
命令是用于复制文件或目录的命令,其语法格局如下:
cp [选项] 源文件 指标文件
其中,源文件能够是一个文件或一个目录,指标文件能够是一个曾经存在的目录,也能够是一个不存在的新文件或目录。罕用的选项有:
-r
:如果源文件是目录,则复制整个目录及其子目录;-p
:保留源文件的工夫戳和权限等属性信息;-i
:在复制前询问是否笼罩曾经存在的指标文件;-v
:输入详细信息。
常见的应用示例:
- 将一个文件复制到一个曾经存在的目录中:
cp /path/to/source/file /path/to/existing/directory/
- 将一个文件复制到一个新的文件中:
cp /path/to/source/file /path/to/newfile
- 将一个目录复制到一个曾经存在的目录中:
cp -r /path/to/source/directory /path/to/existing/directory/
- 将一个文件夹及其子目录和文件复制到一个新的目录中:
cp -r /path/to/source/directory /path/to/new/directory
注意事项:在应用 cp
命令复制文件或目录时,如果指标文件曾经存在,则会笼罩原有文件。如果想要保留原有文件,须要应用 -i
选项进行询问确认。
scp
命令是 Linux 零碎中基于 ssh 协定进行近程文件拷贝的命令
语法格局如下:
scp [参数] [源地址] [指标地址]
其中,源地址和指标地址能够是本地门路或近程主机门路,如果是近程门路须要加上用户名和主机名。上面是罕用参数的具体阐明:
- -r:递归拷贝整个目录;
- -P:指定端口号;
- -p:保留原文件的属性;
- -v:输入详细信息。
罕用的示例命令如下:
- 从本地复制文件到近程主机:
scp local_file remote_username@remote_ip:remote_folder
例如:
scp /home/user/test.txt root@192.168.1.100:/home
- 从近程主机复制文件到本地:
scp remote_username@remote_ip:remote_file local_folder
例如:
scp root@192.168.1.100:/home/user/test.txt /home/user
- 从近程主机复制整个目录到本地:
scp -r remote_username@remote_ip:remote_folder local_folder
例如:
scp -r root@192.168.1.100:/home/user/test /home/user
- 从本地复制整个目录到近程主机:
scp -r local_folder remote_username@remote_ip:remote_folder
例如:
scp -r /home/user/test/ root@192.168.1.100:/home
注意事项:在拷贝近程文件时,必须确保本地机器和近程机器之间可能失常通信,并且要保障有足够的权限进行文件操作,如果用户没有权限拜访指标文件或目录,可能会收到 ”Permission denied” 的错误信息。另外,如果目录或文件名蕴含空格等特殊字符,须要应用单引号或双引号将目录或文件名括起来。
ln
命令
用于创立链接或符号链接。链接是指在不同地位的文件或目录之间建设关联,以便于系统管理和应用。Linux 中,有两种类型的链接:硬链接和符号链接。
硬链接:
硬链接是指一个文件领有了多个文件名,它们指向同一个物理文件。硬链接与原文件共享雷同的 Inode 号,文件的所有属性都是雷同的。创立硬链接的语法为:
ln [options] <original_file> <hardlink>
其中,original_file
为被链接的源文件,hardlink
为链接文件的文件名。创立硬链接时,必须保障源文件和链接文件在同一个文件系统中,并且链接文件不能是曾经存在的目录。
符号链接:
符号链接也称软链接,是指一个文件通过给定的门路链接到另一个文件。符号链接与原文件有不同的 Inode 号,文件属性也可能不同。创立符号链接的语法为:
ln -s <original_file> <symlink>
其中,original_file
为要链接的源文件,symlink
为创立的符号链接文件名。通过 -s
选项来指定创立符号链接,如果不加选项,则默认创立硬链接。
须要留神的是,符号链接能够链接到不同的文件系统、甚至是近程零碎中的文件,而硬链接只能在同一个文件系统中创立。
ln
命令还反对其余选项,例如:
-f
,强制创立链接,即便指标文件已存在-i
,交互式创立链接,如果指标文件已存在,会提醒用户是否要笼罩-n
,不要笼罩已有的链接文件-v
,显示具体的创立过程信息
通过这些选项,能够更加灵便地应用 ln
命令来创立链接或符号链接。
硬链接和软链接(也称为符号链接)是在 Linux 零碎中创立链接的两种办法,它们次要的区别如下:
1. 物理地位不同
硬链接和原文件地位雷同,应用同一个物理文件。而软链接则是一个非凡的文件,它蕴含指向原文件的指针。软链接和原文件能够位于不同的物理地位。
2. 链接数量不同
硬链接能够有多个,每个硬链接都是一个齐全独立的文件,能够和其余文件离开解决和删除。软链接只有一个,无论创立多少个软链接,它们都代表同一个原文件。
3. 权限和所有权信息不同
硬链接和原文件具备雷同的所有权和权限信息。软链接则应用指向原文件的路径名,因而它的所有权和权限信息可能与原文件不同。
4. 删除行为不同
如果删除原文件,对应的全副硬链接都将变为孤立文件。而如果删除原文件,保留软链接的文件名,文件名就会成为孤立的无用指针。
5. 跨文件系统
硬链接只能在同一文件系统中创立,而软链接则能够在不同的文件系统中创立。
因而,硬链接的应用场景较为非凡,个别用于复制复原被删除的系统文件。软链接则用于将一个目录中的文件连贯到另一个目录中。
文件内容查看、文件查找命令
touch
命令用于批改文件或目录的工夫属性
如果文件不存在,则会创立一个新的空文件。
touch 命令的语法格局如下:
touch [选项]... 文件...
罕用选项:
- -a:仅批改拜访工夫。
- -c:文件不存在时不创立文件。
- -m:仅批改批改工夫。
- -d:< 工夫戳 > 格局为:[[CC]YY]MMDDhhmm[.ss],能够应用 date 命令生成。
- -r:将某个文件或目录的工夫属性设为指定文件或目录的工夫属性。
示例:
- 创立一个空文件:
touch file1
- 创立多个空文件:
touch file1 file2 file3
- 批改文件的拜访和批改工夫:
touch -am file1
- 批改文件的拜访和批改工夫为指定工夫:
touch -d "2022-01-01 12:34:56" file1
- 将文件的拜访和批改工夫设为另一个文件的工夫:
touch -r file1 file2
cat
命令
用于连贯文件并打印到规范输入或复制一个或多个文件到指定目录,它也能够用于创立一个新文件,内容取自输出流(stdin)。
cat 命令语法格局如下:
cat [选项]... [文件]...
罕用选项:
- -n:显示每一行的行号。
- -E:在每行的结尾增加 $ 符号。
- -T:将 tab 键替换为 ^I。
- -A:同时应用 -nET 选项。
- -s:合并空行。
- -v:显示不可见字符。
示例:
- 打印文件内容:
cat file.txt
- 连贯多个文件并打印内容:
cat file1.txt file2.txt
- 创立新文件并增加内容:
cat > newfile.txt
Hello, world!
This is a new file.
Press Ctrl + D to exit.
- 显示文件并显示行号:
cat -n file.txt
- 显示文件并在每行的结尾增加 $ 符号:
cat -E file.txt
- 将多个文件合并为一个文件:
cat file1.txt file2.txt > newfile.txt
- 将一个文件的内容复制到另一个文件:
cat file1.txt > file2.txt
除此之外,cat 还能够和管道联合应用,比方:
- 从文件中查找关键字:
cat file.txt | grep "keyword"
- 查看过程信息:
ps -ef | cat
- 显示重定向前的规范输出:
cat < file.txt
more
命令用于分屏显示文件内容
通常用于查看长文件内容,比方查看日志文件或程序输入。它会依照屏幕大小将文件内容分成多个局部,逐屏显示,任意键翻页,q 键退出。
more 命令语法格局如下:
more [选项]... [文件]...
罕用选项:
- -d:显示每屏信息之间的空白行。
- -s:把间断多个空白行压缩成一行。
- -c:把 Ctrl-L 输入的控制字符转换成“^L”。
- -num:设置屏幕大小,num 为数字。
- +num:从第 num 行开始显示内容。
- /pattern:查找文件内容中第一个呈现的 pattern。
示例:
- 分屏显示文件内容:
more file.txt
- 显示文件内容并高亮显示关键字:
more -d file.txt | grep "keyword" --color=auto
- 从第 10 行开始显示文件内容:
more +10 file.txt
- 设置每屏显示的行数为 20:
more -20 file.txt
- 在文件内容中查找关键字:
more file.txt
/pattern
在进入查找模式后,输出要查找的关键字,查找到第一个符合条件的内容后,应用 SPACE 键进行翻页查找。
- 压缩多个间断空白行:
more -s file.txt
- 把 Ctrl-L 输入的控制字符转换成“^L”:
more -c file.txt
更多用法能够通过输出 man more
查看帮忙文档。
less
命令能够像 more
命令一样
用于在终端中浏览文件,然而相比拟更加弱小和不便。上面是 less
命令的具体用法:
- 根本语法:
less [文件名]
- 在
less
中罕用的一些快捷键:
空格键
:向下翻一页。Enter 键
:向下翻一行。b 键
:向上翻一页。Ctrl + F
:向下翻一屏。Ctrl + B
:向上翻一屏。G 键
:跳到文件开端。1G
:跳到文件结尾。/ 字符串
:搜寻字符串。n 键
:向下搜寻下一个。N 键
:向上搜寻上一个。q 键
:退出less
。
- 更多的操作参数:
-N
:在每行后面显示行号。-i
:疏忽搜寻时的大小写。-S
:将长行截断显示。-R
:将特殊字符转成可读字符。--help
:显示帮忙信息。--version
:显示版本信息。
- 与管道联合应用:
less
命令还能够与管道联合应用,这样能够将其余命令的输入后果通过 less
进行查看。
命令 | less
例如:ls -alh | less
将会把 ls
命令的输入通过 less
进行查看。
head
命令能够用于查看指定文件的前几行内容
默认状况下会显示文件的前 10 行。上面是 head
命令的具体用法:
- 根本语法:
head [选项] [文件名]
- 参数与选项:
-n < 行数 >
:指定显示文件的前几行,默认为 10 行。-c < 字节数 >
:指定显示文件的前几个字节。-q
:不显示文件名。-v
:始终显示文件名。
- 实例:
- 显示文件的前 10 行:
head filename
- 显示文件的前 5 行:
head -n 5 filename
- 显示文件的前 20 个字节:
head -c 20 filename
- 显示多个文件的前 10 行,并在每个文件前显示文件名:
head -v filename1 filename2
- 显示多个文件的前 10 行,不显示文件名:
head -q filename1 filename2
- 输入行数的限度:
在 head
命令中能够应用 -n
选项指定显示文件的前几行,然而 head
所显示的行数可能受到 /proc/sys/kernel/ngroups_max
的限度。如果想要更改这个限度,能够应用以下命令:
sudo sysctl -w kernel.ngroups_max=< 新的限度数 >
其中,< 新的限度数 >
能够依据须要更改。
tail
次要是用于查看文件内容
其默认参数为 -n 10
,即显示文件最初 10 行的内容。个别状况下,咱们会依据需要应用不同的参数选项,实现不同的查看形式。
根本语法:
tail [参数] [文件]
罕用参数:
-f
:示意实时输入文件内容的变动,罕用于查看日志文件等须要随时更新的文件-n +[line]
:示意输入文件从指定行号到结尾的内容-c [byte]
:示意输入文件的最初指定字节数的内容-q
:同时输入多个文件时,不显示文件头信息-v
:同时输入多个文件时,显示文件头信息
罕用示例:
- 显示文件最初 n 行的内容
tail -n [n] [filename]
- 实时查看文件内容的变动
tail -f [filename]
- 显示文件最初 n 个字节的内容
tail -c [n] [filename]
- 显示从指定行开始的所有内容
tail -n +[line] [filename]
- 同时查看多个文件的结尾内容,并显示文件名
tail -q -f [filename1] [filename2] ...
还有其余参数和选项能够查看 man 手册。注意事项:如果文件内容蕴含敏感信息,应配置权限以爱护其安全性,防止信息泄露。
grep
命令
次要是用于在文件中查找指定的字符串或模式,并将符合条件的行打印进去。它能够疾速地在大量日志或数据中查找须要的信息。
根本语法:
grep [选项] [模式] [文件名]
罕用参数:
-i
:示意疏忽模式中的大小写差别-v
:示意仅显示不匹配模式的行-n
:示意显示匹配模式所在的行号-c
:示意显示匹配模式的行数-w
:示意匹配整个单词,防止匹配到局部单词-r
:示意递归查找指定目录下的文件-A [n]
:示意显示匹配行及其后 n 行的内容-B [n]
:示意显示匹配行及其前 n 行的内容-C [n]
:示意显示匹配行及其前后 n 行的内容
罕用示例:
- 查找文件中蕴含指定字符串的行,并输入行内容
grep "pattern" [filename]
- 查找多个文件中蕴含指定字符串的行,并输入行内容和文件名
grep "pattern" [filename1] [filename2] ...
- 疏忽模式的大小写差别,并查找文件中蕴含指定字符串的行
grep -i "pattern" [filename]
- 匹配整个单词,并查找文件中符合条件的行
grep -w "pattern" [filename]
- 递归查找指定目录下蕴含指定字符串的文件,并输入行内容和文件名
grep -r "pattern" [directory]
- 查找文件中不蕴含指定字符串的行,并输入行内容
grep -v "pattern" [filename]
- 查找文件中蕴含指定字符串的行,并输入行号
grep -n "pattern" [filename]
- 查找文件中蕴含指定字符串的行数量
grep -c "pattern" [filename]
- 输入匹配行及其前后 n 行的内容
grep -A [n] "pattern" [filename]
grep -B [n] "pattern" [filename]
grep -C [n] "pattern" [filename]
还有其余参数和选项能够查看 man 手册。注意事项:如果文件内容蕴含敏感信息,应配置权限以爱护其安全性,防止信息泄露。
find
命令
是用于在文件系统中搜寻文件和文件夹。它有很多不同的选项和参数,上面是一些罕用的用法:
根本用法
查找当前目录下所有名为 file.txt
的文件:
find . -name file.txt
查找 /home
目录下所有后缀为 .log
的文件:
find /home -name "*.log"
查找大小大于 5MB 的所有文件:
find /home -size +5M
查找文件批改工夫在 7 天前的所有文件:
find /home -mtime +7
查找文件拜访工夫在 7 天内的所有文件:
find /home -atime -7
查找所有空目录:
find /home -type d -empty
进一步用法
查找当前目录下除 .git
目录以外所有的子目录:
find . -type d ! -name .git
查找当前目录下除 .log
文件以外的所有文件:
find . ! -name "*.log"
查找所有 .txt
文件,并执行 grep
命令查找其中蕴含关键字 example
的行:
find . -name "*.txt" -exec grep "example" {} \;
查找所有文件,并将它们复制到 /backup
目录下:
find . -type f -exec cp {} /backup \;
以上只是 find
命令的局部用法,还有很多其余选项和参数,能够应用 man find
命令查看 find
命令的残缺手册。
grep
和 find
的区别
都是 Linux 操作系统中比拟罕用的命令行工具,但它们的性能有所不同。
grep 命令用于在文件中搜寻指定的字符串,并显示蕴含该字符串的行。例如,能够应用 grep 命令搜寻一个文本文件中的特定单词或短语。grep 还能够应用正则表达式进行搜寻,使其更加灵便。
find 命令则用于搜寻文件系统中文件和目录,并能够依据多种条件进行搜寻。例如,能够应用 find 命令搜寻权限、日期、大小等方面合乎特定条件的文件。与 grep 不同的是,find 搜寻的是文件系统,而不是文件内容。
因而,grep 和 find 在性能和应用场景上有所不同。但两个命令都是 Linux 操作系统中十分实用和必要的工具。
文件压缩、解压命令
zip
命令常见压缩工具
它能够将文件或目录进行压缩,以减小磁盘空间占用,也不便进行文件传输。上面具体介绍 zip 命令的应用办法。
- 根本命令格局
zip [-options] zipfile file1 [file2 ...] [-x exclude_file1 [exlude_file2 ...]]
阐明:
zip
是 zip 命令的关键字。-options
是参数选项,例如:v、q、r 等。zipfile
是压缩之后的文件名。file1 [file2 ...]
是被压缩的文件名列表,能够有多个,用空格隔开。-x exclude_file1 [exclude_file2 ...]
是须要被排除的文件名列表。
- 常用命令选项
选项 | 形容 |
---|---|
-q |
静默模式。不显示压缩进度信息。 |
-r |
递归解决,将指定目录下所有文件和子目录一并处理。 |
-v |
显示压缩进度信息。 |
-f |
强行新建压缩文件,即笼罩已存在的同名压缩文件。 |
-u |
只压缩更改过的、新增加的文件,和新的子目录。 |
-m |
压缩后删除源文件和文件夹。 |
-n |
不压缩具备最新批改工夫的文件。 |
-T |
检测压缩文件的健康状况。 |
-d |
解压指标文件后,只更新比指标文件有改变的文件。 |
-x |
排除某些文件或目录。 |
- 实例演示
压缩文件
zip demo.zip demo.txt
- 将文件
demo.txt
打包成名字为demo.zip
的压缩包。
zip demo.zip demo1.txt demo2.txt test/
- 将文件
demo1.txt
、demo2.txt
以及目录test
打包成名字为demo.zip
的压缩包。
压缩目录
zip -r demo.zip demo
- 将目录
demo
打包成名字为demo.zip
的压缩包,并且以递归的形式压缩其子目录和文件。
排除文件
zip demo.zip demo.txt -x demo1.txt
- 将文件
demo.txt
打包成名字为demo.zip
的压缩包,并且排除文件demo1.txt
。
查看压缩包内容
unzip -l demo.zip
- 查看名字为
demo.zip
的压缩包内蕴含的文件列表。
解压缩文件
unzip demo.zip
- 解压名字为
demo.zip
的压缩包。
gzip
命令
能够将原始文件压缩成 gzip 文件格式,压缩后的文件名为.gz
。实际上,gzip 命令是 Linux 中最罕用的压缩命令之一。上面是 gzip 命令的详解。
- 根本语法:
gzip [filename]
- 罕用选项:
-d
: 解压缩-v
: 显示过程-r
: 压缩目录下的所有文件
- 罕用操作:
- 压缩文件:
gzip filename
- 解压缩文件:
gzip -d filename.gz
- 压缩目录下所有文件:
gzip -rv /path/to/dir
- 注意事项:
- gzip 命令只能压缩单个文件,如果须要压缩目录下所有文件,能够用
-r
选项进行递归操作。 - 压缩后的文件名为
.gz
,解压缩时须要指定压缩文件名。
tar
命令是一个打包工具
能够将文件或文件夹打包成一个独自的文件,不便备份和传输。上面是 tar 命令的详解:
- 根本语法:
tar [options] [target]
- 罕用选项:
-c
: 创立压缩包-x
: 解压缩-v
: 显示过程-f
: 指定压缩包的文件名-z
: 应用 gzip 压缩-j
: 应用 bzip2 压缩-t
: 查看压缩包内容-C
: 指定解压缩后的目录
- 罕用操作:
- 压缩文件:
tar -czvf filename.tar.gz folder/
- 查看压缩包内容:
tar -tvf filename.tar.gz
- 解压缩文件:
tar -xzvf filename.tar.gz
- 解压缩到指定目录:
tar -xzvf filename.tar.gz -C /path/to/dir
- 注意事项:
- 如果须要解压缩 zip 格局的压缩包,能够应用 unzip 命令
- 如果须要创立 rar 格局的压缩包,须要装置 rar 工具
- 在解压缩时,如果压缩包中有重名文件,会提醒笼罩确认。如果须要笼罩,能够加上选项
--overwrite
zip
、gzip
和 tar
的区别
是 Linux 零碎中的三种不同的压缩形式,它们之间的区别如下:
- zip 压缩
zip 压缩是一种跨平台的压缩形式,能够在不同的操作系统中应用。它具备压缩率高、压缩速度快的劣势,并且反对压缩多个文件和目录并保留目录构造。
- gzip 压缩
gzip 是一种常见的 Linux 文件压缩形式,它只能压缩单个文件,压缩后的文件名前面减少“.gz”后缀,能够应用 gunzip 命令对其解压缩。gzip 不反对压缩多个文件和目录,须要通过 shell 命令联合应用才可能实现这种性能。
- tar 压缩
tar 系列命令能够将多个文件或目录打包成一个文件,但并不进行压缩解决。tar 命令的长处是打包快、压缩率高,但它不具备压缩性能。为此,通常须要将 tar 包与其余压缩命令一起应用,如 gzip、bzip2 等。
总体来说,zip 压缩反对多平台应用,gzip 压缩只能用于 Linux 零碎中的单个文件压缩,而 tar 打包能够将多个文件汇总并保留目录构造。须要用到压缩性能时,经常要综合应用上述三种压缩形式,以适应不同的应用环境和需要。
文件目录权限、属组设置
chmod
命令
用于管制文件或目录的拜访权限。通过扭转文件或目录的权限属性,能够管制不同用户对文件或目录的操作权限,包含读、写、执行等。
chmod
命令的根本语法:chmod [OPTIONS] MODE FILE
其中,MODE 示意权限模式,能够应用数字或符号两种模式,FILE 是文件或目录的名称。
一、数字模式
在数字模式下,共有三个数字以及对应的每个数字有三位可用的字符,别离示意用户、组、其他人的权限。
其中,可用的字符及其对应的权限如下:
- r:读权限
- w:写权限
- x:执行权限
对于每个用户,三个字符别离示意读、写、执行的权限,这三个字符能够用一个数字来示意,如下所示:
数字 | 形容 | rwx 二进制值 |
---|---|---|
0 | 没有任何权限 | 000 |
1 | 执行权限 | 001 |
2 | 写权限 | 010 |
3 | 写和执行权限 | 011 |
4 | 读权限 | 100 |
5 | 读和执行权限 | 101 |
6 | 读和写权限 | 110 |
7 | 读、写和执行权限 | 111 |
例如,设置文件“example.txt”用户有读、写、执行权限,组和其他人只有读权限,能够应用以下命令:
chmod 744 example.txt
其中,数字“7”示意用户有读、写、执行权限,数字“4”示意组和其他人只有读权限。
二、符号模式
在符号模式下,共有以下字符:
- “u”示意用户;
- “g”示意用户组;
- “o”示意其他人;
- “a”示意所有用户;
- “+”示意增加权限;
- “-”示意删除权限;
- “=”示意设置权限,疏忽其余权限.
例如,设置文件“example.txt”用户有读、写、执行权限,组和其他人只有读权限,能够应用以下命令:
chmod u=rwx,g=r,o=r example.txt
其中,u=rwx 示意给用户赋予“读、写、执行”权限,g=r 示意给用户组赋予“读”权限,o=r 示意给其他人赋予“读”权限。
三、常见命令
- 755 权限设置
chmod 755 /xxx
或者
chmod u+rwx,g=rx,o=rx /xxx
- 777 权限设置
chmod 777 /xxx
或者
chmod u+rwx,g+rwx,o+rwx /xxx
- 对某一文件类型的文件增加权限
chmod u+x *.sh
以上是常见的一些 chmod 命令的应用办法,应用 chmod 命令能够灵便管制文件或目录的拜访权限。但须要留神的是,要谨慎更改文件或目录的权限,免得造成意外的损失。
chown
命令用于批改文件或目录的拥有者
命令格局:
chown [选项] <owner>[:group] <file>
其中 [选项]
能够是以下其中之一:
-c
:只有在文件的拥有者的确产生了扭转,才输入提示信息。-f
:即便该操作波及了无奈批改的文件,也不输入错误信息。-R
:递归地批改指定目录及其子目录下的所有文件和目录的所有者。-v
:总是输入提示信息。
<owner>
为新的拥有者用户名或用户 ID,<group>
为新的所属组名或组 ID。
应用 :
分隔 <owner>
和 <group>
时,<group>
能够省略,示意不变更所属组。
chown user:group file.txt # 将 file.txt 的所有者设置为 user,所属组设置为 group
chown user file1.txt file2.txt # 将 file1.txt 和 file2.txt 的所有者都设置为 user
chown user: file.txt # 将 file.txt 的所有者设置为 user,所属组不变
例如,将 file.txt
的所有权转移给用户 better
:
chown better file.txt
将 file.txt
的所有权转移给用户 better
并设置所属组为 xiaoxin
:
chown better:xiaoxin file.txt
将目录 /var/www
下的文件和子目录的所有权转移给用户 apache
和组 apache
:
chown -R apache:apache /var/www
留神,批改文件的拥有者须要具备相应的权限,例如,只有文件所有者、文件所在组的用户或超级用户(root)能够变更文件的拥有者。
sudo
命令
能够使普通用户以超级用户 (例如 root) 的权限来执行命令。sudo 是英语 Superuser Do 的缩写,其根本语法为:
sudo [选项] [要运行的命令]
当普通用户执行 sudo 命令后,零碎会要求用户输出本人的明码,验证胜利后就能够长期获取超级用户的权限来运行命令。
罕用选项:
- -s,应用 shell 来执行命令;
- -u,指定以某个用户的权限来执行命令;
- -i,重置环境变量;
- -E,放弃环境变量。
例如:
sudo apt-get update # 应用超级用户权限更新软件包
sudo -u user whoami # 以 user 的权限运行 whoami 命令
sudo -s # 以超级用户权限关上 shell
须要留神的是,在应用 sudo 命令时应该确保必要的安全措施,例如不要在命令中应用任何未经信赖的变量或参数,避免命令注入等攻打。同时,也应该防止频繁地应用 sudo 命令,以避免误操作或平安问题。
查看零碎以后用户
whoami
命令
用于查看以后用户名。当用户在命令行终端中执行“whoami”命令,终端会返回以后用户的用户名。
whoami 命令没有参数,也没有任何选项,其根本语法为:
whoami
在 Linux 零碎中,whoami 命令通常用于脚本或命令中获取以后用户名,或者在查看某些文件或目录的权限时确定以后用户是否具备拜访权限。
例如,假如用户在终端中应用 whoami 命令查问以后的用户名为“user”,能够在脚本中应用如下形式获取以后的用户名:
#!/bin/bash
echo "以后用户为:$(whoami)"
须要留神的是,whoami 命令仅返回以后用户的用户名,并不提供任何无关该用户的详细信息,如组、UID 等信息。如果须要获取更多的用户信息,能够应用其余的命令如 id、finger 等。
id
命令
用于显示以后用户的 UID(用户 ID)和 GID(组 ID)以及相干的信息。id 命令的输入格局默认为:uid=xxx(username) gid=xxx(groupname) groups=xxx,xxx,xxx。
id 命令有一些选项能够用来显示不同的信息,罕用的选项如下:
- -u:仅显示以后用户的 UID;
- -g:仅显示以后用户所属的组 ID(GID);
- -G:显示以后用户所属的所有组 ID(以逗号分隔),包含附加组;
- -n:与 - g 选项一起应用,仅显示以后用户所属的组名;
- -r:仅显示以后用户的实在 UID(仅在以 root 用户的权限运行 id 命令时才无效)。
例如,上面的命令应用 id 命令显示以后用户的 UID 和 GID:
id
能够应用 - u 选项仅显示以后用户的 UID:
id -u
应用 - r 选项能够输入以后用户的实在 UID:
id -r
应用 - G 选项能够显示以后用户所属的所有组 ID:
id -G
须要留神的是,如果用户是在 su 或 sudo 命令的环境下运行 id 命令,则所显示的信息是 su 或 sudo 用户的信息,而不是以后用户的信息。
finger
命令
用于查看指定用户的信息,包含用户 ID、名称、Shell、登录工夫、邮件情况等。应用 finger 命令能够不便地查看零碎上其它登录用户的信息。
finger 命令的语法如下:
finger [用户名]
如果没有指定用户名,则 finger 命令默认会显示以后登录用户的信息。
上面是 finger 命令罕用的选项:
- -s:缩短输入字符串;
- -m:同时输入邮件信息;
- -l:以更具体的格局输入用户信息;
- -p:以简洁格局输入用户信息;
- -F:应用残缺的输入格局;
- -i:如果用户正在近程登录,则输入 IP 地址。
例如,能够以更具体的格局查看用户 test1 的信息:
finger -l test1
也能够增加 - s 选项来缩短输入字符串:
finger -ls test1
如果用户存在未读邮件,则能够增加 - m 选项来一并查看邮件信息:
finger -lm test1
须要留神的是,应用 finger 命令查看其它用户信息须要有足够的权限。在一些安全性较高的零碎中,管理员可能会限度普通用户应用 finger 命令。
查问可执行文件门路的命令
which
命令
是 Linux 和 Unix 零碎上的一个实用工具,用于查找并显示给定命令的绝对路径。
命令格局为:
which [选项] <command>
其中 [选项]
可选,能够是以下其中之一:
-a
:显示所有匹配的门路。-i
:疏忽大小写。-f
:输入所有的可能地址,而不仅仅是第一个。-h
:不要输入属于子命令的帮忙信息。-n
:只在 PATH 变量指定的目录中查找(不包含当前目录)。-P
:应用 PATH 环境变量,并且不容许应用哈希表缓存命令地位。-p
:如同应用 PATH 变量一样的形式查找命令,然而不会执行任何连锁链接。
<command>
是须要查找的命令。
例如,要查找命令 ls
的绝对路径,能够运行以下命令:
which ls
命令的输入为:
/bin/ls
如果命令不存在,则不会返回任何内容。
应用 -a
选项能够列出所有匹配的门路。例如,查找 python
命令的所有门路:
which -a python
这将输入相似于以下内容的所有匹配门路:
/usr/bin/python
/usr/local/bin/python
应用 -i
选项能够疏忽命令名称的大小写。例如:
which -i ls
应用 -f
选项能够显示所有可能的地址,而不仅仅是第一个。例如:
which -f ls
应用 -p
选项能够防止查找其余地位的同名命令。例如:
which -p ls
which
命令能够帮忙咱们确定命令在哪里,并且可能会有助于解决同名命令的问题。
whereis
命令
是 Linux 和 Unix 零碎上的一个实用工具,用于定位二进制程序、源码以及帮忙文档的地位。
命令格局为:
whereis [选项] <command>
其中 [选项]
可选,能够是以下其中之一:
-b
:只搜寻二进制程序。-m
:只搜寻帮忙文档。-s
:只搜寻源码文件。-u
:搜寻未知类型文件。-B < 目录 >
:笼罩二进制程序搜寻的零碎默认门路,指定一个新的门路。-M < 目录 >
:笼罩帮忙文档搜寻的零碎默认门路,指定一个新的门路。-S < 目录 >
:笼罩源码搜寻的零碎默认门路,指定一个新的门路。
<command>
是须要查找的命令。
例如,要查找命令 ls
的二进制程序、帮忙文档和源码文件的地位,能够运行以下命令:
whereis ls
命令的输入为:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
这示意二进制程序存储在 /bin/ls
中,帮忙文档存储在 /usr/share/man/man1/ls.1.gz
中。
应用 -b
、-m
和 -s
选项能够指定须要搜寻的文件类型。例如,要搜寻命令 ls
的二进制程序地位,能够运行以下命令:
whereis -b ls
这将输入相似于以下内容的二进制文件门路:
/bin/ls
应用 -B
、-M
和 -S
选项能够笼罩零碎默认搜寻的门路。例如,要搜寻命令 ls
的源码文件地位,并笼罩默认搜寻门路,能够运行以下命令:
whereis -S /my/source/path ls
这将输入该命令的源码文件门路,该门路为 /my/source/path/ls.c
。
whereis
命令不会搜寻命令的理论地位。对于这种状况,能够应用 which
命令来查找可执行文件的地位。
whereis
命令能够帮忙确定二进制程序、帮忙文档和源码的地位,并且可能会有助于解决文件定位问题。
which
和 whereis
命令的区别
都是用于查找命令执行文件的工具,但它们之间有一些区别。
which
命令能够找到命令所在的具体门路,而whereis
命令可能查找到命令所在的可执行文件、二进制文件、帮助文件以及源代码等相干文件的地位。which
命令只能查问以后登录用户的执行门路,而whereis
命令能够搜寻整个零碎,包含PATH
环境变量所蕴含的门路以外的门路。which
命令只能查找可执行文件,而无奈查找源代码文件和帮助文件等非可执行文件,而whereis
命令能够查找可执行文件、源代码文件和帮助文件等所有相干文件。
举个例子,如果想要查找 ls
命令所在的门路,能够应用以下命令:
应用 which
命令:
which ls
输入可能是:
/bin/ls
这示意 ls
命令的可执行文件在 /bin/
目录下。
应用 whereis
命令:
whereis ls
输入可能是:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
这示意 ls
命令的可执行文件在 /bin/
目录下,而帮助文件则在 /usr/share/man/man1/
目录下。
总之,which
命令次要用于查找可执行文件,而 whereis
命令则不仅能够查找可执行文件,还包含相干文件的地位。
系统配置、网络通信状态检测命令
ifconfig
命令
(interface configuration)用于查看、配置和管制网络接口。该命令罕用于设置 IP 地址、网关、子网掩码等网络配置信息,以及启用或禁用网络接口等操作。
ifconfig 命令的语法如下:
ifconfig [网络接口名称] [选项]
其中,网络接口名称指定了要配置或查看的网络接口,选项用于指定 ifconfig 要执行的特定操作。如果不指定网络接口名称,则默认显示出所有可用的网络接口及其配置信息。
ifconfig 命令罕用的选项包含:
- up:启动某个网络接口。
- down:敞开某个网络接口。
- inet:查看某个网络接口的 IP 地址。
- netmask:查看某个网络接口的子网掩码。
- broadcast:查看某个网络接口播送地址。
- hw:查看某个网络接口硬件地址或 MAC 地址。
- mtu:查看或批改某个网络接口的最大传输单元(MTU)大小。
以下以常见的 ifconfig 命令选项为例,介绍如何查看和配置网络接口。
- 查看所有网络接口及其配置信息:
ifconfig
- 查看指定网络接口的 IP 地址信息:
ifconfig eth0
- 设置指定网络接口的 IP 地址、子网掩码、网关:
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
- 禁用某个网络接口:
ifconfig eth0 down
须要留神的是,ifconfig 命令须要具备特权用户权限才可能执行,因而须要应用 sudo 或 root 用户来执行。此外,ifconfig 命令曾经被 ip 命令取代,倡议应用 ip 命令代替 ifconfig 命令进行网络配置。
ifconfig
和 ipconfig
命令的区别
- ifconfig 是在 Unix 和 Linux 零碎上应用的命令,而 ipconfig 则是在 Windows 零碎上应用的命令。
- 它们的作用都是查看网络接口的配置和信息,例如 IP 地址、网关、物理地址等。
- 然而两者的输入格局和内容略有不同。ifconfig 能够批改网络接口的配置,而 ipconfig 不能。
- 另外,ifconfig 在新版本的 Linux 中曾经逐步被 ip 命令所代替。
ping
命令
用于向指定的 IP 地址或域名发送数据包,并计算从发送到接管的时间延迟。该命令通常用于测试本地与近程主机之间是否能够失常通信以及网络连接的品质如何。
ping 命令的语法如下:
ping [选项] [指标主机]
其中,指标主机能够是 IP 地址或域名,选项包含:
- -c : 设置发送数据包数量(默认为有限次)。
- -i : 设置发送数据包的工夫距离(单位为秒)。
- -w : 设置期待响应的超时工夫(单位为秒)。
- -s : 设置发送数据包的大小(单位为字节)。
- -q : 只显示要害信息,不显示统计数据。
- -v : 显示具体的调试信息。
默认状况下,ping 命令会始终发送数据包,直到手动进行或网络连接中断。每次发送数据包后,命令会显示接管到数据包的数量、失落数据包的数量、时间延迟等信息。同时,还会显示每个数据包往返所需的工夫和别离往返的最小、最大、均匀工夫等统计数据。
以下是几个 ping 命令的例子:
- 指定指标主机 IP 地址并发送 4 个数据包:
ping -c 4 192.168.0.1
- 指定指标主机域名并显示具体的调试信息:
ping -v www.baidu.com
- 指定指标主机 IP 地址并设置每隔 1 秒发送一个数据包:
ping -i 1 192.168.0.1
须要留神的是,ping 命令须要具备特权用户权限才可能执行,因而须要应用 sudo 或 root 用户来执行。
netstat
命令
是一款零碎网络工具,用于显示各种网络相干信息,包含网络连接、路由表、网络接口状态等。其罕用的命令包含:
netstat -a
:显示所有已建设的连贯和监听端口。netstat -n
:不进行名称解析,应用 IP 地址显示。netstat -p
:显示过程信息,包含过程 ID 和过程名。netstat -r
:显示路由表信息。netstat -s
:显示各种网络统计信息,包含 TCP、UDP、ICMP 协定等。netstat -t
:仅显示 TCP 连贯信息。netstat -u
:仅显示 UDP 连贯信息。netstat -l
:仅显示监听状态的连贯列表。
通过 netstat 命令,能够疾速理解计算机的网络状态,以便进行故障排查和网络优化。
零碎过程、内存查看命令
ps
命令
是一个用于查看过程状态的工具,能够列出以后零碎中正在运行的过程信息。上面是 ps 命令的详解:
- 命令格局
ps [选项]
- 罕用选项
-a
显示所有过程,包含其余用户的过程-u
以用户为次要关键字显示过程列表-x
显示没有管制终端的过程-e
显示所有过程,同-A
-f
显示过程的详细信息-l
长格局输入
- 罕用输入字段
PID
过程 IDPPID
父过程 IDUSER
过程的所有者%CPU
过程的 CPU 占用率%MEM
过程的内存占用率VSZ
过程的虚拟内存大小RSS
过程的固定内存大小STAT
过程的状态标识符START
过程的启动工夫TIME
过程的累计 CPU 工夫
- 常用命令示例
ps aux
显示所有过程的详细信息,包含过程应用的 CPU 和内存信息ps aux --sort=-%cpu | head
显示 CPU 占用率最高的 10 个过程ps -ef | grep nginx
查找以nginx
结尾的过程信息ps -p 12345
查看特定过程号为 12345 的过程详细信息
总之,ps 命令是一个十分有用的查看过程信息的命令,能够帮忙用户疾速精确地理解任何正在运行的过程的流动和状态。
kill
命令
用于向指定的过程发送信号,其根本的语法如下:
kill [options] PID
其中,PID 指的是须要发送信号的过程 ID,options 为命令的参数选项,罕用的选项包含:
- -l:列出零碎反对的所有信号;
- -s:指定发送的信号类型;
- -a:向所有过程发送信号,除了 init 过程(PID 为 1)和 kill 命令自身的过程。
罕用的信号类型包含:
- SIGTERM(15):默认信号,申请过程终止,过程能够进行一些清理操作后平安退出;
- SIGKILL(9):强制终止过程,过程将无奈保留其状态;
- SIGHUP(1):挂起信号,当用户从零碎退出时,可向所有过程发送该信号,要求它们从新读取其配置文件,个别用于重新启动一些服务过程。
例如,如果要终止过程号为 1234 的过程能够应用以下命令:
kill 1234
如果须要强制终止该过程,能够应用 -9 选项:
kill -9 1234
除了依照 PID 来杀死过程,还能够应用过程名来杀死过程,例如,如果须要终止名为 httpd 的过程,能够应用以下命令:
pkill httpd
上述命令会向所有名为 httpd 的过程发送 SIGTERM 信号,如果须要强制终止,能够应用 - 9 选项:
pkill -9 httpd
须要留神的是,kill 命令可能会对系统造成不良影响,因而应用 kill 命令时应该审慎行事,并且尽可能的防止强制终止过程。
du
命令
是 Linux 零碎中用于查看目录或文件所占用磁盘空间大小的命令,用于剖析文件和目录的磁盘空间应用状况。上面是 du 命令的详解:
- 命令格局
du [选项] [文件或目录]
- 罕用选项
-h
人性化显示文件大小-s
只显示总计大小-a
显示所有文件和目录的磁盘应用大小,而不仅仅是目录
- 常用命令示例
du -h filename
显示文件或目录所占磁盘空间大小,并以 ”KB”、”MB” 或 ”GB” 为单位显示du -s directory
显示目录的总大小du -ah directory
显示目录中所有文件和子目录的大小,其中目录以 ”/” 结尾
须要留神的是,du 命令会递归查问目录下的所有文件并计算磁盘空间,因而在查问大量文件的目录时可能会比拟耗时。在应用 du 命令时,经常须要联合其余命令来过滤掉不须要的目录和文件,以便更清晰地理解磁盘空间的应用状况。
df
命令
是 Linux 零碎中用来显示文件系统磁盘空间应用状况的命令。它显示磁盘分区的可用空间和已用空间等信息。上面是 df 命令的详解:
- 命令格局
df [选项] [目录或文件]
- 罕用选项
-h
以人类可读的形式显示磁盘使用量-T
显示文件系统类型-i
显示 inode 应用状况而不是磁盘应用状况-a
显示所有文件系统
- 常用命令示例
df -h
显示文件系统的磁盘空间应用状况,并以 ”KB”、”MB” 或 ”GB” 为单位显示df -T
显示文件系统的类型,例如 ext4、ntfs 等df -i
显示文件系统的 inode 应用状况df -ha
显示所有文件系统,并对闲暇和已用空间进行汇总
须要留神的是,df 命令只能用于显示已挂载的文件系统的磁盘空间应用状况。如果文件系统没有挂载,则 df 命令无奈显示其空间应用状况。如果要显示尚未挂载的文件系统的空间应用状况,则能够应用其余工具,如 lsblk 和 blkid 等。
top
命令
是一个动静实时的过程监视器,能够实时显示零碎过程的相干信息,如过程 PID、过程的 CPU 占用、内存占用、运行工夫等。通过 top 命令能够实时监视系统资源的应用状况,帮忙查找和解决零碎性能问题。
上面是 top 命令的一些罕用参数和应用办法:
- -d seconds:指定 top 命令刷新间隔时间,默认为 3 秒。
- -u username:指定 top 命令只显示指定用户的过程信息。
- -p pid:指定 top 命令只显示指定过程的信息。
- -c:显示残缺的过程命令行,而不是只显示过程名称。
- -H:以过程的层次结构形式显示过程。
- -M:以内存使用量进行排序。
- -P:以 CPU 占用率进行排序。
- -n:指定要显示的过程数目。
- -i:不显示闲置或僵死过程。
top 命令的界面分为两局部,别离是零碎摘要和过程列表。在零碎摘要中,能够看到零碎的一些根本信息,例如负载平均值、物理内存的应用状况、替换分区的应用状况等。而在过程列表中,则会列出零碎中所有过程的相干信息,例如过程的 PID、占用 CPU 的百分比、内存使用量、过程状态等。
通过 top 命令能够实时监视系统中过程的运行状况,从而及时发现并解决零碎性能问题。同时,通过后面介绍的 top 命令的参数,能够对 top 命令进行更加具体的配置,晋升监督成果。
番外篇(应用命令行发送申请、近程登录、关上文件或应用程序)
curl
命令
curl
是一个十分罕用的命令行工具,用于向服务器发送申请并获取响应。它反对泛滥协定(包含 HTTP、FTP、SMTP 等),能够获取和发送数据,还能够用于调试和测试网络申请。
以下是 curl 命令的一些常见选项和用法:
-
用法:
curl [选项...] [URL...]
选项:
-O
:将 URL 指定的文件下载到当前目录。-o
< 文件名 >:用指定的文件名将 URL 指定的文件下载到当前目录。-u
< 用户: 明码 >:设置 HTTP 认证用户名和明码。-I
:仅显示响应头。 -
POST 申请:
curl -X POST -d "参数" URL
-X
:指定申请办法,这里是 POST。-d
:指定 POST 申请的参数。 -
自定义 HTTP 头:
curl -H "Content-Type: application/json" URL
-H
:指定 HTTP 头信息,这里是 Content-Type。 -
上传文件:
curl -F "file=@文件门路" URL
-F
:指定上传文件。 -
下载多个文件:
curl -O URL1 -O URL2
-O
:下载 URL 指定的文件。 -
显示进度条:
curl -# URL
-#
:显示进度条。 -
HTTPS 申请:
curl -k URL
-k
:勾销 SSL 验证。
示例代码如下:
- 下载单个文件
curl -O http://example.com/file.zip
-O
示意应用原文件名(包含扩展名)保留文件,如果要指定文件名,能够应用 -o
选项。
- 下载多个文件
curl -O http://example.com/file1.zip -O http://example.com/file2.zip
- 显示申请和响应的头信息
curl -v http://example.com
-v
示意显示详细信息,包含申请和响应的头信息。
- 发送 POST 申请
curl -d "username=liaoxiaoxin&password=123456" http://example.com/login
-d
示意发送 POST 申请,并将 username
和 password
作为参数发送给服务器。
- 发送 JSON 数据
curl -X POST -H "Content-Type: application/json" -d '{"name":"liaoxiaoxin","age": 18}' http://example.com/api
-H
示意设置 HTTP 头信息,-d
示意发送 JSON 数据,也能够间接应用--json
- 上传文件
curl -F "file=@/path/to/your/file" http://example.com/upload
-F
示意上传文件,file=@/path/to/your/file
指定要上传的文件门路。
- 勾销 SSL 验证
curl -k https://example.com
-k
示意勾销 SSL 验证,如果你的申请的证书是自签名的,能够应用该选项。
- 应用 HTTP 代理
如果您的 Linux 零碎须要应用 HTTP 代理拜访内部网络,则能够应用以下命令:
curl --proxy http://proxyserver:8080 https://www.example.com/
- 限度下载速度
有时,您可能会在下载大型文件时遇到网络拥塞。在这种状况下,您能够应用 curl 来限度下载速度。例如:
curl --limit-rate 100k https://www.example.com/large_file.zip -o large_file.zip
上述命令将下载 large_file.zip 文件,但限度下载速度为 100KB/ 秒。
其余阐明
除了上述罕用选项和示例以外,curl
命令还反对泛滥其余选项。用户能够通过 man curl
命令或者 curl --help
命令来获取残缺的阐明文档。
ssh
命令
SSH(Secure Shell)是一种平安的网络协议,用于在近程计算机之间进行加密的通信。SSH 容许你通过平安的管道从一台计算机近程连贯到另一台计算机,而不会泄露敏感信息。
以下是罕用的 SSH 命令及其用处:
-
ssh:通过 SSH 连贯到近程计算机。例如:
ssh username@remote-hostname (应用用户名连贯近程计算机) ssh -p <port_number> username@remote-hostname (应用指定端口号连贯近程计算机,默认端口为 22)
-
scp:复制文件到近程计算机或从近程计算机复制文件。例如:
scp localfile.txt username@remote-hostname:/path/to/remote/directory (把本地文件复制到近程计算机) scp username@remote-hostname:/path/to/remote/file /path/to/local/directory (从近程计算机复制文件到本地计算机)
-
ssh-keygen:生成 SSH 密钥对以进行身份验证。例如:
ssh-keygen -t rsa -b 4096 (生成一个 RSA 密钥)
-
ssh-copy-id:将 SSH 公钥复制到近程计算机,免得在每次连贯近程计算机时输出明码。例如:
ssh-copy-id username@remote-hostname (复制 SSH 公钥到近程计算机)
-
ssh-agent:治理 SSH 代理的操作系统服务。例如:
eval $(ssh-agent) (启动 SSH 代理) ssh-add ~/.ssh/id_rsa (将 SSH 私钥增加到代理)
以上是罕用的 SSH 命令,对于更多的 SSH 选项和用法,您能够通过查看 SSH 的官网文档来理解更多。
open
命令
在 MacOS 中,open 命令用于关上一个文件或目录,它还能够指定打开方式和权限等。上面是 open 命令的具体解释:
语法:
open [选项] [文件或目录]
选项:
-a
:指定应用程序关上文件-e
:应用 TextEdit 编辑器关上文件-t
:应用默认编辑器关上文件-F
:强制应用图形界面关上文件-n
:在新窗口中关上文件-W
:期待应用程序退出后再返回终端
示例:
- 关上文件
open example.txt
在默认的编辑器中关上文件example.txt
。
- 关上目录
open /usr/local
在 Finder 中关上 /usr/local
目录。
- 指定应用程序关上文件
open -a "Visual Studio Code" example.txt
用 Sublime Text 应用程序关上文件example.txt
。
- 在新窗口中关上文件
open -n example.txt
在新的窗口中关上文件example.txt
。
总结:
open
命令是一个十分实用的命令,在关上文件或目录时可能进步咱们的工作效率。应用该命令,咱们能够疾速关上文件或目录,并指定相应的参数,实现更加简单的操作。
start
命令
是一个 Windows 命令行下的工具,次要用于启动文件或应用程序。上面是 start
命令的详解:
start [/wait] [/d< 目录 >] [/b] [/i] [/min] [/max] [< 程序 / 文档名 >] [< 参数 >]
-
[/wait]
- 期待应用程序完结后再退出。
-
[/d< 目录 >]
- 指定启动程序的目录。
-
[/b]
- 在新的控制台窗口中启动应用程序。
-
[/i]
- 在以后控制台窗口中启动应用程序。
-
[/min]
- 启动应用程序时最小化窗口。
-
[/max]
- 启动应用程序时最大化窗口。
-
[< 程序 / 文档名 >]
- 指定要启动的程序或文档。
-
[< 参数 >]
- 启动程序时附加的参数。
例如,要关上记事本程序 notepad.exe,能够应用以下命令:
start notepad.exe
如果要关上位于 D 盘目录的 Word 文档 example.docx 并最小化窗口,能够应用以下命令:
start /min "D:\example.docx"
如果启动 Word 程序,打开文档 example.docx,并期待 Word 敞开后再退出程序,则能够应用以下命令:
start /wait winword.exe "D:\example.docx"
启动程序能够应用残缺门路,也能够应用相对路径。对于应用相对路径的状况,操作系统会在环境变量 PATH
中查找文件所在门路。如果在门路中找不到该文件,则会提醒找不到该文件的谬误。
在应用相对路径时,请留神以后所处目录的地位。如果要启动的程序在当前目录下,则能够间接应用文件名。如果不在当前目录下,则须要在文件名后面加上相对路径,例如 ..\Programs\myprogram.exe
。在应用相对路径时,也能够通过设置/d
选项来指定程序所在的目录。
如果要启动的程序所在目录曾经在环境变量 PATH
中,那么在应用 start
命令时就能够只应用程序名,而不须要指定程序的残缺门路。例如,如果 D:\Program Files
曾经在 PATH
环境变量中,那么启动 notepad.exe
能够应用以下命令:
start notepad.exe
node 中应用child_process
在 Node.js 中,能够应用 child_process
模块来通过命令行关上文件或者程序。具体方法如下:
- 首先在代码中引入
child_process
模块:
const {exec} = require("child_process");
- 而后应用
exec
办法来执行命令,例如关上一个 txt 文件:
exec("start file.txt");
这个命令会调用操作系统默认的程序来关上 file.txt 文件。
留神,这里的 start
命令是 Windows 零碎中的一个非凡命令,它能够启动一个内部程序,如果你要在其余操作系统上关上文件,须要查找对应的命令,比方,MacOS 应用的是 open
命令。
另外,如果要关上某个具体的程序,能够在命令中写上程序的残缺门路,例如:
exec("start C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe");
这样就会启动 Google Chrome 浏览器。
当然,也能够通过将下面的命令写入 Batch 或者 Shell 脚本文件中,而后应用 exec
来运行这个脚本文件,实现一些简单的命令行操作。
code
命令
是一个在 Linux 上运行的开源代码编辑器,由 Microsoft 开发。它是基于 Electron 框架构建的,具备跨平台、轻量级和疾速的特点。上面具体介绍一下 code
命令的应用:
装置
要在 Linux 上应用 code
,须要先从官网下载对应的安装包,而后依据对应的操作系统进行装置。装置实现后,就能够在终端中运行code
命令来启动编辑器。另外,在 Linux 上,装置 code
的同时,还会主动装置一个名为 code-insiders
的命令,这个命令能够用来装置和启动 Visual Studio Code Insiders。
罕用参数
-d /path
:指定程序将应用的数据目录。默认状况下,code
将应用~/.config/Code
目录作为数据目录。-r
:强制从过程从新关上文件,而不是将文件附加到已有的过程中。-v
:输入版本信息,并退出。-h
:输入帮忙信息,并退出。
罕用操作
- 关上文件:
code filename
- 在指定目录中关上 Visual Studio Code:
code /path/to/directory
- 关上曾经关上的 Visual Studio Code:
code -r filename
- 在 Visual Studio Code 中关上当前目录:
code .
此外,还能够通过在命令前面传递多个文件名来关上多个文件,例如:
code file1.py file2.py
这个命令将同时关上 file1.py
和file2.py
这两个 Python 文件。
总之,code
命令是一个十分实用的代码编辑器命令,能够帮忙咱们疾速关上和编辑代码文件。
PS:首先,为看到这里的小伙伴点个赞,你们真的很棒哦,能在百忙之中把这么长的一篇文章急躁读完,最初,心愿每一位读完这篇文章的小伙伴或多或少都有一些播种吧!
本文由 mdnice 多平台公布