这篇笔记包含以下知识点:
- 几个概念的理解:Linux命令,控制台,终端, 终端提示符
- 对文件目录的操作的相关命令: 切换目录,列出目录下的文件等
- 对文件的操作的相关命令: 创建,删除,复制,修改,移动, 查找
- 对磁盘管理,建立链接的相关命令
- 文本搜索,归档, 压缩,解压的相关命令
- 其他一些常用命令, 对操作系统的一些常用命令
linux命令
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
控制台(console)
控制台(console)是我们通常见到的使用字符操作界面的人机接口,例如dos。
我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。
终端(Terminal)
终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。
- 有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。
终端提示符
- windows: C:Userspc-laowang>
- linux: python@ubuntu:/opt$
- python: 用户名
- ubuntu: 主机名( hostname)
- /opt: 路径
- $ : 用户类型
- $ :代表普通用户
- #: 超级用户
Linux命令
- 在Linux中,我们可以在终端中通过命令去执行操作。
- 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。
- 可以说不会命令,就不算会 Linux。
- 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
- Linux 发行版本的命令大概有 200 多个,这里只介绍比较重要和使用频率最多的命令
命令的基本格式
- 终端命令格式: command [-options] [parameter]
- command:命令名,相应功能的英文单词或单词的缩写
- [-options]:选项,可用来对命令进行控制,也可以省略
- [] 代表可选
- parameter:传给命令的参数,可以是 零个、一个 或者 多个
- 例:详细显示 /opt目录下边的文件列表信息
ls -l /opt
1. 查阅命令帮助信息
- 通过这几个命令你可以查看其他命令的介绍,知道其他命令的介绍和用法。
命令 | 说明 |
---|---|
man |
获取Linux帮助手册 |
man-f |
查看所有的同名的手册(作用不同方面的),再查看特定的手册。 |
info |
info从首页开始浏览帮助手册,也可以浏览特定命令的帮助手册 |
—help |
输出最简单有用的介绍。 |
示例:
示例命令 | 说明 |
---|---|
man date |
看到date命令的帮助手册,里面有date命令的介绍和详细的用法。 |
2.列出当前目录下的文件 ls
- ls 是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
命令 | 说明 |
---|---|
ls |
列出目前工作目录所含的文件及子目录 |
ls -a |
显示所有文件及目录(ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)。 |
ls -l |
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。 |
ls -r |
将文件以相反次序显示(原定依英文字母次序)。 |
ls -t |
将文件依建立时间之先后次序列出 |
ls -A |
同ls -a ,但不列出"."(目前目录)及".."(父目录)。 |
ls -F |
在列出的文件名称后加一符号;例如可执行档则加"*",目录则加“/“。 |
ls -R |
若目录下有文件,则其以下的文件亦皆依序列出。 |
3.切换当前工作目录 cd
cd
用于切换当前工作目录。cd
后面可跟绝对路径,也可以跟相对路径- "~"表示为home目录的意思
- "."则是表示目前所在的目录
- ".."则表示目前目录位置的上一层目录。
pwd
用于显示所在的工作目录的绝对路径名称。
命令 | 说明 |
---|---|
cd |
切换到当前用户根目录,默认[/home/用户名称/] |
cd . |
切换到当前目录 |
cd .. |
切换到上一级目录 |
cd / |
返回操作系统跟目录,默认:[/] |
cd direction |
进入某个指定的文件目录 |
cd - |
可进入上次所在的目录. |
[注意]:如果路径是从根路径开始的,则路径的前面需要加上“ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 "/"。
4. 操作文件的相关命令
4.1 创建和删除文件 mkdir
,touch
,rm
命令 | 说明 |
---|---|
touch |
创建一个空的文件 |
mkdir |
用于新建文件夹 |
mkdir -p |
递归创建目录,当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹。 |
rmdir |
删除空文件夹 |
rmdir -p |
删除子目录,如果子目录删除之后,父目录为空,则父目录亦删除。 |
rm |
删除文件或目录。 |
rm -i |
以进行交互式方式执行,删除前逐一询问。 |
rm -f |
直接强制删除,无需逐一询问(包括只读文件)。会忽略不存在的文件 |
`rm -r | 删除目录及目录下所有文件。递归地删除目录下的内容,删除文件夹时必须加此选型 |
4.2 复制文件或目录 cp
- cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
命令 | 说明 |
---|---|
cp |
复制文件或目录。 |
cp -a |
复制目录,它保留链接、文件属性,并复制目录下的所有内容。 |
cp -d |
复制文件时保留链接(类似快捷方式)。 |
cp -f |
覆盖已经存在的目标文件而不给出提示。 |
cp -i |
在覆盖目标文件之前给出提示,要求用户确认是否覆盖 |
cp -p |
除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 |
cp -r |
若源文件为目录文件,则复制该目录下的所有子目录和文件。 |
cp -l |
不复制文件,只生成链接文件。 |
cp -v |
显示拷贝进度 |
4.3 修改和移动文件或目录 mv
- 用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
命令 | 说明 |
---|---|
mv |
修改文件或目录名,移动文件或目录到其他位置。 |
mv -i |
若指定目录已有同名文件,则先询问是否覆盖旧文件。 |
mv -f |
覆盖某已有的目标文件时不给任何指示。 |
mv -v |
显示移动进度 |
4.4 查看文件 cat
cat
可以查看当前目录下的文件,也可以查看绝对路径下的文件- 查看内容时,在信息过长无法在一屏上显示时,使用cat命令会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
命令 | 说明 |
---|---|
cat |
查看文件cat XXX.txt |
more |
逐行显示内容按ctrl+C退出。 |
more +line |
从指定行号开始显示。例, more +20 从第20行开始查看 |
less |
上下滚动查看内容按Q退出。 |
less +line |
从指定行号开始显示。 |
4.5 查找文件 find
- find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件。
常用用法:
命令 | 含义 |
---|---|
find ./ -name '*.sh' |
查找当前目录下所有后缀为.sh的文件 |
find ./ -name "[A-Z]*" |
查找当前目录下所有以大写字母开头的文件 |
find /tmp -size 2M |
查找在/tmp 目录下等于2M的文件 |
find /tmp -size +2M |
查找在/tmp 目录下大于2M的文件 |
find /tmp -size -2M |
查找在/tmp 目录下小于2M的文件 |
find ./ -size +4k -size -5M |
查找当前目录下大于4k,小于5M的文件 |
find ./ -perm 777 |
查找当前目录下权限为 777 的文件或目录 |
问题1:查找test目录中扩展名是py的文件
答:find ./ -name '*.py'
问题2:查找test目录中c或者s开头的文件
答:find ./ -name '[cs]*'
问题3:查找test目录大于2M的文件
答:
find ./ -size +2M
ls -lh
问题4:查找出test目录中属主用户有读写权限,同组用户及其他用户只有读权限的文件
答:find ./ -perm 644
问题5:查找出test目录中属主用户有读写执行权限,同组用户及其他用户只有读和执行权限的文件
答:find ./ -perm 755
5. 对系统的相关操作
命令 | 说明 |
---|---|
reboot |
重启系统 |
poweroff |
关机 |
shutdown –r now |
重新启动操作系统,shutdown会给别的用户提示 |
shutdown -h now |
立刻关机,其中now相当于时间为0的状态 |
shutdown -h 20:25 |
系统在今天的20:25 会关机 |
shutdown -h +10 |
系统再过十分钟后自动关机 |
`ping | 测试网络连通状况,会向目标机器发送数据包来测试是否连通,是否延时 |
6. 其他一些常用的命令
命令 | 说明 |
---|---|
clear |
清屏. 清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + L |
alias |
设置指令的别名。仅输入alias,则可列出目前所有的别名设置。 |
unalias |
用于删除别名。 |
unalias -a |
删除全部的别名 |
tree |
以树形的方式查看文件列表,默认ubuntu是没有安装该命令,第一次使用需要安装tree命令 |
history |
查看使用过的命令 |
> 或>> |
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。 |
> |
比如: ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 ) |
>> |
比如: ls >> test1.txt(test.txt 如果不存在,则创建,存在则追加新内容到文件尾部) |
| |
管道:一个命令的输出可以通过管道做为另一个命令的输入。“| ”的左右分为两端,左端塞东西(写),右端取东西(读)。 |
7. 磁盘管理的相关命令 df
,du
,fdisk
- 磁盘的管理是Linux上很重要的内容,磁盘管理的好坏会影响到系统的整体性能。
fdisk
是Linux下功能是极其强大的磁盘管理命令fdisk
的详细命令介绍: https://www.cnblogs.com/chjbbs/p/3762223.html
命令 | 说明 |
---|---|
df |
检查文件系统的磁盘空间占用情况。 |
df -h |
将容量结果以易读的容量格式显示出来 |
df -aT |
将系统内的所有特殊文件格式及名称都列出来。 |
df -h /文件夹名 |
将该文件夹底下的可用的磁盘容量以易读的容量格式显示。 |
du |
查看对文件和目录磁盘使用的空间,全部都会列出来,包括隐藏文件的目录。 |
du -a |
将文件的容量也列出来。 |
du -sm /文件夹 |
检查根目录底下每个目录所占用的容量。 |
fdisk |
磁盘分区表操作工具 |
Q: du和df的区别在哪?
区别在于du这个命令其实会直接到文件系统内去搜寻所有的文件数据。
8.建立链接文件:ln
- Linux链接文件类似于Windows下的快捷方式。
- 链接文件分为软链接和硬链接。
- 使用格式:
- 软连接格式:
ln -s 源文件 链接文件
- 硬链接格式:
ln 源文件 链接文件
- 软连接格式:
- 提示:如果是在目标文件所在目录以外的目录创建软链接,那么软链接的目标文件路径写绝对路径
Q:软链接与硬链接相同点与区别?
- 软链接与硬链接最终都是指向同一个文件的
- 当源文件名删除, 软链接变成无效链接,而硬链接还可以打开源文件的内容
- 文件详细列表显示时, 软链接的文件类型是 l,而硬链接是 -
- 软连接可以链接文件和目录,而硬链接只能链接文件
Q:链接与复制的区别?
链接与复制就好比,复印文件,复制是多了一份, 而链接,不管软还是硬,都只有一份文件
9.文本搜索 grep
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
- grep一般格式为:
grep [-选项] ‘搜索内容串’ 文件名
- 在grep命令中输入字符串参数时,最好引号或双引号括起来。
grep 'a' 1.txt
- grep搜索内容串可以是正则表达式。
常用选项说明:
选项 | 含义 |
---|---|
-v |
显示不包含匹配文本的所有行(相当于求反) |
-n |
显示匹配行及行号 |
-i |
忽略大小写 |
问题1: 把家目录中的文件信息写入桌面的home.txt中, 并且查找D字符
- ls ~ >home.txt
- grep 'D' home.txt
- grep - i 'D' home.txt
- grep - in 'D' home.txt
- grep - inv 'D' home.txt
问题2: 查询mysql程序是否运行(拓展)
ps : 查看当前运行的进程 ,-aux: 以bsd的格式显示内容
命令:ps -aux | grep 'mysql'
10.归档管理:tar
- 计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
- tar使用格式:
- tar [选项] 打包文件名 文件
- tar命令很特殊,其选项前面可以使用“-”,也可以不使用。
- 除了
-f
需要放在选项的最后,其它选项的顺序任意。
常用选项:
选项 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
问题1: 对test目录下的所有文件打包成my.tar 文件
答:tar -cvf my.tar *
问题2: 对my.tar 文件进行拆包
答:tar -xvf my.tar
问题3: 对test目录下的所有文件打包且以gzip格式压缩 成 my.tar.gz文件
答:tar -czvf my.tar.gz *
问题4: 对my.tar.gz 解压及拆包
答:tar -xzvf my.tar.gz
问题5: 对test目录下的所有文件打包且以bzip2格式压缩 成 my.tar.bz2文件
答: tar -cjvf my.tar.bz2 *
问题6: 对my.tar.bz2 解压及拆包 到桌面的test2目录中
答:
mkdir ../test2
tar -xjvf my.tar.bz2 -C ../test2
11.文件压缩解压:gzip
- tar与gzip命令结合使用实现文件打包、压缩。
- tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
- gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
选项 | 含义 |
---|---|
-d | 解压 |
-r | 压缩所有子目录 |
-
tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
-
压缩用法:
tar cvzf 压缩包包名 文件1 文件2 ...
-
示例:
- 将当前路径下的所有文件以及文件夹打包并压缩到test.tar.gz文件中
tar -zcvf test.tar.gz *
选项 | 含义 |
---|---|
-z | 指定压缩包的格式为:file.tar.gz |
- 解压用法:
tar zxvf 压缩包包名
- 解压示例:
- 解压到当前路径下
tar -zxvf text.tar.gz
选项 | 含义 |
---|---|
-z | 指定压缩包的格式为:file.tar.gz |
-C | (大写字母“C”),解压到指定目录 |
12.文件压缩解压:bzip2(了解)
- tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
- tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。
- 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
- 压缩用法:
tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
- 解压用法:
tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
13. 文件压缩解压: zip、unzip(了解)
- 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
- 压缩文件:
zip [-r] 目标文件(没有扩展名) 源文件
- 解压文件:
unzip -d 解压后目录文件 压缩文件
14.查看命令位置:which
- which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
- which指令会在环境变量 PATH 设置的目录里查找符合条件的文件。
- 使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
- 示例:
which Python
- 示例:
问题:分别查看ls和shutdown两个命令在哪个目录中
答:
python@ubuntu:~/Desktop/test2$ which ls
/bin/ls
python@ubuntu:~/Desktop/test2$ which shutdown
/sbin/shutdown
python@ubuntu:~/Desktop/test2$