【Linux入门学习笔记】Linux命令查阅方法及文件操作命令简介
文章目录
- 一、指令构成
- 1. `man`帮助命令
- 1.1 如何阅读`SYNOPSIS`
- 1.2 如何阅读`DESCRIPTION`[^2]
- 2. 其他帮助命令
- 二、具体指令
- 1. `ls`(查看文件或文件夹)
- 1.1 基本使用
- 1.2 配合通配符使用
- 2. `pwd`(显示当前工作路径)
- 3. `cd`(切换工作目录)
- 3.1 基本使用
- 3.2 其他使用
- 4. `mkdir`(创建文件夹)
- 5. `touch`(创建文件)
- 6. `tree`
- 7. `cp`(复制文件或文件夹)
- 8. `mv`(移动或重命名)
- 9. `rm`(删除文件或文件夹)
- 10. 重定向
- 12. `echo`(文字内容)
- 13. `cat`(合并且打印文件)
- 14. `head`(输出文件的第一部分)
- 15. `more`(显示文件)
- 16. `find`(查找文件或目录)
- 17. `ln`(建立文件链接)
- 软/硬链接概念
- 建立链接命令
- 18. `tar`(文件打包)
- 18. `gzip/bzip2`(文件解压缩)
最近,公司需要将一台运行着CentOS(Linux的一个发行版本,通常用于企业服务器)的服务器上的数据迁移到另一台新设备上,虽然以前也基本系统学过Linux的指令,但当时并没有系统的记录和梳理,所以,借着这次机会,好好把常用的指令记录、梳理一下。
一、指令构成
一条典型的Linux指令组成为:command [-option] [parameter]
。需要指出的是,[]
表示指令后的选项和操作对象均可选。
1. man
帮助命令
由于Linux的命令繁多,每个命令又有很多选项,因此Linux自带了man
命令,可以很方便地查询每个命令的对应选项和被操作对象的说明。
全称 | 含义 | 对象 |
---|---|---|
manual
|
Linux系统提供的参考手册 |
其他Linux命令,如:ls 、cd 等
|
一般通过man
命令查出来的指令帮助大致可分为:
NAME
:命令名称;SYNOPSIS
:命令格式;DESCRIPTION
:命令描述,选项和对象的详细使用方法在此部分介绍;AUTHOR
:作者;REPORTING BUGS
:报告bug;COPYRIGHT
:版本;SEE ALSO
:另见。
最重要的两部分分别为SYNOPSIS
和DESCRIPTION
。
1.1 如何阅读SYNOPSIS
下面以命令ls
的SYNOPSIS
为例,即:
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 100K40K drwxr-xr-x 2 root root 36K Mar 2 22:48 bin16K 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
文件夹。
命令ls
的SYNOPSIS
含义如下:
格式 | 含义 | 举例 |
---|---|---|
粗体
|
原样输入终端 |
如上述命令中ls 直接输入
|
斜体 1
|
用合适参数代替 |
如上述命令中分别用选项-ahsS --format=verbose 和文件路径代/usr 替OPTION 和FILE
|
[-abc]
|
[] 中的参数均可选
|
如上述命令中,选项均可省略,文件路径也可以省略(此时默认为当前路径) |
-a|-b
|
| 两边的选项不能同时指定
|
无 |
argument ...
|
可指定多个参数 | 如上述命令中,选项和对象均为多个 |
[ expression ] ...
|
[] 中的整个部分均可为多个
|
无 |
1.2 如何阅读DESCRIPTION
2
命令选项的指定一般有三种方式:
- 短选项:也叫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
通过如下两种方式来查看命令的帮助文档;
- 内部命令3:
help
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表示,以此类推。此外,计算机中其他表示文件大小的单位还有:
单位 | 全称 | 含义 |
---|---|---|
兆字节 | MegaByte | 1MB = 1024KB,百万字节 |
千兆字节 | GigaByte | 1GB = 1024MB,十亿字节 |
太字节 | TeraByte | 1TB = 1024GB,万亿字节 |
拍字节 | PetaByte | 1PB = 1024TB,千万亿字节 |
艾字节 | ExaByte | 1EB = 1024PB,百亿亿字节 |
泽字节 | ZettaByte | 1ZB = 1024EB,十万亿亿字节 |
尧字节 | YottaByte | 1YB = 1024ZB,一亿亿亿字节 |
1.2 配合通配符使用
ls
支持的常用通配符包括:
通配符 | 含义 |
---|---|
*
|
代表任意个数个字符 |
?
|
代表任意一个字符 |
[]
|
表示匹配字符组中的任意一个 |
[abc]
|
代表匹配a 、b 、c 中的任意一个
|
[a-f]
|
代表匹配从a 到f 范围内的任意一个字符
|
如:
ls 1*
表示查找显示当前路径下所有以1开头的文件ls *1.txt
表示查找显示当前路径下所有以1结尾的txt文件ls ?1?.txt
表示查找显示当前路径下所有文件名为三个字符的txt文件,且该文件的文件名第二个字符是1ls [12345]23.txt
表示查找显示当前路径下(如果存在)123.txt
、223.txt
、323.txt
、423.txt
、523.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
(移动或重命名)
全称 | 含义 | 选项 | 对象 | 备注 |
---|---|---|---|---|
move |
1.剪切、粘贴文件(夹) 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
(合并且打印文件)
全称 | 含义 | 选项 | 对象 | 备注 |
---|---|---|---|---|
catenate
|
1.直接在终端打开一个文件; 2.合并多个文件 |
-b :对非空输出行编号-n :对所有输出行进行编号
|
1.文件路径 2.待合并文件1路径 待合并文件2路径 … |
一般cat 命令用来合并文件时和重定向命令结合使用
|
14. head
(输出文件的第一部分)
NAME
|
SYNOPSIS
|
DESCRIPTION
|
---|---|---|
head
|
head [ 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.
- 其次,由于此时使用长选项
--lines
时NUM
必须指定为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
|
在终端直接显示文件 | 文件路径 |
可以看出命令cat
和more
均可以直接在终端查看文件内容,但:
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中存在软/硬链接的概念,为了理解二者的含义,需要明确的是:
- 软链接文件名是地址
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 被压缩的打包文件路径
|
具体的显示取决于输出设备,通常在终端中,斜体无法显示,取而代之的是,使用下划线表示斜体。 ↩︎
基本所有命令的
DESCRIPTION
部分都有这样一句话Mandatory arguments to long options are mandatory for short options too.
其字面意思是“长选项的必需参数对于短选项也是必需的。”具体含义请见本文后续部分。 ↩︎所谓内部命令是指shell(命令解释器)自带的命令,其他的则是外部命令: ↩︎
【Linux入门学习笔记】Linux命令查阅方法及文件操作命令简介相关推荐
- 【Linux】Linux入门学习之常用命令一
介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...
- 【Linux】Linux入门学习之常用命令二
介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...
- 【Linux】Linux入门学习之常用命令三
介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...
- 【Linux】Linux入门学习之常用命令四
介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...
- 一个.NET Core开发者的Linux入门学习笔记
用.NET Core开发也有一段时间了,但是由于工作原因一直都是在Windows系统上进行的开发,一直想学习Linux然后把.NET Core开发的程序跑在Linux上,然后把心得体会记录一下发布再博 ...
- Linux入门学习笔记
在学习Linux之前,首先遇到的是安装系统遇到的问题,而这对于我这个初学者来说,出现了很多次错误,导致自己安装成功花掉大量时间.为了以后不再犯错,决定写下安装时,通过边学边解决时的心得记录. 首先的进 ...
- linux入门学习笔记(韩顺平主讲)
第1讲 linux介绍 1.linux的特点 1)免费/开源 2)支持多线程/多用户 3)安全性好 4)对内存和文件管理优越 ...
- linux从头学习笔记-基础命令和简单知识(1)
[1] ubuntu windows mac | | | linux NT unix 内核 . Linux的文件系统中名字不能随便起 bin 二进制文件夹 boot 启动文件夹 dev 设备文件夹 h ...
- Linux入门学习笔记之基础
目录 Linux目录结构介绍 Linux用户介绍 Linux 常用命令介绍 pwd命令 cd命令 ls命令 Linux文件操作 创建文件 删除文件 Linux文件夹操作 创建文件夹 删除文件夹 Lin ...
最新文章
- 跟着老王学python
- 009 数据结构逆向—数组(困难版)
- 探讨BI可视化下的旅游大数据分析,你的钱都花哪了?
- python循环输入若干成绩_完美解决在oj中Python的循环输入问题
- Dropout_layer.cpp(防止过拟合)
- Tensorflow入门神经网络代码框架
- 《软件调试分析技术》学习笔记
- 利用坐标变换证明惯性主轴方向是惯性矩的极值方向
- CreateFeatureClass COM异常
- Hibernate--关系映射和关联关系的CRUD
- rssi室内定位算法原理_室内定位方案常用的4种定位算法
- 农村金融大变革,央行要给农民发钱了!
- 番外篇:根据学习程度划分程序员的级别
- python是什么专业学的-自学Python有什么好方法吗?老男孩专业Python培训
- PHP原生实现,校验微信公众号||小程序服务器地址
- (转)比特币该如何扩容
- 服务器蓝屏显示7f,电脑蓝屏代码7f怎么解决 如何处理电脑蓝屏代码7f
- 维谛技术(Vertiv)开启网络能源新时代
- 微信气泡主题设置_微信猫和老鼠主题皮肤怎么设置 华为手机设置气泡主题方法...
- 最佳实践 | 通过用户画像工具确定目标用户
热门文章
- Win7(Win2003)下安装Node.js(版本号:v0.11.0)提供下载
- 软件测试工程师自我介绍范文_应届生软件测试面试自我介绍范文6篇
- 【黄啊码】MySQL入门—3、我用select *,老板直接赶我坐火车回家去,买的还是站票
- 计算机怎么把音乐调出来怎么办,五步教你轻松调出好音乐,汽车音响调音就是这么简单-音频管理器怎么设置...
- NLP实操手册: 基于Transformer的深度学习架构的应用指南(综述)
- 把一个把正整数分解为素数乘积
- C++什么时候用new,什么时候不用new
- 老夫整理的1000行MySQL学习笔记,等待有缘人
- 免费的天气预报API--谷歌,雅虎,中央气象台
- Android 13新特性:自动清除剪贴板历史记录