【Linux入门学习笔记】Linux命令查阅方法及文件操作命令简介

最近,公司需要将一台运行着CentOS(Linux的一个发行版本,通常用于企业服务器)的服务器上的数据迁移到另一台新设备上,虽然以前也基本系统学过Linux的指令,但当时并没有系统的记录和梳理,所以,借着这次机会,好好把常用的指令记录、梳理一下。

一、指令构成

一条典型的Linux指令组成为:command [-option] [parameter]。需要指出的是,[]表示指令后的选项操作对象均可选。

1. man帮助命令

由于Linux的命令繁多,每个命令又有很多选项,因此Linux自带了man命令,可以很方便地查询每个命令的对应选项和被操作对象的说明。

全称含义对象
manualLinux系统提供的参考手册其他Linux命令,如:lscd

一般通过man命令查出来的指令帮助大致可分为:

  • NAME:命令名称;
  • SYNOPSIS:命令格式;
  • DESCRIPTION:命令描述,选项对象的详细使用方法在此部分介绍;
  • AUTHOR:作者;
  • REPORTING BUGS:报告bug;
  • COPYRIGHT:版本;
  • SEE ALSO:另见。

最重要的两部分分别为SYNOPSISDESCRIPTION

1.1 如何阅读SYNOPSIS

下面以命令lsSYNOPSIS为例,即:

ls [OPTION]... [FILE]...

再结合下面的具体命令:

root@ubuntu64:/usr# ls -ahsS --format=verbose /usr /home
/home:
total 12K
4.0K drwxr-xr-x  3 root    root      4.0K Mar  2 23:17 .
4.0K drwxr-xr-x 18 root    root      4.0K Mar  3 00:17 ..
4.0K drwxr-xr-x  2 william developer 4.0K Mar  2 23:17 william

/usr:
total 100K
 40K drwxr-xr-x   2 root root  36K Mar  2 22:48 bin
 16K drwxr-xr-x   2 root root  16K Mar  2 22:47 sbin
4.0K drwxr-xr-x  13 root root 4.0K Jan 28 14:58 .
4.0K drwxr-xr-x  18 root root 4.0K Mar  3 00:17 ..
4.0K drwxr-xr-x   2 root root 4.0K Apr 15  2020 games
4.0K drwxr-xr-x  35 root root 4.0K Jan 28 15:07 include
4.0K drwxr-xr-x  73 root root 4.0K Mar  2 22:46 lib
4.0K drwxr-xr-x   2 root root 4.0K Apr 23  2020 lib32
4.0K drwxr-xr-x   2 root root 4.0K Jan 28 15:06 lib64
4.0K drwxr-xr-x   2 root root 4.0K Apr 23  2020 libx32
4.0K drwxr-xr-x  11 root root 4.0K Jan 28 15:11 local
4.0K drwxr-xr-x 116 root root 4.0K Jan 28 15:07 share
4.0K drwxr-xr-x   8 root root 4.0K Mar  2 22:47 src

其中:

  • ls:命令缩写;
  • -ahs --format=single-column均为选项:
    • -a: 等价于--all,表示列出所有文件,包括隐藏文件;
    • -h:等价于--human-readable,表示以较为可读的方式列出文件的大小;
    • -s:等价于--size,表示打印出文件大小;
    • -S:按文件大小排序,从大到小;
    • --format:指定打印显示的格式。
  • /usr:命令操作对象,这里是根目录的/下的usr文件夹。

命令lsSYNOPSIS含义如下:

格式含义举例
粗体原样输入终端如上述命令中ls直接输入
斜体1用合适参数代替如上述命令中分别用选项-ahsS --format=verbose和文件路径代/usrOPTIONFILE
[-abc][]中的参数均可选如上述命令中,选项均可省略,文件路径也可以省略(此时默认为当前路径)
-a|-b|两边的选项不能同时指定
argument ...可指定多个参数如上述命令中,选项和对象均为多个
[expression] ...[]中的整个部分均可为多个

1.2 如何阅读DESCRIPTION2

