linux基本命令的使用
首次发布时间:2020/7/10
最后修改时间:2020/7/10
摘要
- 常用 Linux 命令的基本使用
- ls 常用选项及通配符的使用
- 切换目录
- 删除目录/文件
- 修改文件名称/移动文件
- 复制文件
- 创建文件
- 创建文件夹
- 查看文件内容
- 创建链接
- find 命令
- grep 命令
- 管道
|
的介绍 - Linux 权限描述格式解读
- 修改文件权限
Linux 下文件和目录的特点
- Linux 文件或者目录的名称最长可以有 256 个字符
- 以
.
开头的文件为隐藏文件,需要用-a
参数才能显示(ls -a
)
目标:
- 理解学习 linux 终端命令的原因
- 常用 linux 命令实践
原因:
- Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等
- 工作中,大量的服务器维护工作都是在远程通过 SSH 客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成
- Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
- 学习终端命令的技巧:
- 不需要死记硬背,对于常用命令,用的多了,自然就记住了
- 不要尝试一次学会所有的命令,有些命令是非常不常用的,遇到时百度就可以了
常用 Linux 命令的基本使用
序号 | 命令 | 对应英文单词 | 作用 |
---|---|---|---|
01 | ls | list | 列出当前文件夹下的文件 |
02 | pwd | print work directory | 查看当前所在文件夹的路径 |
03 | cd [目录名] | change directory | 切换文件路径 |
04 | touch [文件名] | touch | 如果文件不存在,新建文件 |
05 | mkdir [文件名] | make directory | 创建目录 |
06 | rm [文件名/目录名] | remove | 删除指定的文件或目录 |
07 | clear | clear | 清屏,等同于 ctrl + L |
08 | mv [文件名/目录名] [文件名/路径] | move | 两个作用:[修改文件或目录名为新的名字][移动文件或目录到新的路径下] |
09 | cp [文件名/目录名] [路径] | copy | 复制文件/目录到新的路径下 |
10 | cat [文件名] | Concatenate(连接) | 查看文件内容 |
11 | su | Switch user | 切换用户,切换到 root 用户;"-" 表示用户的环境变量一起切换;"-c",表示仅执行一次命令,而不切换用户身份 |
12 | chown | Change owner | 改变所有者 |
13 | chgrp | Change group | 改变用户组 |
14 | ps | Change group | 查看进程状态 |
15 | chmod 权限数字 [文件名/目录名] | Change mode | 改变文件或目录权限 |
16 | head | head | 查看文件前几行(默认10行);-n:指定行数 |
17 | tail | tail | 查看文件的后几行;-n:指定行数;-f(follow)动态显示文件内容 |
18 | ln | link | 产生链接文件,类似 win 中创建快捷方式 |
19 | man | manual | 获取命令或者配置文件的使用手册;详细可看:linux 终端命令格式 |
20 | help | help | 查看 shell 内置命令的帮助信息 |
- 注意:
- touch 创建的是文件,而 mkdir 创建的是文件夹
- 删除文件夹,需要用
rm -rf 文件夹名
命令来删除 su
或su root
表示切换至 root 用户;su oracle
表示切换至普通用户su -
或su - root
或su - oracle
表示既切换用户,又切换工作目录
小技巧:
ctrl
+shift
+=
:放大 终端窗口的字体显示
ctrl
+-
:缩小 终端窗口的字体显示
文件系统操作
- 常用选项
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 使用,以人性化的方式显示文件大小(文件大小以 G,M,K 为单位显示,更加方便理解) |
注意:
ll
等同于ls -al
,使用起来相当方便
- ls 通配符的使用
通配符 | 含义 |
---|---|
* | 表示任意个数的字符 |
? | 代表任意一个字符,至少 1 个 |
[] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配 a、b、c 中的任意一个字符 |
[a-f] | 匹配从 a 到 f 范围内的的任意一个字符 |
我一般就用
*
比较多,其它没用过
*
比较通用一点,要精确匹配的话可以用其它通配符
切换目录
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 在最近两次工作目录之间来回切换(这个命令很好用,省去切换目录时输入路径的麻烦) |
- 相对路径和绝对路径
- 相对路径:在输入路径时,最前面不是
/
或者~
,表示相对 当前目录 所在的目录位置- 例如:
~/directory$ cd work/job
- 例如:
- 绝对路径:在输入路径时,最前面是
/
或者~
,表示从 根目录/家目录 开始的具体目录位置- 例如:
cd /home/user/directory/work/job
- 例如:
- 相对路径:在输入路径时,最前面不是
删除目录/文件
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 对应英文单词 | 含义 |
---|---|---|
-f | force | 强制删除,忽略不存在的文件,无需提示,即使是只读文件也直接删除,不作提示 |
-r | recursive | 递归地删除目录下的内容,删除目录时必须加此参数 |
扩展
- 一些文件乱码后,使用 rm -rf 仍然无法删除
- 此时,先使用
ll -i
查找到文件的 inode 节点(下图 “23047…” 就是文件的 inode 编号)
- 然后使用
find . -inum [查找到的 inode 编号] -exec rm {} -rf \\;
命令
- 就可以成功删除了
修改文件名称/移动文件
mv aaa bbb
:把文件名 aaa 修改为 bbbmv aaa bbb/ccc
:将 aaa 文件移动到 bbb 目录下并改名为 ccc- bbb 目录必须存在,否则不能移动成功
复制文件
cp aaa 目标路径
:复制 aaa 文件到 目标路径 下
选项 | 含义 |
---|---|
-r | 递归地复制目录下的内容,复制目录时必须加此参数 |
-p | 保留文件属性 |
创建文件
- 创建文件或修改文件时间
- 如果文件不存在,可以创建一个空白文件
- 如果文件已存在,可以修改文件的末次修改日期(不改变文件内容)
- 用法:
touch 文件名
:创建文件touch {文件名1,文件名2}
:同时创建多个文件- 注意:
- 大括号里面不能有任何空格,否则创建出的文件不会是你想要的文件,可以自己试试
echo "Hello World" > aaa
:向文件 aaa 中写入 “Hello World”(如果 aaa 文件存在,则覆盖掉原来的内容)echo "Hello World" >> aaa
:向文件 aaa 中末尾处追加 “Hello World”(不会覆盖原来的内容)
创建文件夹
mkdir 目录名
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
- 例如:
- 执行
mkdir -p aaa/bbb
时 - 假如 aaa 目录不存在,会顺便把 aaa 目录也创建了,然后创建 bbb
- 而如果执行
mkdir aaa/bbb
- 在 aaa 不存在的情况下,命令会报错
- 执行
新建目录的名称不能与当前目录中已有的目录或文件同名,否则会提示错误 “File exists”
查看文件内容
1. cat
cat 文件名
- cat 命令可以用来查看文件内容、进行文件合并
- cat 会一次性显示所有的内容,适合查看内容较少的文本文件
选项 | 含义 |
---|---|
-b | 对非空输出行进行编号 |
-n | 对输出的所有行进行编号 |
cat file1.txt > file2.txt | 将 file1.txt 文件的内容输出到 file2.txt 中 |
- 请看下图例子,帮助理解:
2. more
more 文件名
- more 命令可以用于分屏显示文件内容,每次只显示一页内容
- 适合于查看内容较多的文本文件
使用 more 的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示文件内容的下一屏 |
Enter 键 | 一次滚动文件的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
3. head
head 文件名
- 查看文件的前几行
4. tail
tail 文件名
- 查看文件的后几行
创建链接
ln
ln -s [源文件] [链接文件]
- 创建软链接
ln [源文件] [链接文件]
- 创建硬链接
- 其实软链接文件就相当于 Windows 中的快捷方式,这样就很容易理解了
- 而硬链接文件,可以看成和源文件是同一个文件
工作中几乎不会建立文件的硬链接
源文件要使用绝对路径,不要使用相对路径,
这样可以方便移动链接文件后,仍然能够正常使用。
但其实用相对路径也能建立链接文件, 但是这样移动链接文件后就不能找到源文件了
- 详细可参考这篇文章:
find 命令
find [搜索路径] [匹配条件]
- find 命令用于查找文件或目录
- 例子:
find . -name 123.txt
- 在当前路径下查找 “123.txt” 文件
选项 | 作用 | 示例 |
---|---|---|
name | 按名称查找(精确查找) | find / -name 123.txt ,find . -name 123.txt ,(/ 表示当前目录,. 表示根目录) |
iname | 按名称查找,不区分大小写(模糊查找) | find / -iname abc* ,查找根目录下所有以 abc 开头的文件 |
size | 按文件大小查找(+:大于、-:小于、不写:等于) | find / -size -100M ,查找根目录下小于 100M 的文件 |
type | 按文件类型查找(f:二进制文件、l:软连接文件、d:目录、c:字符文件) | find / -type f ,查找根目录下的二进制文件 |
- 其实最常用的就是
find . -name 123.txt
,配合上通配符*
,一般就足够平常使用了
grep 命令
- grep 命令是 Linux 系统中一个强大的文本搜索工具
- 常见用法:
grep -rn "需要查找的内容"
选项 | 含义 |
---|---|
-r | 递归地查找目录下指定的内容 |
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
- grep 允许对文本文件进行模式查找
- 所谓模式查找,又被称为正则表达式
- 常用的两种模式查找
参数 | 含义 |
---|---|
^a | 行首,搜寻以 a 开头的行 |
ke$ | 行尾,搜寻以 ke 结束的行 |
- 用法:
grep -rn ^start
- 查找以 start 开头的行
grep -rn end$
- 查找以 end 结束的行
注意:双引号可以加,也可以不加
管道 |
- Linux 允许将一个命令的输出,通过管道,作为另一个命令的输入
- 这里
|
分为左右两边,左边命令的结果作为右边命令的输入
- 这里
- 常用的管道命令有:
- more:分屏显示内容
- grep:在命令执行结果的基础上查询指定的文本
- 例子:
ps | grep system
- 首先
ps
获取到所有进程的信息 - 然后
grep
命令在上述信息中找到包含 “system” 的行
- 首先
Linux 权限描述格式解读
- 示例:
drwxr-xr-x
d
:表示节点类型d
:文件夹(directory)-
:文件l
:链接文件(link)(一定是软链接,因为硬链接跟源文件类型一致,不会是l
)
r
:可读w
:可写x
:可执行
第一组
rwx
:表示文件拥有者
对它的权限:可读可写可执行
第二组x-r
:表示文件所属组
对它的权限:可读可执行,不可写
第三组x--
:其他用户组
权限(不包含以上两组):可执行,不可写、不可读
修改权限
字符修改权限
chmod g -rw aaa
:将 aaa 文件所在用户组权限设置为:不可读、不可写chmod o -rw
:将 aaa 文件其他用户组权限设置为:不可读、不可写chmod u+x
:将 aaa 文件所属用户权限增加 x
数字修改权限
- 建议用数字修改权限的方法,因为容易记,不易弄错,更加常用
r = 4
w = 2
x = 1
- 这种设置的巧妙之处在于,r/w/x 任意的组合,都对应着唯一的数字,所以可以方便地用下面的方式去设置权限:
chmod 777 aaa
:将 aaa 文件全部用户组的权限设置为可读、可写、可执行权限- 以 777 为例,每一位分别代表一个用户组,顺序如下:
- 文件拥有者/文件所属组/其他用户组
- 示例:
444 r–r--r–
600 rw-------
644 rw-r–r--
666 rw-rw-rw-
700 rwx------
744 rwxr–r--
755 rwxr-xr-x
777 rwxrwxrwx
多级目录权限的修改【递归修改权限】
chmod -R 644 aaa
:aaa 目录下所有的文件和文件夹的权限都更改为 644(包括 aaa 本身)
终端实用技巧
- 自动补全
- 在敲出 文件 / 目录 / 命令 的前几个字母之后,按下 TAB 键
- 如果输入的没有歧义,系统会自动补全
- 如果还存在其他 文件 / 目录 / 命令,再按一下 TAB 键,系统会提示可能存在的 文件 / 目录 / 命令
- 建议使用 TAB 键,因为不但方便,而且可以保证最后输入的内容一定是对的(因为是系统自动补全的)
- 曾经使用过的命令
- 按上/下光标键可以在曾经使用过的命令之间来回切换
- 如果想要退出选择,并且不想执行当前选中的命令,可以按
ctrl + c
退出