0 学习目标
- 掌握Linux命令终端格式及查看命令帮助信息;
- 掌握Linux文件和目录常用命令;
- 掌握Linux系统信息相关的命令;
- 掌握Linux用户权限和管理的命令;
- 掌握Linux其他的常用命令。
1 终端命令格式
1.1 终端格式介绍
命令格式:command [-options] [parameter]
参数说明:
Command
:命令名称[ ]
:表示可选项[-options]
:命令选项,可有可无[Parameter]
: 命令参数,可以不传,也可以传一个或多个
1.2 查看命令帮助信息:–help
命令格式:command --help
(两个-)
说明:显示 command 命令的帮助信息(help命令比较简洁)
1.3 查看命令帮助信息:–man
命令格式:man command
说明:查看command 命令的使用手册(man命令比较详细)
man操作键说明:
- 空格键:显示手册的下一页
- Enter键:滚动显示手册的下一行
- B:显示上一页
- F:显示下一页
- q:退出
- /word:搜索word字符串
例子:man ls
2 文件和目录常用命令
- 查看目录内容:
ls
- 切换目录:
cd
- 创建和删除操作:touch、rm、mkdir
- 拷贝和移动文件:cp、mv
- 查看文件内容: cat、more、grep
- 重定向和管道符、pwd、clear
2.1 查看目录内容 --ls【重点】
命令格式:ls [-lah(选项)] [文件或目录]
ls
参数说明:
-l
:以列表方式详细显示内容信息-a
:显示所有文件,包含隐藏文件及目录-h
:配合-l
显示出文件的大小(K、M)
ls
:列举当前目录的文件内容
ls -l
ls -a
:显示隐藏文件
ls -lh
:h一定要和l一起使用,显示出文件的大小
ls -lha
:以列表方式,更加人性化,显示所有文件
ls -lha /usr/bin
:查看/usr/bin
常用通配符
*
:表示0到多个任意字符。示例:ls *.txt
,ls test*
?
:表示一个任意字符。
[abcd]
:表示可以匹配a、b、c、d中的任何一个字符。
[a-f]
:匹配从a到f范围内的的任意一个字符。
【练习】
-
查看当前目录下所有的文件信息,包含隐藏文件。
答:ls -a
-
查看根目录下所有的文件信息,并以列表的方式详细列出对应文件的大小。
答:ls -lh /
-
查看/bin目录下的所有.sh结尾的文件。
答:ls /bin/*.sh
【提示】清屏:ctrl+L
2.2 切换目录 --cd【重点】
命令格式:cd [目录名称]
cd命令说明:
cd
或者cd ~
:快速切换到当前用户的主目录(/home/用户目录)cd .
:切换到当前目录cd ./
:与cd .
等价,切换到当前目录cd ..
:切换到上一级目录cd -
:切换到上一次所在的目录
【注】cd后有空格!
注意:文件及目录名称区分大小写
- 绝对路径:以根路径或家路径开头,表示从根目录 / 家目录开始的具体目录位置(唯一的)
- 示例:/开头;~/开头(
~
就是/home/用户
) - 相对路径:不以根路径或者家目录开头,表示相对当前目录所在的目录位置(有个参照物)
提问:
现在在/usr/bin
下输入命令cd /home
和cd home
,有什么区别?
回答:
cd /home
是先找/,进入/后,找home;
cd home
是在当前路径下,找home(找不到,因为没有home文件)。
【练习】
-
以绝对路径的方式切换到
/etc/kernel
目录下。
答:cd /etc/kernel
-
以相对路径的方式切换到
/home
目录下。
答:,应该是cd
或cd ~
cd /home
【注】cd
进入的是/home/admin
,不是/home
。
-
以相对路径的方式切换到
/usr/local
目录下。
答:先cd /
,再cd usr
,然后cd local
。
【注】如果写成cd /usr
就是绝对路径。
2.3 创建文件 --touch
命令格式:touch 文件名
(多个文件名之间用空格隔开)
touch
命令说明:
- 如是文件名不存在,创建对应的文件。
- 如果文件名已存在,则更新文件的修改时间。
2.4 创建目录 --mkdir【重点】
命令格式:mkdir 目录名称
(多个文件名之间用空格隔开)
mkdir
命令说明:
- 可以跟上 –p 选项,实现递归创建(即多个层级的目录创建)。示例:
mkdir -p a/b/c
- 目录名称不能与当前目录下的文件或目录同名。
【区别】 mkdir APP
:在当前路径下,新建APP文件夹。mkdir /APP
:在根路径下,新建APP文件夹。
2.5 删除文件或目录 --rm(永久删除)【重点】
命令格式:rm [-ifr(选项)] 目录名或文件名
选项参数说明:
-i
:表示交互式执行,删除前会询问是否删除。-f
:表示强制删除,忽略不存在的文件,无需提示。-r
:表示删除文件夹及文件夹下所有内容。
【练习】
-
在
/opt
目录下创建以下目录:test1、test2、test3。
答:先cd /opt
,再mkdir test1 test2 test3
。
-
在
test1
目录下创建abc.txt以及 test.txt两个文件。
答:先cd test1,再touch abc.txt test.txt
。
-
删除
/opt
目录下所有的test开头的目录。
答:先cd ..
,再rm -rf test*
。
2.6 复制文件 --cp【重点】
命令格式: cp 源文件 目标文件
常用选项说明:
-f
:强制覆盖已存在的目标文件而不提示。-i
:交互式复制,覆盖时会提示用户确认(每次操作都要询问)。-r
:若源文件为目录,则复制该目录下的所有内容。(文件夹才需要-r)-v
:显示复制的进度(一般不用)。
2.7 文件或目录的移动 --mv【重点】
命令格式: mv 源文件 目标文件
常用选项说明:
-f
:强制覆盖已存在的目标文件而不提示。-i
:交互式复制,覆盖时会提示用户确认。-v
:显示复制的进度(一般不用)。- mv命令除了移动文件之外还可以用来修改文件名称。
【练习】
-
将
/etc/hosts
文件复制到/opt
目录下。
答:sudo cp /etc/hosts /opt
。 -
将
/opt/hosts
文件移动到/etc
目录下。
答:sudo mv /opt/hosts /etc
。
【提示】
快捷键:
ctrl+a:跳至句首
ctrl+e:跳至句尾
ctrl+c:中断
ctrl+l:清屏
2.8 查看文件命令
常用查看文件命令:
- cat 文件名:适用于查看内容较少的文件,可以用来查看文件、创建文件、合并文件、追加文件等功能。
- more 文件名:适用于查看内容较多的文件,用于分屏显示文件内容。
- grep 文件名:适用于查看内容较多的文件,关键文件。
2.8.1 查看文件内容 --cat
命令格式: cat 文件名
命令说明:
cat
可以用来查看文件、创建文件、合并文件及追加文件。cat
查看文件时会一次显示所有内容,适用于内容较少的文件。
常用选项说明:
-b
:对非空行输出行编号。-n
:对所有行输出行编号。
cat /usr/inclde/wayland-client.h
cat -n /usr/inclde/wayland-client.h
cat -b /usr/inclde/wayland-client.h
2.8.2 查看文件内容 --more
命令格式: more 文件名
命令说明:
- more命令用于分屏显示文件内容,每次显示一页内容。
- 适用于查看文件内容较多的文件。
more操作键说明:【是在已经写入命令后回车,再按下操作键】
空格键
:显示文件的下一页内容。Enter键
:滚动显示文件下一行内容。b
:显示文件的上一页内容(回滚上一页)。f
:显示文件的下一页内容。q
:退出。
more /usr/inclde/wayland-client.h
省略前面的结果…
2.8.3 查看文件内容 --grep【重点】
命令格式: grep 文件名
命令说明: grep 是一个强大的文本搜索工具,允许对文本进行模式查找(正则表达式)。
常用选项说明:
-v
:显示不包含匹配文本的所有行(相当于取反)。-n
:显示匹配的行及行号。-i
:忽略大小写。
grep 常用正则表在式:
^a
: 搜索行首内容以a文本开头的行。 例如:grep –n '^a' 1.txt
ke$
: 搜索行尾内容以ke文本结尾的行。例如:grep –n 'ke$' 1.txt
[Ss]igna[Ll]
: 匹配[]中的任意一个字符,搜寻匹配单词为 SignaL、Signal、signaL、signal的行;例如:grep –n ' [Ss]igna[Ll] '
【练习】
-
通过
cat
查看/etc/hosts
文件的内容。
答:cat /etc/hosts
。 -
通过
more
查看/var/log/messages
文件的内容。
答:more /var/log/messages
。 -
通过
grep
搜索/var/log/messages
文件中包含vmware
或者Vmware
关键字的信息行。
答:grep -i 'vmware' /var/log/messages
。
【提示】-i 忽略大小写。
2.9 其他命令——重定向>、>>
说明:
- Linux允许将命令执行结果重定向到另一个文件中。
- 可以将显示在终端的内容通过重定向添加或追加到另一个文件中。
>
重定向符号表示输出到新文件中,会覆盖文件中原有内容。>>
重定向符号表示追加到新文件中,不会覆盖文件中原有的内容。 例1:ls -l > 1.txt
例2:ls –l >> 1.txt
示例:
cat 1.txt > 2.txt
:将1.txt的内容覆盖掉2.txt的内容。
cat 1.txt >> 2.txt
:追加1.txt文件到2.txt后面。
cat 1.txt 2.txt > 3.txt
:将1.txt和2.txt的内容合并到3.txt文件当中。
2.10 其他命令——管道符号|
说明:
- Linux 允许将 一个命令的输出结果 可以 通过管道 做为 另一个命令的输入。
常用的管道命令:
- more:分屏显示执行结果。
- grep:通过grep过滤执行结果的内容。
例1: ls -l /usr/bin | grep more
ls -l /usr/bin
的内容放入管道,通过管道,过滤出只包含more关键字的信息。
例2: ls /usr/bin | grep ‘^au‘
ls -l /usr/bin
的内容放入管道,通过管道,过滤出只包含au开头关键字的信息。
2.11 其他命令 --pwd、–clear、–which
命令格式: pwd
说明:pwd命令用于显示当前所在的目录。
命令格式:clear
说明:clear命令用于清屏。
命令格式:which 工具名称
说明:which命令用于查找工具或者程序的安装位置,例如:which ls
。
2.12 回显 --echo【拓展】
更多是结合管道用的,下图简单演示。
【练习】
-
通过重定向命令删除 /var/log/messages文件中的内容。
答:echo ' ' > /var/log/messages
。
为了不随意删除上述文件内容,改成删除APP.txt的内容。
echo ' ' > APP.txt
-
通过重定向命令将1.txt 和 2.txt的文件内容合并到3.txt文件中。(1.txt和2.txt文件内容自己 定义)
答:cat 1.txt 2.txt > 3.txt
。
-
通过grep过滤出 /bin 目录下包含 test 文本的内容。
答:ls /bin | grep test