一、终端基本操作
(一) 终端操作技巧
终端,一个链接计算机的命令窗口。终端界面,即字符界面。
1、打开一个新终端窗口: ctrl + alt + t ,或者桌面右键 “Open Terminal " 新建终端;
2、在同一个窗口中打开新终端: ctrl +shift + t ;
3、终端清屏命令 :clear ,快捷键 ctrl + l ;
4、放大终端窗口的字体显示:ctrl + shift +“+” ;
5、缩小终端窗口字体显示:ctrl +“ - ”;
6、自动补全目录/文件/命令名称:tab键
在敲出相关 “文件/目录/命令” 的前几个字母后,按下 tab 键
若输入的没有歧义,系统会自动补全(所输的几个字母已足够确定一个文件/目录/命令)
若还存在其他文件/目录/命令,再按一下tab 键,系统会提示可能存在的 “ 文件/目录/命令 ”,同时将已经敲出的命令复制在下一行(可根据提示再添上字母或再用tab键补全)。
7、选择曾经使用过的命令
按下键盘上的 “上/下 ” 键可以在曾经使用过的命令之间来回切换进行选择命令;
若想要退出选择,并且不想执行当前选中的命令,可以按ctrl + c退出。
(二) 命令格式
command [-options] [parameter]
command:命令名,相应功能的英文单词或英文缩写[]表示可选options:选项,可用来对命令进行控制,也可省略parameter:传给命令的参数,可以零到多个
(三) 查询命令的帮助信息
1、第一种方式
command --help:显示命令的帮助信息,例如查询“ls”命令的帮助信息
ls --help
2、第二种方式
man command :查阅命令使用手册(manual)。
同样输入"ls"命令
man ls
提示:man操作键与功能说明
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 推出 |
/word | 搜索word字符串 |
二、常用文件和目录命令
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
1 | ls | list | 查看当前文件夹下的内容 |
2 | pwd | print work directory | 查看当前所在的文件夹 |
3 | cd | change directory | 切换文件夹 |
4 | touch [文件名] | touch | 如果文件不存在,新建文件 |
5 | mkdir 目录名 | make directory | 创建目录 |
6 | rm [文件名] | remove | 删除指定的文件名 |
7 | tree [目录名] | tree | 以树状图列出文件目录结构 |
8 | echo | 向终端发送文本或变量 | |
9 | cp 源文件 目标文件 | copy | 复制文件或者目录 |
10 | mv 源文件 目标文件 | move | 移动文件或者目录/文件或者目录重命名 |
1、ls命令
ls是英文单词list的简写,其作用是列出目录的内容,是用户最常用的命令之一,类似于DOS下的dir命令。
ls命令基本格式:ls [选项] [目录或文件名]
选项 | 含义 |
---|---|
-a | 列出所有文件和目录,包括以"." 开头的隐藏文件和目录。 |
-l | 以长列表的方式列出文件和目录的详细信息,包括文件权限、文件大小、创建时间等。 |
-h | 配合-l选项使用,以人类可读的格式显示文件大小,如1.2K、3.4M等。 |
-r | 倒序显示文件和目录。 |
-t | 按照文件或目录的修改时间排序。 |
-S | 按照文件或目录的大小排序。 |
-i | 显示文件或目录的inode号。 |
-d | 显示目录本身的信息,而不是目录下的文件和目录。 |
通常,前三个选项应用比较多 ,下面通过命令操作实例来进一步巩固命令选项的具体用法。
某些选项的联合使用举例:
此外,ls
命令还支持结合通配符来过滤所显示的文件和目录。
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少一个 |
[] | 代表可以匹配字符组中的任意一个 |
[abc] | 匹配a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个字符 |
2、pwd命令
pwd命令用于显示用户当前工作目录的完整路径。这个命令非常简单且直接,帮助用户确定他们目前所在的目录位置。
pwd命令基本格式:pwd [选项]
选项 | 含义 |
---|---|
-L(逻辑) | 打印出逻辑工作目录的名称,即包含符号链接的路径 |
-L(物理) | 显示不包含符号链接的物理路径,即实际路径。 |
-help | 显示帮助并退出 |
–version | 输出版本信息并退出 |
3、cd 命令
cd命令是Linux中非常常用的命令,用于切换工作目录。
cd命令基本格式:cd [选项] [目录]
选项/目录 | 含义 |
---|---|
cd 指定目录 | 用于切换到“指定目录”。 |
cd /D | 用于改变驱动器的当前目录,同时改变当前驱动器。 |
cd (不带参数) | 显示当前驱动器和目录。 |
- | 表示返回上一次所在的目录。 |
.. | 表示返回当前目录的上一级目录。 |
\~ | 表示用户的主目录,也就是当前用户登录后所在的默认目录。 |
/ | 表示根目录。 |
目录参数可以是以下之一:
指定要切换到的目标目录的路径,可以使用相对路径或绝对路径。
相对路径是相对于当前工作目录的路径,例如cd documents
表示切换到当前目录下的documents
目录。
绝对路径是完整的目录路径,例如cd /usr/local
表示切换到根目录下的usr/local
目录。
通过连续使用cd
命令,可以切换到更深层次的目录,例如cd dir1/dir2/dir3
可以依次进入dir1
目录、dir2
目录以及dir3
目录。
使用Tab
键可以自动补全目录名称,减少输入错误。
4、touch命令
touch
命令基本格式:touch [选项] 文件
该命令的主要功能是更改文件的访问和修改时间戳。如果文件不存在,touch
会创建一个新的空文件。
1) 创建空文件
如果指定的文件不存在,touch
命令可以创建一个空文件。例如,touch text1.txt
命令将在当前目录下创建一个名为text1.txt
的空文件,也可以同时创建多个文件。
2) 更新文件时间戳
如果指定的文件已经存在,touch
命令可以更新文件的访问时间戳和修改时间戳。例如,touch text1.txt
命令将更新text1.txt
的访问时间戳和修改时间戳为当前时间。
3) 使用特定选项
选项 | 含义 |
---|---|
-a | 只更新文件的访问时间。 |
-m | 只更新文件的修改时间。 |
-t | 指定文件的时间戳,格式为YYYYMMDDhhmm 或YYYY-MM-DD HH:MM:SS 。 |
-d | 使用日期字符串来设置文件的时间戳,格式可以是多种,如YYYY-MM-DD 、YYYY-MM-DD HH:MM:SS 等。 |
-c | 只创建新文件,不更新现有文件的时间戳。 |
-r | 使用现有文件的时间戳来更新目标文件的时间戳。 |
使用 -a
和 -m
选项分别修改访问时间和修改时间:
touch -a -t 202409101230 text1.txttouch -m -t 202409101230 text1.txt
touch -r text1.txt text2.txt #将text2.txt的时间戳设置为与text1.txt相同
设置时间戳格式:时间戳可以按照特定的格式设置。
例如,使用-t
选项指定年(YYYY)、月(MM)、日(DD)、小时(HH)、分钟(MM)和秒(SS)的格式,如touch -t 202410011030 newfile.txt
将文件的访问和修改时间设置为2024年10月01日10点30分。
touch -t 202410011030 newfile.txt#将文件的访问和修改时间设置为2024年10月01日10点30分
5、mkdir命令
mkdir命令基本格式:mkdir [选项] 目录名
mkdir命令用于在文件系统中创建新的目录。
mkdir是"make directory"的缩写,是Unix/Linux系统中用于创建目录的基本命令。
通过使用不同的选项,可以实现创建单个目录、多级目录、设置目录权限以及显示创建过程中的详细信息等功能。
1) 创建单个目录:使用mkdir 目录名
命令可以在当前目录下创建一个新的目录。例如,
mkdir text
将在当前目录下创建一个名为text的目录。
2) 创建多级目录:使用-p
选项可以一次性创建多级目录,如果路径中的某些目录尚不存在,系统将自动建立这些目录。例如,
mkdir -p text1/text2/text3
将创建text1\text2\text3这三级目录,即使它们中的某些尚未存在。
3) 设置目录权限:使用-m
选项可以在创建目录的同时设置其权限。
该命令涉及权限设置,放在后面修改权限命令一起再详述。
4) 显示详细信息:使用-v
选项可以在创建目录时显示详细信息。让用户看到每个创建的目录的详细信息,这对于了解命令的执行过程和确认目录是否正确创建非常有帮助。例如,
mkdir -v test
例如,如果用户在当前目录下创建一个名为test的新目录,使用mkdir -v test命令,系统会显示类似于“Created directory 'test'”的信息,从而确认目录已经被创建;如果正在创建,则提示“Creating directory 'test'”。
6、rm命令
rm命令基本格式:rm [选项] 文件或目录
rm命令不带任何选项时,仅删除文件。
#删除单个文件rm text1.txt#删除多个文件rm text2.txt text3.txt text4.txt
rm命令是Linux和类Unix系统中用于删除文件或目录的命令。使用时需要格外小心,因为删除的文件或目录无法恢复。命令的基本用法包括删除单个文件、多个文件、目录及其内容等,具体操作取决于所使用的选项。
选项 | 含义 |
---|---|
-f 或 --force | 强制删除,忽略不存在的文件,不提示。 |
-i 或 --interactive | 交互式删除,每个文件删除前都会询问用户。 |
-r 或 -R 或 --recursive | 递归删除,用于删除目录及其内容。 |
-v 或 --verbose | 显示详细信息,列出被删除的文件。 |
这些选项可以单独使用,也可以组合使用以满足不同的删除需求。例如,rm -rf directoryName
命令会强制递归地删除名为directoryName
的目录及其所有内容,而不进行任何提示。
在使用rm命令时,应始终谨慎,确保不会意外删除重要文件或目录。建议在执行rm命令之前,先确认所在的目录和要删除的内容,以避免不必要的损失。
此外,还有其他一些选项,如--help
显示帮助信息,--version
显示版本信息等。
默认情况下,rm命令不会删除目录,但如果使用-r
选项,则可以递归地删除目录及其所有内容。因此,在使用rm命令时必须小心,因为它会永久性地删除文件或目录,且没有提供撤销删除的功能。
7、tree命令
tree命令基本格式:tree [选项] [目录]
选项 | 含义 |
---|---|
-a 或 --all | 显示所有文件和目录,包括隐藏的(以点开头的)。 |
d 或 --dirs-only | - 仅列出目录。 |
-L level 或 --max-depth=level | 限制目录树的显示深度到指定的层数。 |
-f 或 --fullpath | 显示每个文件或目录的完整路径。 |
-P pattern | 只显示符合提供的模式的文件名或目录名。 |
-I pattern | 排除符合提供的模式的文件名或目录名。 |
-o filename | 将输出重定向到指定的文件。 |
-i | 不显示文件和目录前的缩进线。 |
tree命令用于在命令行界面以树状图形式显示目录及其子目录的内容,递归地列出所有子目录,并可选择显示每个目录中的文件。如果没有指定目录,tree
会显示当前目录的树形结构。如果提供了目录路径,tree
会显示该路径的树形结构。
#查看当前目录下的所有文件和目录(包括隐藏文件),并且限制显示深度为两级。tree -a -L 2
注意:tree
命令在不同的操作系统上可能有些许差异,且在大多数Linux发行版中,tree
不是默认安装的,需要通过包管理器进行安装。
# 安装 tree 命令sudo apt install tree
也可以方便查询当前目录结构
8、echo命令
echo
命令用于在终端显示一段文本或变量的值。它是Shell脚本中常用的命令之一,主要用于输出字符串或变量的内容。
echo命令的基本格式:echo [选项] [字符串...]
选项 | 含义 |
---|---|
-n | 在输出文本后不换行。 |
-e | 启用转义字符的解释,可以识别和显示转义字符(如 \n、\t 等)。 |
-E | 禁用转义字符的解释,将转义字符原样显示。 |
1)显示普通文本信息
echo "Hello, World!"#输出:Hello, World!
2)显示带有转义字符的文本
启用反斜杠转义字符。常用转义字符包括:
\n
:换行\t
:制表符\\
:反斜杠\b
:退格 echo -e "Hello\tWorld\n"#输出:Hello World
echo -e "Line1\nLine2\nLine3"#输出多行文本
3)不自动添加换行符
echo -n "Hello, World!"#输出:Hello, World!
4)显示变量的值
name="John"echo "My name is $name"#输出:My name is John
5)输出命令的执行结果
echo "Today is $(date)"#输出:Today is [当前日期和时间]
说明:CST代表了中国时区的标准时间。
6)将输出重定向到文件
echo "Hello, World!" > output.txt#将文本"Hello, World!"写入output.txt文件中。
补充说明:有关cat命令的用法就不单独详细讲解,可以参考下面说明:
查看文件内容:使用cat命令查看文件内容是最基本的用法。
例如,要查看名为file.txt的文件内容,可以输入cat file.txt。
显示行号:使用-n选项可以在显示文件内容时同时显示行号。
例如,输入cat -n file.txt将显示file.txt文件的每一行内容及其对应的行号。
合并文件:cat命令还可以用于合并多个文件的内容。
例如,要将file1.txt和file2.txt的内容合并并输出到终端,可以输入cat file1.txt file2.txt。如果要将合并后的内容保存到新文件中,可以使用重定向操作符>。例如,输入cat file1.txt file2.txt > merged.txt将合并后的内容保存到名为merged.txt的新文件中。
创建文件并写入内容:使用cat命令还可以创建新文件并写入内容。
例如,输入cat > newfile.txt后,可以在终端中输入要写入的内容,按Ctrl+D保存并退出,从而创建一个名为newfile.txt的新文件并包含输入的内容。
6)追加输出到文件
echo "This is another test" >> testfile.txt#将字符串 This is another test 追加到 testfile.txt 文件中,不会覆盖原有内容。
7)显示特殊字符
echo "This is a \"quoted\" text"#输出:This is a "quoted" text
9、cp命令
cp命令是Linux系统中用于复制文件或目录的命令。
cp命令的基本格式:cp [选项] 源文件/目录 目标文件/目录
选项说明:
选项 | 含义 |
---|---|
-a 或 --archive | 相当于 |
-i 或 --interactive | 在覆盖目标文件前进行询问。 |
-r 或 -R 或 --recursive | 递归地复制目录及其内容。 |
-f 或 --force | 如果目标文件已经存在,不提示而是直接覆盖。 |
-p 或 --preserve | 保持源文件的属性,如修改时间和访问权限。 |
此外,还有其他选项如 --backup
为已存在的目标文件创建备份,-b
类似 --backup
但不接受参数等,这些选项可以根据具体需求灵活使用。
1)复制单个文件
cp text1.txt text2.txt#将源目标text1.txt文件中的内容复制一份到目标文件text2.txt中
2)将文件/多文件复制到目录中
cp text1.txt text2.txt wl/#将多文件text1.txt text2.txt复制到指定目录:当前目录下的wl目录中
3)递归复制整个目录
语法格式为:cp -r 源目录 目标目录将复制源目录及其所有内容到目标目录中。
4)复制并重命名文件
cp text1.txt text1.txt.bak#将把text1.txt的内容复制到新创建的名为text1.txt.bak的文件中。
5)强制覆盖已有文件
语法格式为:cp -f 源文件 已存在的文件
请注意,在执行任何可能覆盖重要文件的操作时,请谨慎使用-f选项,并在必要时备份数据以防意外丢失。
6)交互式复制并保留属性
语法格式为:cp -ip 源文件 目标文件
7)使用通配符批量复制文件
cp *.txt wl/#将当前目录下所有的txt文件都复制到当前目录下的wl目录中
10、mv命令
mv命令是Linux系统中用于移动文件或目录、重命名文件或目录的命令。
mv命令的基本格式:
移动文件或目录:mv [选项] 源文件或目录 目标文件或目录
重命名文件:mv <旧文件名> <新文件名>
该命令的主要功能包括:
当目标参数是文件时,mv命令完成文件重命名。当目标参数是已存在的目录时,mv命令将源文件或目录移动到该目录中。在跨文件系统移动文件时,mv命令会先拷贝文件,再将原有文件删除。常用的选项包括:
实例演示:
#将文件file1.txt重命名为file2.txt mv file1.txt file2.txt
#将文件file2.txt移动到目录dir1中mv file2.txt dir1
#使用-i选项在重命名或覆盖前询问用户,如果log2已存在,会询问是否覆盖。mv -i log1 log2
#使用-f选项强制覆盖目标文件,不询问用户,直接覆盖。mv -f log1 log2
#使用-b选项在覆盖前备份目标文件,先备份log1,然后覆盖log2。mv -b log1 log2
#使用-n选项不覆盖已存在的文件mv -n file1.txt dir1/file2.txt#如果dir1中有file2.txt,则不移动
#使用-u选项仅当源文件比目标文件新时才进行移动mv -u source_file target_file#如果source_file更新,才移动
三、打包和压缩文件命令
tar命令基本格式:tar [option] [file]
其中,file参数通常是我们要操作的文件名。而 option参数一般是我们要对该文件进行的操作,它可以简单的分为操作选项、附加选项。
操作选项主要有:
操作选项 | 含义 |
---|---|
-c: | 创建压缩文件 |
-x | 对文件进行解压 |
-t | 查看压缩包内容 |
-r | 向压缩归档文件末尾追加文件 |
-u | 更新原压缩包中的文件 |
-d | 将压缩文件和文件系统上的文件进行对比 |
附加选项 | 含义 |
---|---|
-z | 文件有gzip属性 |
-j | 文件有bz2属性 |
-Z | 文件有compress属性 |
-v | 详细列出所有处理过程 |
-C | 指定工作目录(因为该参数后必须紧跟文件目录,故一般放在option参数的最后或单独使用) |
-f | 指定归档文件名(因为该参数后必须紧跟文件名,故一般放在option参数的最后或单独使用) |
需要注意的是,操作选项之间互相独立,一般不可同时使用,但可以和下面的附加选项参数配合使用,为了方便理解,我们一般会操作选项参数在前,附加选项参数在后。
1、打包压缩文件
tar命令在进行压缩操作时常用选项很多,如上述两个表格,用法也可谓较复杂,为了方便说明,下面以一些具体的示例加以解说。
tar -cvf wrfout.tar wrfout_d01_*#将当前目录里所有以wrfout_d01_开头的文件打包成wrfout.tar,并详细显示压缩过程tar -czf wrfout.tar.gz wrfout_d01_*#将当前目录里所有以wrfout_d01_开头的文件打包成wrfout.tar后,并将其用gzip进行压缩,生成一个gzip压缩过的包,命名为wrfout.tar.gztar -cjf wrfout.tar.bz2 wrfout_d01_*#将当前目录里所有以wrfout_d01_开头的文件打包成wrfout.tar后,并将其用bzip2压缩,生成一个bzip2压缩过的包,命名为wrfout.tar.bz2tar -cZf wrfout.tar.Z wrfout_d01_*#将当前目录里所有以wrfout_d01_开头的文件打包成wrfout.tar后,并将其用compress压缩,生成一个compress压缩过的包,命名为wrfout.tar.Ztar -cvf ../wrfout.tar wrfout_d01_*#将当前目录里所有以wrfout_d01_开头的文件打包成wrfout.tar存放在上一级目录中,并详细显示压缩过程
其中,选项 "-cvf" 一般是习惯用法,记住打包时需要指定打包之后的文件名,而且要用 ".tar" 作为扩展名。
打包目录也是如此:
tar -cvf text.tar text/#把当前目录下目录text下所有文件打包为text.tar文件
tar命令也可以打包多个文件或目录,只要用空格分开即可。
tar -cvf wl.tar text.txt text1.txt /tmp/#把当前目录下text.txt文件、text1.txt文件和/tmp目录打包成wl.tar文件包#这里对系统根目录进行操作,如果不是root用户,需要加sudo
2、解包解压缩文件
tar在进行解压缩操作时,主要看打包文件的扩展名,依据扩展名所对应的包格式进行相应选项的选择进行解压操作。
其实解包和打包相比,只是把打包选项 "-cvf" 更换为 "-xvf"。
tar -xvf wrfout.tar #解包到当前目录下
如果使用 "-xvf" 选项,则会把包中的文件解压到当前目录下。
如果想要指定解压位置,则需要使用 "-C(大写)" 选项。
tar -xvf text.tar -C wl#把文件包text.tar解包到wl/目录下
下面同样通过一些常用的具体实例进行说明。
tar -xvf wrfout.tar#解压wrfout.tar到当前目录下,并详细显示解压过程tar -xzf wrfout.tar.gz#解压wrfout.tar.gz到当前目录下tar -xjf wrfout.tar.bz2#解压wrfout.tar.bz2到当前目录下tar -xZf wrfout.tar.Z#解压wrfout.tar.Z到当前目录下tar -xzvf wrfout.tar.gz -C /home#解压wrfout.tar.gz到/home目录下,并详细显示解压过程
3、tar其它操作举例
tar -rf wrfout.tar *.py#将所有.py的文件增加到wrfout.tar压缩包里面去tar -uf wrfout.tar plot.py#用当前文件目录中的plot.py,更新压缩包wrfout.tar中plot.py文件tar -tf wrfout.tar#列出wrfout.tar包中的所有文件tar -dvf wrfout.tar *.py #将wrfout.tar压缩包中的文件与当前目录下的.py文件进行比较,并列出详细过程