命令选项的指定一般有三种方式:

  • 短选项:也叫UNIX格式选项,使用方法是-后面加单个字符,如上述-a-h-s-S,需要注意的是选项的两种写法:-ahsS-a -h -s -S是等价的;
  • 长选项:也叫GNU格式长选项,使用方法是--后面加字面词,如:--format=verbose--all--human-readable--size
  • BSD格式选项:命令后面加上单个字符。

值得注意的是,基本在所有情况下,长选项、短选项、BSD选项三者可以相互替换与混用,如:

  • -a等价于--all
  • -h等价于--human-readable
  • -s等价于--size
  • --format=verbose等价于-l

2. 其他帮助命令

除了man以外,还可以用help通过如下两种方式来查看命令的帮助文档;

  • 内部命令3help command ,如:cd命令;
  • 外部命令:command --help,如:ls命令。

如果需要区分某条命令是否为内部命令,可以使用type命令来确定,如:

root@ubuntu64:~# type cd
cd is a shell builtin
root@ubuntu64:~# type ls
ls is aliased to `ls --color=auto'

二、具体指令

1. ls(查看文件或文件夹)

1.1 基本使用

全称含义选项对象
list以列表形式显示路径下的文件(夹)-l:以列表形式显示
-a:显示隐藏文件
-h:以可读性较高的方式显示
路径

需要注意的是:

  • 如选项-a所暗示的,Linux中也有隐藏文件(夹),实际上,Linux中的隐藏文件均是以.开头;
  • 所有路径下都包含两个默认目录,即.表示当前目录,..表示上一级目录。

另外,当使用ls -lh时,会以更可读的方式显示文件(夹)列表,所谓更可读是指:当文件(夹)大小超过1024KB时,用MB表示;超过1024MB时,用GB表示,以此类推。此外,计算机中其他表示文件大小的单位还有:

单位全称含义
兆字节MegaByte1MB = 1024KB,百万字节
千兆字节GigaByte1GB = 1024MB,十亿字节
太字节TeraByte1TB = 1024GB,万亿字节
拍字节PetaByte1PB = 1024TB,千万亿字节
艾字节ExaByte1EB = 1024PB,百亿亿字节
泽字节ZettaByte1ZB = 1024EB,十万亿亿字节
尧字节YottaByte1YB = 1024ZB,一亿亿亿字节

1.2 配合通配符使用

ls支持的常用通配符包括:

通配符含义
*代表任意个数个字符
?代表任意一个字符
[]表示匹配字符组中的任意一个
[abc]代表匹配abc中的任意一个
[a-f]代表匹配从af范围内的任意一个字符

如:

  • ls 1*表示查找显示当前路径下所有以1开头的文件
  • ls *1.txt表示查找显示当前路径下所有以1结尾的txt文件
  • ls ?1?.txt表示查找显示当前路径下所有文件名为三个字符的txt文件,且该文件的文件名第二个字符是1
  • ls [12345]23.txt表示查找显示当前路径下(如果存在)123.txt223.txt323.txt423.txt523.txt

2. pwd(显示当前工作路径)

全称含义
print working directory显示当前工作目录的路径

3. cd(切换工作目录)

3.1 基本使用

全称含义对象
change directory切换当前工作目录文件夹路径

3.2 其他使用

命令含义
cd ~切换到当前用户的主目录(/home/用户目录)
cd .保持在当前目录不变
cd . .切换到上级目录
cd -在最近两次工作目录之间切换

4. mkdir(创建文件夹)

全称含义选项对象
make directory创建目录-p:一次性创建多层不存在的文件夹文件夹路径

需要注意的是,在Linux中的当前工作目录下,新建目录的名称不能与当前目录中已有的目录或文件同名。

5. touch(创建文件)

全称含义对象
touch在制定位置创建文件文件路径

需要注意的是,当计划创建的文件已经存在,可以修改文件的末次修改时间。

6. tree

全称含义选项
tree以树形结构显示当前路径的文件(夹)-d:仅显示文件夹(目录)

7. cp(复制文件或文件夹)

全称含义选项对象
copy复制文件(夹)1. -r:以递归方式复制指定目录下的所有子目录和文件,目标文件必须为一个目录名
2. -i:覆盖文件前进行提示
源文件(夹)路径 目标文件(夹)路径

8. mv(移动或重命名)

全称含义选项对象备注
move1.剪切、粘贴文件(夹)
2.文件(夹)重命名
-i:覆盖前提示源文件(夹)路径 目标文件(夹)路径当使用该命令是,既指定了源文件路径,又指定了目标文件路径一致时,该命令等同于剪切、粘贴、重命名或同路径重命名

9. rm(删除文件或文件夹)

全称含义选项对象
remove删除文件(夹)1. -r:以递归方式删除文件(夹)
2. -f:强制删除,忽略不存在的文件(夹),无需提示
文件(夹)

值得注意的是, rm 命令也支持类似如2.1.2所示的通配符操作。

如果想要删除某目录下除了指定文件以外的所有文件,可以使用类似如下的语法:

# 删除当前目录下除了$file1和$file2的所有文件
rm -rf !($file1|$file2) 

10. 重定向

一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符,通过重定向可以改变进程默认输入和输出的文件:

符号含义对象
<针对标准输入进行重定向文件
>针对标准输出进行覆盖重定向文件
>>针对标准输出进行追加重定向文件
2>针对标准错误输出尽心重定向文件
&>针对标准输出或错误输出进行重定向文件
root@ubuntu64:~# wc -l < /etc/passwd
31
root@ubuntu64:~# read var < /etc/passwd
root@ubuntu64:~# echo $var
root:x:0:0:root:/root:/bin/bash
root@ubuntu64:~# echo $var > output.txt
root@ubuntu64:~# cat output.txt 
root:x:0:0:root:/root:/bin/bash
root@ubuntu64:~# echo $var >> output.txt
root@ubuntu64:~# cat output.txt 
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
root@ubuntu64:~# nocmd 2> error.txt
root@ubuntu64:~# cat error.txt 

Command 'nocmd' not found, did you mean:

  command 'nxcmd' from deb libnxcl-bin (0.9-3.1ubuntu4)

Try: apt install <deb name>

12. echo(文字内容)

echo会在终端中显示参数指定的文字,通常会和重定向命令一起使用。

13. cat(合并且打印文件)

全称含义选项对象备注
catenate1.直接在终端打开一个文件;
2.合并多个文件
-b:对非空输出行编号
-n:对所有输出行进行编号
1.文件路径
2.待合并文件1路径 待合并文件2路径 …
一般cat命令用来合并文件时和重定向命令结合使用

14. head(输出文件的第一部分)

NAMESYNOPSISDESCRIPTION
headhead [OPTION]... [FILE]...将每一个FILE前10行打印至标准输出,当FILE不止一个时,在每一个前面添加其名称作为标题。长选项的必需参数对于短选项也是必需的。

[OPTION]典型取值

  • -n,等价于--lines=[-]NUM:打印前NUM行而非前10行;当选择指定-时,打印每一个文件中最后NUM行的所有内容。

下面通过一个案例解释长选项的必需参数对于短选项也是必需的这句话的含义:

  • 首先,通过长选项--lines仅打印/etc/ucf.conf文件的前8行命令如下:
root@ubuntu64:~# head --lines=8 /etc/ucf.conf 
#
# This file is a bourne shell snippet, and is sourced by the
# ucf script for configuration.
#

# Debugging information: The default value is 0 (no debugging
# information is printed). To change the default behavior, uncomment
# the following line and set the value to 1.
  • 其次,由于此时使用长选项--linesNUM必须指定为8,因此使用对应短选项-n时,也必须指定,如下:
root@ubuntu64:~# head -n8 /etc/ucf.conf 
#
# This file is a bourne shell snippet, and is sourced by the
# ucf script for configuration.
#

# Debugging information: The default value is 0 (no debugging
# information is printed). To change the default behavior, uncomment
# the following line and set the value to 1.

15. more(显示文件)

全称含义对象
more在终端直接显示文件文件路径

可以看出命令catmore均可以直接在终端查看文件内容,但:

  • more命令可以用于分屏显示文件内容,每次显示一页内容,因而适合于查看内容较多的文本文件;
  • cat命令会一次显示所有的内容,适合查看内容较少的文本文件;
  • 另外,使用more命令后还支持下列操作键:
操作键功能
空格键显示下一屏
Enter一次滚动一行
b回滚一屏
f前滚一屏
q退出

16. find(查找文件或目录)

全称作用选项对象备注
find用于查找文件1. -name:根据名称搜索
2. -type:根据类型搜索
路径当使用-type选项时,其后只能指定f(ile)d(irectory)

如:find / -name "*.conf" | wc -l表示统计根目录下.conf文件的总数量。
如:find / -type d | wc -l表示统计根目录下所有文件夹的总数量。

17. ln(建立文件链接)

软/硬链接概念

在Linux中存在软/硬链接的概念,为了理解二者的含义,需要明确的是:

  • 首先,在Linux中,文件名文件的数据是分开存储的;
  • 其次,文件名是地址的别名(便于人记忆);
  • 最后,在计算机中,地址是以十六进制0x形式开头。

基于这三点,结合下图,可知:

对于软链接

  • 软链接文件名是地址0x1004的别名;
  • 该地址处存储的数据是软链接文件数据的地址0x1003
  • 该地址存储了被链接文件名所代表的地址0x1002
  • 而这一地址处又保存了文件数据的存储地址0x1001
  • 最后通过该地址即可找到被链接文件的数据。

由此可知:

软链接通过文件名间接访问文件数据,如果将文件名删除,该访问链条将被切断,则无法再访问到文件数据。另外,可以将软链接简单理解为Windows操作系统中的快捷方式

对于硬链接,其和文件名平起平坐,即使删除文件名,由于硬链接文件名所代表的的地址处存储了文件数据的地址,因此还是可以访问文件数据。

建立链接命令

全称作用选项对象
link建立文件链接-s:建立被链接文件的软链接
不指定选项时,创建的是硬链接
以绝对路径方式(使用相对路径创建的软链接在被移动至别的目录后,将失效)给出的源文件 待制定的软链接名

18. tar(文件打包)

全称作用选项对象
tape archive文件打包-z:调用gzip命令,等价于--gzip--gunzip--ungzip
-j:调用bzip2命令,等价于--bzip2
-c:生成档案文件,等价于--create
-v:列出归档/解档的详细过程,显示进度,等价于--verbose
-x:解开档案文件,等价于--extract--get
-f:指定打包档案名称,f后面一定是.tar文件,该选项必须放最后,其他选项顺序无要求,等价于--file=ARCHIVE
-C:等价于--directory=DIR
打包文件.tar被打包的文件(夹)路径

打包命令举例

  • tar -cvf etc.tar /etc表示将根目录/下的etc中的所有文件打包为一个etc.tar文件。
  • 更进一步地,如果希望打包的同时压缩文件,可以使用命令:
    • tar -zcvf etc.tar.gz /etc,或者:
    • tar -jcvf etc.tar.bz2 /etc

解包命令举例

  • tar -xvf etc.tar表示将etc.tar文件解包至当前目录;
  • 同样更进一步地,如果希望解压缩文件后解包,可以使用命令:
    • tar -zxvf etc.tar.gz
    • 再进一步,如果希望解压缩文件后,在解包的同时制定解包路径,可以使用命令:
      • tar -zxvf etc.tar.gz -C path,或者:
      • tar -jxvf etc.tar.bz2 -C path

18. gzip/bzip2(文件解压缩)

全称作用选项对象
GNU zip压缩/解压缩文件-z:压缩/解压缩文件打包文件.tar.gz被压缩的打包文件路径
bzip2压缩/解压缩文件-j:压缩/解压缩文件打包文件.tar.bz2被压缩的打包文件路径

  1. 具体的显示取决于输出设备,通常在终端中,斜体无法显示,取而代之的是,使用下划线表示斜体。 ↩︎

  2. 基本所有命令的DESCRIPTION部分都有这样一句话Mandatory arguments to long options are mandatory for short options too.其字面意思是“长选项的必需参数对于短选项也是必需的。”具体含义请见本文后续部分↩︎

  3. 所谓内部命令是指shell(命令解释器)自带的命令,其他的则是外部命令: ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值