前言
推荐一个网站给想要了解或者学习人工智能知识的读者,这个网站里内容讲解通俗易懂且风趣幽默,对我帮助很大。我想与大家分享这个宝藏网站,请点击下方链接查看。 https://www.captainbed.cn/f1
Linux下的基本指令涵盖了文件管理、文本处理、系统信息、网络配置和权限管理等。
Linux下有一个重要的注意点就是一切皆文件,键盘、显示器当文件来看
Linux的基本指令都是在\bin
的目录下
一、ls 指令
语法
ls [选项] [目录或文件]
功能
对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项
-a
列出目录下的所有文件,包括以.
开头的隐含文件。-d
将目录象文件一样显示,而不是显示其下的文件。 如:ls –d
指定目录-i
输出文件的i
节点的索引信息。 如ls –ai
指定文件-k
以k
字节的形式表示文件的大小。ls –alk
指定文件-l
列出文件的详细信息。-t
以时间排序。-R
列出所有子目录下的文件。(递归)
举例
ls -l
注意要点
关于拼接
ls
指令的选项可以拼接在一起,并且顺序可以随意排列,例如:
ls -l -a
可以简写为ls -la
或ls -al
ls -l -a -h
可以简写为ls -lah
……
这样做可以减少输入的字符,使命令更简洁。
关于 -a
是Linux系统中,以".
"开头的文件和文件夹被视为隐藏文件或隐藏文件夹。这些文件和文件夹默认不会在普通的文件管理器中显示,以防止用户意外地删除或修改系统文件。
要显示所有文件,包括隐藏文件,可以在ls
命令中使用-a
选项。例如,ls -a
命令将显示所有文件和隐藏文件。
关于文件
文件可以被认为是由文件内容和文件属性两部分组成的。文件内容是存储在文件中的数据,可以是文本、图像、音频等。文件属性包括文件的名称、大小、权限、创建时间、修改时间等信息。
文件内容是文件的实际数据,它决定了文件的类型和内容。文件属性则描述了文件的元数据,包括文件的基本信息和访问权限。
在访问文件时,操作系统会根据文件属性来判断用户是否有权进行读取、写入或执行操作。文件属性也可以用于文件的组织和管理,例如根据文件属性进行搜索、排序和过滤等操作。
即:我们可以得到一个道理,我们创建一个文件,虽然这个文件里没有内容,但是文件属性是需要占据空间的,即空文件也是有存储空间的
ls与/的联用
ls与根目录
当使用ls
命令与/
联用时,它将列出根目录下的所有文件和子目录。
例如,输入命令"ls /
"会列出根目录下的所有文件和子目录。
ls与任意文件夹
使用ls
命令与根路径(/
)可以查看任意文件夹的内容。
例如,要查看根目录下的名为"test
"的文件夹中的内容,可以使用以下命令:
ls /test
这将列出test
文件夹中的所有文件和子文件夹。
同样,如果要查看根目录下的多层级子目录中的内容,可以使用相同的方式。例如,要查看根目录下的test
文件夹中的sub
文件夹中的内容,可以使用以下命令:
ls /test/sub
这将列出sub
文件夹中的所有文件和子文件夹。
ls与常用选项与路径
ls
命令与一些常用选项结合使用,并配合根路径(/
),可以进一步定制和筛选要显示的文件和目录。
以下是一些常用选项与/的联用示例:
- 列出根目录下的所有文件和目录,包括隐藏文件和目录:
ls -a /
- 列出根目录下的文件和目录,并以长格式显示详细信息:
ls -l /
- 列出根目录下的文件和目录,并按修改时间降序排序:
ls -lt /
- 列出根目录下的文件和目录,并逆序排序:
ls -r /
- 递归列出根目录下的所有文件和目录:
ls -R /
- 仅列出根目录下的目录:
ls -d /*/
这些只是示例,ls命令的选项非常丰富,你可以根据自己的需要结合选项和根路径来达到想要的结果。使用man ls
命令可以查看完整的选项列表和用法说明。
ls -d与ls -ld
ls -d
命令用于显示目录的信息,而ls -ld
命令用于显示目录本身的信息。
具体来说,ls -d
命令用于列出指定目录的名称,而不显示其内容。例如,如果要查看当前目录中所有的子目录名称,可以使用ls -d
*/命令。
ls -ld
命令用于显示指定目录的详细信息,包括权限、所有者、组、文件大小、修改日期等。例如,要查看当前目录的详细信息,可以使用ls -ld .命令。
总结来说,ls -d
命令用于显示目录的名称,而ls -ld命令用于显示目录本身的详细信息。
ls与ll
ls
是Linux系统中的一个命令,用于列出当前目录中的文件和文件夹。它只显示文件和文件夹的名称。
ll
也是Linux系统中的一个命令,实际上是ls -l
的简写。它除了显示文件和文件夹的名称外,还显示了更多的详细信息,例如文件大小、修改日期、权限等。
二、pwd命令
语法
pwd
功能
显示用户当前所在的目录
常用选项
无
注意要点
window与Linux文件路径的区别
在Windows
系统中,文件路径使用反斜杠(\
)作为路径分隔符,例如:C:\Users\Username\Documents\myfile.txt
。
而在Linux
系统中,文件路径使用正斜杠(/
)作为路径分隔符,例如:/home/username/documents/myfile.txt
。
此外,还有以下几点区别:
- 大小写敏感性:
Windows
系统对文件路径的大小写不敏感,而Linux
系统对文件路径的大小写是敏感的。这意味着,在Windows
系统中,路径"C:\Users\Username\Documents\myfile.txt
"与"C:\users\username\documents\myfile.txt
"是等效的,而在Linux
系统中,路径"/home/username/documents/myfile.txt
"与"/home/Username/Documents/myfile.txt
"是不同的。 - 根目录表示:在
Windows
系统中,根目录使用驱动器名作为前缀,例如:C:\
。而在Linux
系统中,根目录直接使用正斜杠(/
)表示。 - 特殊字符转义:在
Windows
系统中,某些字符被视为特殊字符,需要进行转义处理,例如空格需要使用引号包裹起来。而在Linux
系统中,这些字符可以直接使用,不需要特殊处理。
总的来说,Windows
和Linux
系统的文件路径表示方式有些差异,主要体现在路径分隔符、大小写敏感性和特殊字符转义方面。在跨平台开发或者迁移文件时,需要注意这些差异。
家目录
在Linux系统中,每个用户都有一个家目录。该目录通常位于 /home/username
下,其中 username
是用户的登录名。例如,如果用户的登录名是 john
,那么他的家目录将位于 /home/john
下。
如果你是管理员的话,你的家目录则是/root
ps:用户默认登录Linux的目录是家目录
三、cd 指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法
cd 目录名
功能
改变工作目录。将当前工作目录改变到指定的目录下。
举例
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目录
cd -:返回最近访问目录
注意要点
cd+路径
使用cd
命令与根路径(/
)可以访问任意文件夹。根路径(/
)表示系统中的最高级目录,所有其他目录都是它的子目录。
例如,要访问根目录下的名为"test
"的文件夹,可以使用以下命令:
cd /test
这将使当前工作目录切换到根目录下的test
文件夹。
同样,如果要访问根目录下的多层级子目录,可以使用相同的方式。例如,要访问根目录下的test
文件夹下的sub
文件夹,可以使用以下命令:
cd /test/sub
这将使当前工作目录切换到sub
文件夹。
需要注意的是,在Linux系统中,根路径(/
)是整个文件系统的起点,因此使用cd
命令与根路径可以访问任意文件夹。
.
.
在Linux中是一个特殊的目录名,表示当前目录。
当你在终端中使用.
时,它代表当前所在的工作目录。这个特殊目录名通常用于文件路径操作或与其他命令结合使用。
以下是一些使用.
的常见例子:
- 列出当前目录中的文件和目录:
ls .
- 进入当前目录:
cd .
- 复制当前目录中的文件到另一个目录:
cp file.txt .
这将在当前目录中创建一个名为file.txt
的副本。
- 在当前目录中创建一个新的子目录:
mkdir ./new_directory
这将在当前目录下创建一个名为new_directory
的新目录。
总而言之,.
是一个表示当前目录的特殊目录名,在许多Linux命令和路径操作中起到重要的作用。
. .
..
在Linux中也是一个特殊的目录名,表示上一级目录。
当你在终端中使用..
时,它代表当前目录的上一级目录。
以下是一些使用..
的常见例子:
- 列出上一级目录中的文件和目录:
ls ..
- 进入上一级目录:
cd ..
- 复制当前目录的上一级目录中的文件到当前目录:
cp ../file.txt .
这将在当前目录中创建一个名为file.txt
的副本,并且该文件位于上一级目录中。
- 在上一级目录中创建一个新的子目录:
mkdir ../new_directory
这将在上一级目录中创建一个名为new_directory
的新目录。
使用..
可以方便地进行跳转和操作上一级目录的文件和目录。
ps:根目录的..
始终指向自己和.
一样
相对路径与绝对路径
Linux中的路径可以分为相对路径和绝对路径。
相对路径是相对于当前工作目录来指定文件或目录的路径。它们通常以一个点(.
)或两个点(..
)开头。一个点表示当前目录,两个点表示上级目录。例如,如果当前工作目录是/home/user
,相对路径./documents
表示在当前目录中的documents
文件夹,而../..
表示当前目录的上级目录的上级目录。
绝对路径是从根目录(/
)开始的完整路径,指定了文件或目录的完整位置。它们通常以斜杠(/
)开头。例如,/home/user/documents
表示从根目录开始的documents
文件夹的完整路径。
相对路径与绝对路径的选择取决于你想要指定的文件或目录的位置。使用相对路径可以更简洁地指定文件或目录,特别是当在当前工作目录中操作时。使用绝对路径可以确保准确性,特别是当在不同的工作目录中操作时。
在任意的Linux文件夹下,都会有两个特殊的目录,即".
“和”..
"
".
"代表当前目录,即该文件夹本身。
"..
"代表上一级目录,即该文件夹的父级目录。
这两个特殊目录在Linux系统中起到重要的作用,可以通过它们来进行路径的相对引用和切换目录。
使用tree指令显示目录结构
我们可以使用下面代码下载tree
yum install -y tree
“tree
” 是一个在 Linux 和其他类 Unix 系统中常用的命令,用于以树状格式显示目录结构。
使用 “tree
” 命令的基本语法是:
tree [选项] [目录路径]
- 选项:这些是可选的,用于定制 “
tree
” 命令的输出。例如,-a
选项会显示所有文件和目录,包括隐藏文件。 - 目录路径:这是你想要显示其目录结构的目录的路径。如果你省略这个部分,
tree
命令将默认显示当前工作目录的目录结构。
以下是一些 “tree
” 命令的例子:
- 显示当前工作目录的目录结构:
tree
- 显示指定目录(例如 /home/user/Documents)的目录结构:
tree /home/user/Documents
- 显示包括隐藏文件的所有文件和目录:
tree -a /home/user/Documents
请注意,如果你的系统中没有预安装 “tree
” 命令,你可能需要先安装它。在大多数 Linux 发行版中,你可以使用包管理器(如 apt、yum 或 dnf)来安装 “tree
”。
四、touch指令
在Linux操作系统中,"touch
"是一个用于管理文件和目录的常用命令。这个命令的功能是创建一个新的空文件或更新现有文件的时间戳。
语法
touch [选项]... 文件...
功能
touch
命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项
-a
或--time=atime
或--time=access
或--time=use
只更改存取时间。-d
使用指定的日期时间,而非现在的时间。-f
此参数将忽略不予处理,仅负责解决BSD版本touch
指令的兼容性问题。-m
或--time=mtime
或--time=modify
只更改变动时间。-r
把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t
使用指定的日期时间,而非现在的时间。
五、mkdir指令
在Linux系统中,"mkdir
"命令用于创建目录。"mkdir
"是"make directory"的缩写,它允许用户在文件系统中创建一个新的目录。
语法
mkdir [选项] dirname...
功能
在当前目录下创建一个名为 “dirname
”的目录
常用选项
-p
,--parents
可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;- “
-m
”:设置目录的权限模式。 - “
-v
”:显示操作详细信息。
举例
mkdir –p test/test1 : 递归建立多个目录
注意要点
mkdir -p
假设你当前所在的目录是 /home/user
,你想要创建一个名为 myfolder/folder1/folder2
的目录结构。
使用 mkdir -p
命令可以一次性地创建多层次的目录结构。在终端中输入以下命令:
mkdir -p myfolder/folder1/folder2
这样就会在 /home/user
目录下创建 myfolder
目录,并在其中创建 folder1
目录,最后在 folder1
目录中创建 folder2
目录。如果某个目录已经存在,则不会报错,也不会重新创建。
你可以通过 ls
命令来验证目录结构是否创建成功:
ls -R
这样就能看到所有目录和文件的层次结构。
六、rmdir指令
rmdir
是一个与mkdir
相对应的命令。mkdir
是建立目录,而rmdir
是删除命令。
语法
rmdir [-p] [dirName]
适用对象
具有当前目录操作权限的所有使用者
功能
删除空目录
常用选项
-p
当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
注意要点
rmdir默认删除的是空目录
“rmdir
"命令在Linux中用于删除空目录。它不能删除非空目录,否则会产生错误。如果你想要删除非空目录,可以使用"rm
"命令,使用”-r
"或"-rf
"选项来递归删除目录及其内容。但请小心使用这些选项,因为它们可以永久删除文件和目录。
七、rm 指令
rm
命令可以同时删除文件或目录
语法
rm [-f-i-r-v] [dirName/dir]
适用对象
适用对象
功能
删除文件或目录
常用选项
-f
即使文件属性为只读(即写保护),亦直接删除-i
删除前逐一询问确认-r
删除目录及其下所有文件
注意要点
root用户删除文件
当使用rm
命令删除文件时,如果你是root
用户,系统会询问你是否确认删除。这种做法是为了避免意外删除重要文件。你需要输入"y
"确认删除,或者输入"n
"取消删除。
拒绝root用户删除文件的询问操作
使用rm
命令的-f
选项可以强制删除文件,而不会询问确认。当你以root
用户身份执行rm -f
命令时,系统会直接删除文件,而不会再询问是否确认删除。这种操作需要谨慎使用,因为删除后的文件无法恢复。
不要使用rm -f 删除根目录
绝对不要使用"rm -f
"命令来删除根目录,因为它会强制删除文件和目录,并且无法还原。这将导致系统严重损坏,使系统无法正常运行。删除根目录会导致操作系统和所有相关文件和目录被删除,可能会导致数据丢失。如果你意外地删除了根目录,那么恢复系统将变得非常困难,你可能需要重装操作系统。所以,一定要小心,确保你执行的命令正确且安全。
ps:因为Linux不像Windows有回收站的功能,Linux直接删除就是真的删除了,系统会直接崩溃
rm -r
rm -r
是一个Linux命令,用于递归地删除文件或目录。
例如,假设我们有一个名为"example
"的目录,它包含以下文件和子目录:
example/
├── file1.txt
├── file2.txt
└── subdirectory/
├── subfile1.txt
└── subfile2.txt
如果我们要用rm -r
命令删除"example
"目录及其所有内容,我们可以在终端中键入以下命令:
rm -r example
这将删除"example
"目录以及其中的所有文件和子目录。是先删除subfile1.txt
和subfile2.txt
然后依次向前,很像我们数据结构中学到的树形结构
八、man指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法
man [选项] 命令
常用选项
-k
根据关键字搜索联机帮助num
只在第num
章节找-a
将所有章节的都显示出来,比如man
printf
它缺省从第一章开始搜索,知道就停止,用a
选项,当按下q
退出,他会继续往后面搜索,直到所有章节都搜索完毕。- 解释一下,man手册分为8章
- 1是用户命令和可执行程序的文档
- 2是系统调用,如
open
,write
之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件) - 3是
c
库函数,如printf
,fread4
是特殊文件,也就是/dev
下的各种设备文件 - 4特殊文件和设备的文档
- 5是指文件的格式,比如
passwd
, 就会说明这个文件中各个字段的含义 - 6是给游戏留的,由各个游戏自己定义 ,即游戏和屏幕保护程序的文档
- 7是附件还有一些变量,比如向
environ
这种全局变量在这里就有说明 - 8是系统管理用的命令,这些命令只能由
root
使用,如ifconfig
ps:man
手册可以汉化
举例
一个示例可以是查询ls
命令的帮助文档。ls
命令用于列出当前目录下的文件和文件夹。你可以使用man
命令来查看ls
命令的帮助文档,如下所示:
man ls
执行上述命令后,终端会显示关于ls
命令的详细帮助信息,包括命令的语法、选项和示例等。你可以根据需要使用不同的命令来查询其他Linux命令的帮助文档。
注意要点
1号手册printf与3号手册的printf
在Linux中,man 1
和man 3
是两个不同的man
手册节。man 1
是关于用户命令的手册节,而man 3
是关于C
函数库的手册节。
printf
是C语言中的一个常用函数,用于格式化输出字符串。在man 1
手册节中,printf
是一个用户命令,用于在终端中打印输出。你可以使用man 1 printf
命令来查看printf
命令的使用方式和详细说明。
在man 3
手册节中,printf
是一个C标准库函数,用于格式化输出字符串。你可以使用man 3 printf
命令来查看printf
函数的使用方式和详细说明,包括它的参数、返回值和使用示例。
总结起来,man 1 printf
是用于查看printf命令的用户手册,而man 3 printf
是用于查看printf
函数的C函数库手册。所以我们在使用man指令查询函数的时候,如果不指定手册,他是会默认从第一个开始查找,容易出现错误,因此我们在查询指令的时候,尽量指定手册名。
九、nano指令
Linux nano
是一个文本编辑器,用于在终端窗口中编辑文本文件。nano
指令用于启动nano
文本编辑器,并打开一个指定的文件进行编辑。
如果Linux没有nano
的话,我们可以使用来进行下载
yum install -y nano
语法
使用nano
指令的基本语法是:
nano [选项] [文件名]
其中,选项是可选的,用于指定编辑器的一些参数,例如启用语法高亮或显示行号等。文件名是要编辑的文件的名称或路径。
一旦输入了nano
指令并按下回车键,nano
编辑器会打开指定的文件。如果文件不存在,则nano
会创建一个新文件。编辑器会显示一个命令提示符,可以在其下方输入命令。
常用选项
一些常用的nano
命令包括:
Ctrl-O
:保存文件Ctrl-X
:退出编辑器Ctrl-G
:显示帮助信息Ctrl-K
:剪切一行Ctrl-U
:粘贴剪切的行Ctrl-W
:搜索文本Ctrl-\
:替换文本Ctrl-C
:显示文件信息和统计Ctrl-R
:读取另一个文件并将其插入当前文件
这些命令可以通过在编辑器中按对应的组合键来执行。在编辑器底部的帮助栏中可以找到更多的可用命令和快捷键。
需要注意的是,nano
编辑器相对来说比较简单易用,适合初学者使用。但在处理大型文件或需要复杂操作的情况下,可能不如其他编辑器(如vim
或emacs
)那么强大。
举例——编码C语言
要使用nano
来编写和编译C语言代码,请按照以下步骤操作:
- 打开终端。在终端中键入
nano file.c
来创建一个名为file.c
的新文件。 - 在
nano
编辑器中输入你的C语言代码。例如,以下是一个简单的C程序:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
- 按下
Ctrl + O
来保存文件。 - 输入文件名并按下
Enter
键来确认保存。 - 按下
Ctrl + X
来退出nano
编辑器。 - 在终端中键入以下命令来编译你的C代码:
gcc file.c -o mytest
其中file.c
是你的C代码文件名,mytest
是你想要生成的可执行文件的文件名。
- 如果编译成功,你将在当前目录下得到一个名为
mytest
的可执行文件。 - 在终端中键入以下命令来运行可执行文件:
./mytest
你将在终端中看到输出Hello, World!
。
拓展
在Linux系统中,绝大部分的系统命令(如ls
、cd
、cp
等)都是放在/bin
目录下。这个目录通常被称为“二进制目录”或者“命令目录”,其中存放了系统的基本命令和工具。
除了/bin
目录外,还有一些其他目录也存放了可执行文件:
/sbin
目录:存放一些系统管理命令,通常需要超级用户权限来执行。/usr/bin
目录:存放了更多的用户命令和工具。/usr/sbin
目录:存放了一些非管理员用户使用的系统管理命令。
需要注意的是,虽然大多数Linux系统的命令都存放在这些目录中,但是也可以自定义安装其他软件,并将其可执行文件放在其他目录中。因此,有些命令可能存放在不同的位置。
示例
首先,确保系统上已经安装了gcc
编译器。
然后,创建一个c
代码文件(例如hello.c
),并在其中编写以下代码:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
保存文件。
接下来,打开终端,进入到保存代码文件的目录,并执行以下命令来编译代码:
gcc hello.c -o hello
这将使用gcc
编译器将代码编译为可执行文件,并将可执行文件命名为“hello
”。
然后,将可执行文件移动到/bin
目录下,执行以下命令:
mv hello /bin/
移动完成后,你就可以在任何地方直接运行hello
命令,即可看到输出结果。
例如,在终端中输入以下命令进行运行:
hello
输出结果应该为:
Hello, World!
这就是在Linux系统上使用gcc
编译c语言代码,并将可执行文件放在/bin
目录下直接运行的示例。
十、cp指令
语法
cp [选项] 源文件或目录 目标文件或目录
功能
复制文件或目录
说明
cp
指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项
-f
或--force
强行复制文件或目录, 不论目的文件或目录是否已经存在-i
或--interactive
覆盖文件之前先询问用户-r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R
或--recursive
递归处理,将指定目录下的文件及子目录一并处理
注意要点
cp src [文件、目录] dst[文件、目录]
cp src
的文件到dst
的目录,是直接将src
的文件拷贝到dst
的目录下
十一、mv指令
mv
命令是move
的缩写,可以用来移动文件或者将文件改名(move (rename) files
),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法
mv [选项] 源文件或目录 目标文件或目录
功能
- 视
mv
命令中第二个参数类型的不同(是目标文件还是目标目录),mv
命令将文件重命名或将其移至一个新的目录中。 - 当第二个参数类型是文件时,
mv
命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。 - 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,
mv
命令将各参数指定的源文件均移至目标目录中。
常用选项
-f
:force
强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i
:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
示例
在Linux上,使用mv
命令可以对文件进行重命名。下面是一个例子:
假设现有一个名为file.txt
的文件,我们要将其重命名为newfile.txt
。可以通过以下命令实现:
mv file.txt newfile.txt
这将把file.txt
重命名为newfile.txt
。请注意,如果newfile.txt
已经存在,则会覆盖该文件。如果要将文件移动到另一个目录并重命名,可以在新目录的路径前加上目录名,例如:
mv file.txt /path/to/newfile.txt
这将把file.txt
移动到/path/to/
目录,并将其重命名为newfile.txt
。没有的话就会创建一个进行重命名。
举例——转移(了解)
将rm改造成mv
vim ~/.bashrc #修改这个文件
mkdir -p ~/.trash
alias rm=trash
alias ur=undelfile
undelfile() {
mv -i ~/.trash/\$@ ./
}
trash() {
mv $@ ~/.trash/
}
十二、cat
语法
cat [选项] [文件]
功能
查看目标文件的内容
常用选项
-b
对非空输出行编号-n
对输出的所有行编号-s
不输出多行空行
示例
首先,cat
命令是Linux中一个经常使用的基本命令,用于连接文件,并将文件内容输出到标准输出或者复制文件内容。
以下是一个使用cat
命令的示例:
- 查看文件内容:使用
cat
命令可以直接显示一个文件的内容。例如,输入以下命令来查看一个文件的内容:
cat file.txt
这将会在终端中显示file.txt
文件的内容。
- 合并文件内容:使用
cat
命令还可以将多个文件的内容合并为一个文件。例如,输入以下命令来合并两个文件的内容:
cat file1.txt file2.txt > merged.txt
这将会将file1.txt
和file2.txt
的内容合并,并将结果保存到merged.txt
文件中。
- 创建文件:使用
cat
命令还可以创建一个新的文件,并输入内容。例如,输入以下命令来创建一个名为newfile.txt
的文件,并输入一些内容:
cat > newfile.txt
然后,你可以输入一些内容,并按下Ctrl + D
来保存文件。
这些是一些基本的cat
命令的使用示例,还有更多的用法可以通过man cat
命令查看帮助文档来了解。
注意要点
如果在Linux中直接使用cat
命令后面不加任何参数或文件名,它会进入交互式模式,你可以逐行输入文本,并在输入完毕后按Ctrl+D
来结束输入。输入的文本会直接显示在终端上。这个功能可以用于快速创建或编辑文本文件。
十三、tac
功能
tac
是一个Linux命令行工具,用于反转给定文件中的行顺序。它的功能与cat
命令相似,但是它会按照相反的顺序输出文件的内容。
语法
tac
命令的语法如下:
tac [OPTION]... [FILE]...
常用选项
其中,OPTION
是一些可选参数,FILE
是要处理的文件名。
以下是tac
命令的常用选项:
-b
或--before
:在每行的输出之前,使用指定的字符串。-r
或--regex
:将FILE
参数视为正则表达式模式列表,而不是文件名。-s
或--separator=STRING
:使用指定的字符串作为行分隔符。--help
:显示帮助信息。--version
:显示版本信息。
tac
命令的工作原理是,它会从文件的最后一行开始读取,然后逐行向前读取,直到读取到文件的第一行。然后,它会将这些行按照相反的顺序输出到标准输出。
示例
以下是tac
命令的一些示例用法:
- 反转文件的行顺序:
tac file.txt
这将反转file.txt
文件中的行顺序,并将结果输出到标准输出。
- 反转多个文件的行顺序:
tac file1.txt file2.txt
这将反转file1.txt
和file2.txt
文件中的行顺序,并将结果输出到标准输出。
- 在每行输出之前添加一个字符串:
tac -b "Line: " file.txt
这将在file.txt
文件的每行输出之前添加"Line: "字符串。
- 使用正则表达式模式列表:
tac -r 'pattern1' 'pattern2' file.txt
这将将file.txt
文件中匹配正则表达式模式pattern1
和pattern2
的行反转输出。
注意:tac
命令在处理大型文件时可能会占用大量内存。如果需要处理大文件,可以考虑使用其他方法或工具。
十四、输出重定向
在Linux中,输出重定向是一种将程序的输出发送到文件而不是终端的方法。
功能
新建新文件
示例
以下是一些常见的输出重定向示例:
- 将输出重定向到文件:
command > file.txt
这将把命令的输出写入到file.txt
文件中。如果文件不存在,则会创建一个新的文件;如果文件已存在,则会覆盖文件中的内容。
- 将输出附加到文件末尾:
command >> file.txt
这将把命令的输出附加到file.txt
文件的末尾,而不会覆盖文件中的内容。
- 重定向标准错误输出:
command 2> error.txt
这将把命令的错误输出重定向到error.txt
文件中。
- 将标准输出和错误输出合并:
command > file.txt 2>&1
这将把命令的标准输出和错误输出合并,并将它们都重定向到file.txt
文件中。
- 丢弃输出:
command > /dev/null
这将把命令的输出丢弃,不会写入文件或显示在终端上。
以上是一些常见的输出重定向方法,可以根据需要进行调整和组合。
注意要点
输出重定向
在Linux中,使用输出重定向时,默认情况下每次写入会清空文件的内容。也就是说,如果你使用>
运算符将输出重定向到文件,每次运行命令时都会覆盖文件的内容。
如果你希望将输出附加到文件的末尾,而不是清空文件并重新写入,可以使用>>
运算符。这样每次运行命令时,输出将追加到文件的末尾而不会清空已有的内容。
以下是示例:
command > file.txt
这将输出重定向到file.txt
文件,每次运行命令时都会清空文件内容。
command >> file.txt
这将输出附加到file.txt
文件末尾,而不会清空文件内容。
请注意,尽管每次运行命令时会清空文件,但如果在同一个命令中使用多个重定向操作符,例如command > file.txt 2>&1
,其中2>&1
将错误输出重定向到标准输出,那么文件只会被清空一次。之后的每次运行命令时,输出都会附加到已经被清空的文件末尾。
追加重定向
在Linux中,可以使用>>
符号来进行追加重定向。追加重定向的作用是将输出附加到文件的末尾,而不是覆盖文件的内容。
以下是使用追加重定向的示例:
command >> file.txt
这将把command
的输出附加到file.txt
文件的末尾。如果file.txt
不存在,则会创建新文件。如果file.txt
已经存在,则将输出追加到文件的末尾。
请注意,追加重定向与覆盖重定向的区别在于使用的重定向操作符。使用>
符号会清空文件并重新写入,而>>
符号会将输出追加到文件的末尾。因此,如果你希望保留文件中的旧内容,并在其后添加新内容,应使用追加重定向。
十五、echo
echo
是一个在Linux系统中常用的命令,它用于将文本或变量输出到终端或文件中。以下是关于echo
命令的详细说明:
基本语法
echo [OPTIONS] [STRING]
常用选项
-n
:不换行输出。-e
:启用特殊字符的解释。-E
:禁用特殊字符的解释。
示例
输出文本:
echo "Hello, World!"
输出:Hello, World!
输出变量:
name="John"
echo "My name is $name."
输出:My name is John.
输出特殊字符:
echo -e "Line 1\nLine 2"
输出:
Line 1
Line 2
输出文本到文件:
echo "Hello, World!" > file.txt
追加文本到文件:
echo "Additional line" >> file.txt
注意事项
- 如果要输出包含空格或特殊字符的文本,建议使用引号引起来,以防止解释错误。
- 当需要输出特殊字符时,可以使用
-e
选项启用特殊字符的解释。 -n
选项可用于在输出文本后不换行。- 如果要输出带有
$
符号的变量,可以使用双引号将变量引起来,以保持其变量性质。
以上是echo
命令的详细说明。你可以根据需要使用不同的选项和参数来满足你的需求。
十六、输入重定向
功能
在Linux中,“<” 操作符用于输入重定向,它将文件的内容作为命令的标准输入(STDIN)。可以使用以下方式进行输入重定向:
- 使用 “
<
” 操作符将文件内容作为命令的标准输入。例如,sort < file.txt
将文件file.txt
的内容作为sort
命令的输入。sort
命令将按照文本行的字母顺序对输入进行排序。 - 使用 “
<
” 操作符以及特殊的文件名 “/dev/null
” 将命令的标准输入设置为空。例如,command < /dev/null
命令的标准输入被设置为空,这在某些情况下可以用来忽略命令对标准输入的需求。 - 使用命令组合和输入重定向。可以将多个命令通过管道组合,并将文件内容作为整个命令组合的标准输入。例如,
grep "pattern" < file.txt | sort
将文件file.txt的内容通过grep命令筛选出包含"pattern"的行,并将结果通过管道传递给sort命令进行排序。
输入重定向可以方便地将文件的内容作为命令的输入,而不是从终端手动输入。这在处理大量数据或自动化脚本中特别有用。
示例
cat
命令用于显示文件的内容,而 <
操作符用于将文件的内容作为命令的标准输入。可以将它们配合使用来显示文件的内容。
假设有一个名为 file.txt
的文本文件,我们可以使用以下命令来显示文件的内容:
cat file.txt
上述命令将会在终端输出 file.txt
文件的内容。
而使用 <
操作符和 cat
命令可以实现同样的效果,如下所示:
cat < file.txt
上述命令将会将 file.txt
文件的内容作为 cat
命令的标准输入,然后在终端输出文件的内容。
这种用法通常用于将文件的内容传递给其他命令进行处理,或者将文件的内容重定向到其他文件。例如,可以将文件的内容重定向到另一个文件:
cat < file.txt > newfile.txt
上述命令将会将 file.txt
文件的内容作为 cat
命令的标准输入,并将 cat
命令的输出重定向到 newfile.txt
文件中,实现将文件内容复制到另一个文件的功能。
十七、more
功能
more
命令是Linux系统中一种用于显示文件内容的命令。它可以逐页显示文件内容,方便用户浏览大文件。下面是more
命令的一些常用选项和使用方法的详解:
语法
more [选项] 文件名
常用选项
-d
:每次显示页前暂停,按任意键继续显示下一页。-l
:忽略换行符,将文件内容连续显示。-p
:在显示页面时,自动搜索并定位到匹配的字符串。-s
:连续多个空行只显示一个空行。-u
:显示的内容不进行换行操作,显示效果会更流畅。
使用方法
- 无选项时,使用
more
命令显示文件内容,按空格键翻页,按q
键退出。 - 使用
more -d 文件名
命令,每次显示一页内容,显示完一页后暂停,按任意键继续显示下一页。 - 使用
more -l 文件名
命令,将文件内容连续显示,忽略换行符。 - 使用
more -p 关键字 文件名
命令,显示页面时自动搜索关键字,并定位到匹配的字符串。 - 使用
more -s 文件名
命令,连续多个空行只显示一个空行。 - 使用
more -u 文件名
命令,显示内容不进行换行操作,显示效果会更流畅。
使用示例
more myfile.txt
:显示文件myfile.txt
的内容。more -d myfile.txt
:每次显示一页内容,并暂停,按任意键继续显示下一页。more -p "keyword" myfile.txt
:显示文件内容时自动搜索关键字"keyword"。more -s myfile.txt
:连续多个空行只显示一个空行。
以上是more
命令的一些常用选项和使用方法的详解,通过这些选项和使用方法,可以方便地浏览和查看大文件的内容。
示例
假设有一个名为myfile.txt
的文件,内容如下:
This is line 1.
This is line 2.
This is line 3.
This is line 4.
This is line 5.
This is line 6.
This is line 7.
This is line 8.
This is line 9.
This is line 10.
下面是一些more
命令的使用示例:
- 显示文件内容,按空格键翻页:
more myfile.txt
命令执行后,显示文件内容的第一页,按空格键翻到下一页。
- 显示文件内容,每次显示一页并暂停:
more -d myfile.txt
命令执行后,显示文件内容的第一页,并暂停,按任意键继续显示下一页。
- 显示文件内容,连续显示,忽略换行符:
more -l myfile.txt
命令执行后,将文件内容连续显示,忽略换行符。
- 显示文件内容,自动搜索关键字并定位:
more -p "line 5" myfile.txt
命令执行后,显示文件内容时自动搜索关键字"line 5",并定位到匹配的字符串。
- 显示文件内容,连续多个空行只显示一个空行:
more -s myfile.txt
命令执行后,连续多个空行只显示一个空行。
以上是一些more
命令的使用示例,可以根据需要选择适合的选项进行文件内容的浏览和查看。
十八、less
功能
less
命令是在Linux中用于查看文件内容的命令行工具。与more
命令相比,less
命令具有更多的功能和选项。
语法
基本语法:
less [选项] 文件名
常用选项
下面是一些less
命令的常用选项和功能:
- 向前翻页:按空格键或f键。
- 向后翻页:按
b
键。 - 向下滚动一行:按
j
键。 - 向上滚动一行:按
k
键。 - 向下滚动半页:按
d
键。 - 向上滚动半页:按
u
键。 - 快速跳转到文件开始处:按
g
键。 - 快速跳转到文件末尾处:按
G
键。 - 搜索关键字:按
/
键,输入关键字,按回车键。按n
键查找下一个匹配项,按N
键查找上一个匹配项。 - 显示行号:在命令行中输入
less -N 文件名
。 - 按列进行左右滚动:按左箭头或
h
键向左滚动,按右箭头或l
键向右滚动。 - 执行外部命令:在命令行中输入
!命令
,如!ls
。
除了以上功能外,less
命令还支持更多高级功能,如复制文本、设置环境变量、自定义快捷键等。可以通过输入man less
来查看更详细的帮助文档。
总结
less
命令是一个功能强大的文件查看工具,可以方便地浏览和搜索文件内容,同时具有很多实用的功能和选项。
十九、head
功能
head
命令是Linux系统中的一个非常实用的命令,它可以用于显示文件的开头部分内容,默认情况下,它会显示文件的前10行,但也可以通过参数来指定显示的行数。
语法
head [参数] [文件名]
常用参数
-n
,指定显示的行数,例如:-n 5
表示显示文件的前5行;-c
,指定显示的字节数,例如:-c 20
表示显示文件的前20个字节;-q
,不显示文件名,在显示多个文件时,不显示文件名;-v
,显示文件名,在显示多个文件时,显示文件名;-z
,如果文件是通过gzip
压缩的,可以使用该参数来进行解压后再显示。
示例
- 显示文件的前10行:
head file.txt
- 显示文件的前5行:
head -n 5 file.txt
- 显示文件的前20个字符:
head -c 20 file.txt
- 显示压缩文件的开头部分:
head -z file.txt.gz
总结
head
命令是Linux系统中一个非常实用的命令,它可以用于显示文件的开头部分内容。通过指定行数或字节数,我们可以灵活地控制显示的内容。同时,head
命令还支持处理压缩文件,可以在显示前解压文件。
二十、tail
功能
tail
命令也是Linux系统中一个非常实用的命令,它与head
命令相反,用于显示文件的末尾部分内容,默认情况下,它会显示文件的后10行,但也可以通过参数来指定显示的行数。
语法
tail [参数] [文件名]
常用参数
-n
,指定显示的行数,例如:-n 5
表示显示文件的后5行;-c
,指定显示的字节数,例如:-c 20
表示显示文件的最后20个字节;-f
,实时监控文件的新增内容,并将其输出到屏幕上;-q
,不显示文件名,在显示多个文件时,不显示文件名;-v
,显示文件名,在显示多个文件时,显示文件名;-z
,如果文件是通过gzip
压缩的,可以使用该参数来进行解压后再显示。
示例
- 显示文件的后10行:
tail file.txt
- 显示文件的后5行:
tail -n 5 file.txt
- 显示文件的最后20个字符:
tail -c 20 file.txt
- 实时监控文件的新增内容:
tail -f file.txt
总结
tail
命令是Linux系统中一个非常实用的命令,它可以用于显示文件的末尾部分内容。通过指定行数或字节数,我们可以灵活地控制显示的内容。同时,tail
命令还支持实时监控文件的新增内容,非常适用于日志文件的查看和跟踪。
二十一、|(管道)
功能
在Linux系统中,|
是一个非常有用的操作符,也被称为管道操作符。它用于将一个命令的输出作为另一个命令的输入。通过使用管道操作符,可以将多个命令连接在一起,形成一个命令链。这样可以方便地进行数据处理和操作。
语法
command1 | command2
上述语法中,command1
表示第一个命令,command2
表示第二个命令。command1
的输出会作为 command2
的输入。
示例
将 ls
命令的输出传递给 grep
命令来过滤特定的文件:
ls | grep .txt
将 cat
命令的输出传递给 less
命令来进行分页查看:
cat file.txt | less
将 ps
命令的输出传递给 grep
命令来查找特定的进程:
ps -ef | grep nginx
管道操作符可以无限串联,可以通过管道将多个命令连接起来实现更复杂的数据处理。
注意要点
当cat
与tac
结合使用时,可以实现反向显示文件内容的效果。cat
命令用于将文件内容输出到标准输出,而tac
命令则是将文件内容从最后一行开始反向输出。
示例
假设有一个名为 file.txt
的文本文件,内容如下:
This is line 1.
This is line 2.
This is line 3.
使用 cat
命令读取文件内容,再通过 tac
命令将内容反向输出:
cat file.txt | tac
输出结果为:
This is line 3.
This is line 2.
This is line 1.
这样,使用 cat
命令将文件内容输出到标准输出,然后通过管道 |
将其传递给 tac
命令,从而实现了按行反向显示文件内容的效果。
总结
|
是Linux系统中的一个非常有用的操作符,它可以将一个命令的输出作为另一个命令的输入。通过使用管道操作符,可以方便地将多个命令连接起来,实现复杂的数据处理和操作。
二十二、date
date
指定格式显示时间: date +%Y:%m:%ddate
用法:date [OPTION]... [+FORMAT]
在显示方面
在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
%H
: 小时(00…23)%M
: 分钟(00…59)%S
: 秒(00…61)%X
: 相当于%H:%M:%S
%d
: 日 (01…31)%m
: 月份 (01…12)%Y
: 完整年份 (0000…9999)%F
: 相当于%Y-%m-%d
在设定时间方面
date -s
//设置当前时间,只有root
权限才能设置,其他只能查看。date -s 20080523
//设置成20080523,这样会把具体时间设置成空00:00:00date -s 01:01:01
//设置具体时间,不会对日期做更改date -s “01:01:01 2008-05-23″
//这样可以设置全部时间date -s “01:01:01 20080523″
//这样可以设置全部时间date -s “2008-05-23 01:01:01″
//这样可以设置全部时间date -s “20080523 01:01:01″
//这样可以设置全部时间
示例
Linux的date
命令用于显示或更改系统的日期和时间。以下是一个使用示例:
- 显示当前日期和时间:
$ date
输出:
Fri Feb 26 09:24:16 UTC 2024
- 显示特定格式的日期和时间:
$ date +"%Y-%m-%d %H:%M:%S"
输出:
2024-02-26 09:24:16
- 显示当前日期:
$ date +"%Y-%m-%d"
输出:
2024-02-26
- 显示当前时间:
$ date +"%H:%M:%S"
输出:
09:24:16
- 更改系统日期和时间:
$ sudo date -s "2024-02-26 09:30:00"
该命令将系统的日期和时间设置为指定的日期和时间。
请注意,特定格式的日期和时间字符串中使用的格式符可以根据需要进行调整。具体的格式符说明可以在date
命令的帮助文档中找到(使用man date
命令查看帮助文档)。
二十三、时间戳
时间戳(timestamp)指的是某个事件发生的具体时间点,一般以某一固定的起始时间(通常是1970年1月1日00:00:00)为基准,用数字表示。时间戳常用于记录事件发生的顺序、计算时间间隔等。在计算机领域中,时间戳通常指的是 Unix
时间戳,也称为 POSIX
时间戳,以秒为单位表示。而在其他领域中,时间戳可能以毫秒、微秒等更精确的单位表示。
Unix
时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
时间->时间戳
date +%s
时间戳->时间
date +%Y:%m:%d -d @1599642565
二十四、cal
功能
cal
命令是Linux操作系统中的一个命令,用于显示日历。它的基本语法是:
语法
cal [选项] [月份] [年份]
常用选项
-1
:显示一个月的日历,默认显示当前月份的日历。-3
:显示三个月的日历,包括前一个月、当前月和下一个月。-y
:显示一整年的日历,默认显示当前年份的日历。
示例
- 显示当前月份的日历:
cal
- 显示指定月份的日历:
cal 8
- 显示指定年份的日历:
cal -y 2023
- 显示三个月的日历:
cal -3
- 显示当前月份的日历,并将结果保存到文件中:
cal > calendar.txt
- 显示指定月份和年份的日历,并将结果保存到文件中:
cal 12 2024 > calendar.txt
需要注意的是,cal
命令默认使用的是英文日历,如果需要显示其他语言的日历,可以使用环境变量LC_TIME
来设置。
例如,显示中文日历:
LC_TIME=zh_CN.UTF-8 cal
二十五、find
功能
find
命令是Linux操作系统中一个强大的文件搜索命令。它可以根据指定的条件搜索文件,并执行相应的操作。
语法
find
命令的基本语法是
find [路径] [选项] [操作]
常用选项
-name pattern
:按文件名匹配搜索,pattern
可以是具体的文件名或使用通配符。-type type
:按文件类型匹配搜索,type
可以是f
(普通文件)、d
(目录)、l
(符号链接)等。-size n
:按文件大小匹配搜索,n
表示文件大小,可以使用+
表示大于n
,-
表示小于n
,留空表示等于n
。-user name
:按文件所有者匹配搜索,name
表示用户名。-group name
:按文件所属组匹配搜索,name
表示组名。-mtime n
:按文件修改时间匹配搜索,n
表示天数,+
表示n
天前,-
表示n
天内。-ctime n
:按文件创建时间匹配搜索,n
表示天数,+
表示n
天前,-
表示n
天内。-atime n
:按文件访问时间匹配搜索,n
表示天数,+
表示n
天前,-
表示n
天内。-exec command {} \;
:对搜索到的文件执行指定的命令,{}
表示文件名,\;
表示命令的结束符。-exclude pattern
:排除匹配搜索的文件或目录,pattern
可以是具体的文件名或使用通配符。
常用操作
-print
:将搜索到的文件名输出到标准输出。-delete
:删除搜索到的文件。-exec command {} \;
:对搜索到的文件执行指定的命令。
示例
- 搜索当前目录下所有的文件:
find .
- 搜索指定目录下的所有文件:
find /path/to/dir
- 按文件名搜索:
find . -name "*.txt"
- 按文件类型搜索:
find . -type f
- 按文件大小搜索:
find . -size +1M
- 按文件所有者搜索:
find . -user username
- 按文件修改时间搜索:
find . -mtime -7
- 对搜索到的文件执行命令:
find . -name "*.txt" -exec mv {} /path/to/dir \;
- 删除搜索到的文件:
find . -name "*.tmp" -delete
需要注意的是,find
命令的搜索范围默认是当前目录及其子目录,如果需要指定特定的搜索路径,可以在命令中使用路径参数。同时,find
命令还支持更多的选项和操作,可以通过man find
命令查看详细的帮助文档。
二十六、which
功能
which
是一个Linux命令行工具,用于查找特定命令的可执行文件的路径。它可以帮助用户确定特定命令在系统中的位置。
使用which
命令,可以快速找到特定命令的路径,无论是系统自带的命令还是用户安装的命令。以下是which
命令的基本使用方法:
语法
which [options] [command]
选项
其中,可选项可以是:
-a
:显示所有匹配的命令,而不只是第一个。-s
:仅显示带有可执行权限的命令。
command
参数是要查找的命令的名称。
which
命令会搜索系统的PATH
环境变量指定的路径,以确定命令的位置。它会在每个路径中查找与给定命令名称匹配的文件,并显示路径名称。
示例
以下是which
命令的示例:
$ which ls
/bin/ls
上述示例中,which
命令显示了ls
命令的路径为/bin/ls
。
$ which python
/usr/bin/python
上述示例中,which
命令显示了python命令的路径为/usr/bin/python
。
总结起来,which
是一个方便的命令行工具,用于查找特定命令的可执行文件的路径。它可以帮助用户确定命令在系统中的位置。
二十七、alis
功能
在Linux中,alias
是用于创建一种自定义命令的方法。alias
命令用于将一条命令或命令序列与一个自定义名称绑定,以便在以后使用此自定义名称时执行该命令或命令序列。alias
命令在命令行中运行,并且只在当前会话中有效,如果希望在每次登录时都能够使用这些自定义命令,可以将alias
命令添加到shell
配置文件中,如.bashrc
文件。
语法
alias
命令的基本语法如下:
alias [options] [alias_name[=command]]
其中,alias_name
是自定义的命令名称,command
是要绑定到该命令名称的实际命令或命令序列。options
是一些可选的参数,可以用来修改alias
命令的行为。
参数
一些常用的alias
命令选项包括:
-p
:显示当前定义的所有alias
命令。-a
:将alias
命令应用到所有命令,包括以“-
”开头的命令。-l
:显示所有alias
的名称和定义。-r
:移除指定的alias
命令。
示例
以下是一些示例,演示了如何使用alias
命令创建自定义命令:
- 创建一个简单的别名:
alias ll='ls -l'
这样就可以使用ll
命令来代替ls -l
命令。
- 创建一个带有参数的别名:
alias search='grep -rni'
这样就可以使用search keyword
来代替grep -rni keyword
命令。
- 创建一个包含多个命令的别名:
alias update='sudo apt update && sudo apt upgrade'
这样就可以使用update
命令来同时执行sudo apt update
和sudo apt upgrade
命令。
- 查看当前定义的所有别名:
alias -p
这会显示当前定义的所有alias
命令。
需要注意的是,当使用alias
命令时,如果命令中包含空格,需要使用单引号或双引号将整个命令或命令序列括起来。另外,如果要删除一个已定义的别名,可以使用unalias
命令,如unalias ll
会移除之前创建的ll
别名。
二十八、grep
功能
grep
是Linux中强大的文本搜索工具,它可以用于在文件中查找特定的字符串模式,并将匹配的行输出到标准输出。
语法
grep
的基本语法如下:
grep [options] pattern [file...]
其中,pattern
是要搜索的字符串模式,file是要在其中搜索的文件。如果未指定文件,则默认从标准输入读取数据。
参数
一些常用的grep
选项包括:
-i
:忽略大小写。-v
:反转匹配,即输出不匹配的行。-r
:递归地搜索指定目录下的文件。-n
:输出匹配的行以及对应的行号。-l
:仅显示包含匹配字符串的文件名。-c
:只计算匹配的行数,而不输出匹配的行。
下面是一些使用grep
的示例:
- 在文件中搜索特定的字符串:
grep "pattern" file.txt
这会在file.txt
文件中搜索包含"pattern
"的行,并将匹配的行输出到标准输出。
- 忽略大小写:
grep -i "pattern" file.txt
这会在搜索时忽略大小写,例如"Pattern
"和"pattern
"都会被匹配。
- 反转匹配,输出不匹配的行:
grep -v "pattern" file.txt
这会输出不包含"pattern
"的行。
- 递归地搜索文件夹:
grep -r "pattern" folder/
这会在指定的文件夹(包括其子文件夹)中递归地搜索包含"pattern
"的行。
- 输出匹配的行以及对应的行号:
grep -n "pattern" file.txt
这会输出包含"pattern
"的行,并在每行前面显示行号。
- 只显示包含匹配字符串的文件名:
grep -l "pattern" folder/*
这会在指定文件夹下的所有文件中搜索"pattern
",并仅显示包含匹配字符串的文件名。
- 只计算匹配的行数,而不输出匹配的行:
grep -c "pattern" file.txt
这会输出包含"pattern
"的行数。
以上仅是grep
命令的一些常用选项和示例,还有更多高级的功能和选项可以根据需要进行深入学习和使用。
二十九、zip/unzip
zip
功能
Linux中的zip
和unzip
是两个常用的命令行工具,用于创建ZIP
文件和解压ZIP
文件。
语法
zip
命令用于将文件或目录压缩成ZIP
文件。它的基本语法是:
zip [选项] <压缩文件名> <要压缩的文件或目录>
常用选项
其中,选项可以有以下一些常用选项:
-r
:递归地压缩目录及其子目录中的文件。-q
:静默模式,不显示输出信息。-d
:从ZIP
文件中删除指定的文件。-u
:更新ZIP
文件中已有的文件,或添加新的文件。
示例
zip -r myarchive.zip /path/to/directory
这个命令将会压缩/path/to/directory
目录及其子目录中的所有文件,并创建一个名为myarchive.zip
的ZIP
文件。
unzip
功能
unzip
命令用于解压缩ZIP
文件。
语法
它的基本语法是:
unzip [选项] <ZIP文件名>
常用选项
其中,选项可以有以下一些常用选项:
-d <目标目录>
:将解压后的文件放到指定的目录中。-o
:覆盖已存在的文件。-q
:静默模式,不显示输出信息。
示例
unzip myarchive.zip
这个命令将会解压缩myarchive.zip
文件,并将解压后的文件放到当前目录中。
除了基本的压缩和解压缩功能,zip
和unzip
命令还支持一些其他的高级操作,比如加密压缩、分卷压缩等。你可以使用man zip
和man unzip
命令查看详细的帮助文档。
三十、top
Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
我们目前要了解的选项
-u<用户名>
指定用户名-p<进程号>
指定进程-n<次数>
循环显示的次数
三十一、shutdown-关机
语法
shutdown [选项]
常见选项
-h
: 将系统的服务停掉后,立即关机-r
: 在将系统的服务停掉之后就重新启动-t sec
:-t
后面加秒数,亦即『过几秒后关机』的意思
注意事项
如果各位读者是购买了云服务器,尽量不要使用shutdown
来关机,因为云服务器一般都要保证服务器一直在线,使用exit
或者ctrl+d
退出即可
重要的几个热键[Tab],[Ctrl] + c, [Ctrl] + d
[Tab]按键
在Linux中,Tab
键的作用可以总结为以下几点:
- 命令补全:在终端中输入命令时,按下
Tab
键可以自动补全命令或文件名。如果只输入了部分命令或文件名,按下Tab
键会自动匹配相应的选项并进行补全。 - 文件名补全:在终端中输入文件路径时,按下
Tab
键可以自动补全文件名。这对于长路径或文件名中包含特殊字符的情况特别有用。 - 命令提示:在终端中输入部分命令或文件名后,按下
Tab
键可以显示可能的选项列表,以帮助用户选择正确的命令或文件名。 - 目录切换:在终端中使用
cd
命令切换目录时,可以输入部分目录名并按下Tab
键进行自动补全。
总的来说,Tab
键在Linux中的作用是提高命令行操作的效率和准确性,避免手动输入命令或文件名时的错误。
[Ctrl] + c按键
在Linux中,Ctrl + c
键组合的作用是中断当前正在运行的命令或程序。按下Ctrl + c
键会发送SIGINT
信号给当前活动的进程,通常会导致进程终止并返回用户终端控制权。
这在以下情况下特别有用:
- 终止当前运行的命令:如果一个命令执行时间过长,或者你不再需要运行的命令,你可以按下
Ctrl + c
键来终止它的执行。 - 终止正在运行的程序:当你运行一个程序并且它不响应或者进入了一个无限循环时,你可以按下
Ctrl + c
键来强制终止这个程序。这通常会使程序立即退出。
需要注意的是,Ctrl + c
键只能终止前台运行的进程,对于后台运行的进程需要使用其他方法(如Ctrl + z
键)将其发送到后台暂停运行,然后再使用其他命令来终止进程。
[Ctrl] + d按键
在Linux系统中,Ctrl + D
键的作用是向终端或交互式程序发送一个EOF
(End of File)字符。这个字符告诉程序已经到达了输入的结尾。
当在终端中输入Ctrl + D
时,终端会将EOF
字符发送给当前运行的程序或shell
,这通常是告诉它已经输入完毕,并且可以开始处理输入的内容了。
在交互式程序或shell
中,Ctrl + D
可以用来结束输入或退出程序。例如,当你在终端中运行一个Python
交互式解释器时,按下Ctrl + D
将退出解释器。同样的,当你在终端中运行一个shell
时,按下Ctrl + D
也会退出shell
。
总之,Ctrl + D
在Linux系统中用于向终端或交互式程序发送EOF
字符,用来结束输入或退出程序。
扩展命令
- 安装和登录命令:
login
、shutdown
、halt
、reboot
、install
、mount
、umount
、chsh
、exit
、last
; - 文件处理命令:
file
、mkdir
、grep
、dd
、find
、mv
、ls
、diff
、cat
、ln
; - 系统管理相关命令:
df
、top
、free
、quota
、at
、lp
、adduser
、groupadd
、kill
、crontab
; - 网络操作命令:
ifconfig
、ip
、ping
、netstat
、telnet
、ftp
、route
、rlogin
、rcp
、finger
、mail
、nslookup
; - 系统安全相关命令:
passwd
、su
、umask
、chgrp
、chmod
、chown
、chattr
、sudo ps
、who
; - 其它命令:
tar
、unzip
、gunzip
、unarj
、mtools
、man
、unendcode
、uudecode