Linux常用命令1
1、Linux命令的基本格式
命令提示符如下:
其中:
- root:当前登陆用户
- localhost:主机名
- ~:表示当前用户的家目录,如果是 root 代表 /root,如果是普通用户user1代表/home/user1
- #:超级用户的提示符#,如果是普通用户则提示符为:$
命令格式如下:
命令 [选项] [参数]
注意: 个别命令的使用不遵循次格式
当有多个选项时可以写在一起
2、查询目录中内容(ls)
ls 命令用来列出当前目录下的所有文件及文件夹。格式如下:
ls [选项] [文件或目录] 选项: -a 显示所有文件,包括隐藏文件 -l 显示详细信息 -h 人性化显示文件大小
示例:
2.1、ls -l(列出文件详细信息)
ls -l 命令可列出文件及文件夹的详细信息,该命令可缩写为 ll:
也可以在该命令后面加上路径,直接列出该路径下的文件及文件夹的详细信息:
2.2、ls -lh(列出文件大小)
3、文件处理命令
3.1、查询当前所在目录(pwd)
可用 pwd 命令查看当前所在目录。如下:
3.2、创建文件和目录(touch、mkdir)
3.2.1、创建文件(touch)
创建文件命令如下:
touch 文件名
示例如下:
3.2.2、创建目录(mkdir)
语法如下:
mkdir [-mp] 目录名称 选项与参数: -m :配置文件的权限喔。直接配置,不需要看默认权限 (umask) 的脸色 -p :递归创建目录。直接将所需要的目录(包含上一级目录)递归创建起来。
示例如下:
直接通过 -p 参数递归创建 /test01/test02 目录。如下:
通过参数 -m 指定创建权限为 rwx--x--x (即711)的目录。如下:
3.3、删除文件和目录
3.3.1、删除文件或目录(rm)
删除文件或目录:rm 用法:rm -rf [文件或目录] 选项: -r 递归删除目录 -f 强制
3.3.2、删除空的目录(rmdir)
该命令只能删除内容为空的目录。语法如下:
rmdir [-p] 目录名称 选项与参数: -p :从该目录起,一次删除多级空目录。比如:rmdir -p BBB/Test 在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
注意:rmdir 仅能删除空的目录,要想删除非空目录可以使用 rm 命令。
3.4、复制文件或目录(cp)
cp命令用来复制文件或者目录,该命令把源目录下的文件复制到目标文件(夹)下。
如果是复制到文件夹下,则文件名保持不变。如果是复制到文件中,则源文件的内容会覆盖目标文件的内容。如果目标文件夹中含有同名文件或者目标文件已经存在,则复制之后目标文件或目标文件夹中的同名文件会被覆盖。
语法如下:
# 将源文件复制到目标文件或者目标文件夹下 cp 源文件 目标文件(夹) # 同时复制多个文件到目标文件(夹)下 cp 源文件1 源文件2 目标文件夹 或 cp 文件* 目标文件夹 # 复制源文件夹到目标文件夹下。也就是会将整个源文件夹都复制到目标文件夹下,包括源文件夹 cp -r 源文件夹 目标文件夹
示例,假设 test01下有 1.txt 并且内容为 1111,test02下有 2.txt 并且内容为 2222。
将 1.txt 复制到文件 2.txt 中,内容将会覆盖:
同时复制多个文件。如下:
直接将整个文件夹都复制过去。如下:
3.5、移除文件或目录(mv)
mv 命令常用来为文件或目录改名、或将文件或目录移入其它位置。语法如下:
mv [选项] 源文件或目录 目标文件或目录 # 直接将文件改名 mv 源文件 目标文件 # 将源文件移动到目标目录下 mv 源文件 目标文件夹 # 将源文件夹下的所有文件都移动到目标目录下 mv 源文件夹/* 目标文件夹 # 直接将源文件夹移动到目标目录下。包括源文件夹都会移动到目标文件夹下 mv 源文件夹 目标文件夹 选项: -b :若需覆盖文件,则覆盖前先行备份。 -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会更新(update) -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
直接通过命令: mv 源文件 目标文件,可将源文件改名为目标文件名。如下:
将源文件移动到目标目录下。如下:
将源目录下的所有文件都移动到目标目录下。如下:
直接将源文件夹整个都移动到目标文件夹下,包括源文件夹本身。如下:
4、查看文件内容
Linux系统中使用以下命令来查看文件的内容:
- cat:由第一行开始显示文件内容(适用于内容较少的)。
- more:一页一页的显示文件内容(适用于内容较多的)。
- less:less 与 more 类似,但是比 more 更好的是它可以往前翻页(适用于内容较多的)。
- tail:只看尾巴几行
- tac:从最后一行开始显示,可以看出 tac 是 cat 的倒着写。
- head:只看头几行
- nl:显示的时候,顺道输出行号!
4.1、cat 命令
cat 命令常常用于查看内容较少的文件,该命令会将文件内容全部展示出来。
格式为:cat [参数选项] [文件]
选项与参数:
- -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -E :将结尾的断行字节 $ 显示出来;
- -T :将 [tab] 按键以 ^I 显示出来;
- -v :列出一些看不出来的特殊字符
cat的更多的参数选项可以输入 man cat
进行查看,以下列举的其他命令的详细介绍也可以输入man 命令
进行查看。
示例:
tac命令的正好与cat命令相反,是从文件末尾开始显示。
4.2、more命令
more 命令适用于查看内容较多的文件,因为他可以实时显示百分比以提示现在已经阅读了多少内容。
在 more 这个程序的运行过程中,你有几个按键可以按的:
- 空白键 (space):代表向下翻一页;
- Enter :代表向下翻『一行』;
- /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
- :f :立刻显示出档名以及目前显示的行数;
- q :代表立刻离开 more ,不再显示该文件内容。
- b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
4.3、less命令
less 也适用于查看内容较多的文件。less比more更为灵活,因为 less 可以往上、往下翻页。按下键盘上 PgUp
键可以往上翻页,按下 PgDn
可以往下翻页。但是less命令不会实时显示当前阅读的百分比。
格式为:less [参数选项] [文件]
less运行时可以输入的命令有:
- 空白键 :向下翻动一页;
- 【pagedown】:向下翻动一页;
- 【pageup】 :向上翻动一页;
- / 字串 :向下搜寻『字串』的功能;
- ? 字串 :向上搜寻『字串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
- q :离开 less 这个程序;
示例:
4.4、tail 命令
tail 命令与 head 命令相反,tail 命令用于查看文件后n行
内容。
tail [-n number] 文件
选项与参数:
- -n :后面接数字,代表显示几行的意思。不加的话默认显示最后的 10 行。该命令不会持续观察,会立即退出命令。
- -f :表示持续观察文件内容,要等到按下[ctrl]+c才会结束tail的侦测
示例如下:
查看文件最后 5 行内容。如下:
5、tar命令(解压、压缩)
tar 命令是 Linux 中常用的解压与压缩命令,几乎可以工作于任何环境中,它的使用权限是所有用户。可以使用命令 (man tar) 命令来进行查看man的基本命令。
语法格式如下:
tar [主选项+辅选项] 文件或目录 #示例 tar zxvf libiconv-1.13.tar.gz ./libiconv tar cxvf libiconv-1.13.tar.gz ./*.php
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
- -c 创建新的档案文件,即压缩。如果用户想备份一个目录或是一些文件,就要选择这个选项。
- -r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
- -t 列出档案文件的内容,查看已经备份了哪些文件。
- -u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
- -x 从档案文件中释放文件,即解压。
辅助选项:
- -b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。
- -f 指定档案文件名或设备名,这个选项通常是必选的。
- -k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
- -m 在还原文件时,把所有文件的修改时间设定为现在。
- -M 创建多卷的档案文件,以便在几个磁盘中存放。
- -v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
- -w 每一步都要求确认。
- -z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
常见的压缩文件格式和解压命令:
- *.tar 用 tar -xvf 解压
- *.tar.gz 和 *.tgz 用 tar -zxvf 解压
- *.tar.Z 用 tar -xZf 解压
- *.gar.bz2 用 tar -xjf 解压
- *.rar 用 unrar e 解压
- *.zip 用 unzip 解压
- *.gz 用 gzip -d 或者 gunzip 解压
- *.bz2 用 bzip2 -d 或者 bunzip2 解压
- *.Z 用uncompress 解压
5.1、压缩命令(tar -c)
示例如下:
将当前目录下所有 .txt 文件打包并压缩归档到文件 aa.tar.gz,如下:
tar -czvf aa.tar.gz ./*.txt
将目录 /etc/sysconfig/ 目录下的文件打包成文件 sysconfig.tar 文件,并且放在当前目录中:
tar -cvf sysconfig.tar /etc/sysconfig
参数说明:
- -c 创建新的文档。
- -v 显示详细的tar处理的文件信息
- -f 要操作的文件名
5.2、解压命令(tar -x)
示例如下:
将当前目录下的 aa.tar.gz 中的文件解压到当前目录,如下:
tar -xzvf aa.tar.gz ./
解压文件 sysconfig.tar,将压缩文件 sysconfig.tar 文件解压到当前文件夹内
tar -xvf sysconfig.tar
6、linux中竖线
在linux中,竖线 | 是管道符的意思,该符号的作用是连接两个命令,将第一个命令的输出作为第二个命令的输入,语法为“command 1 | command 2 | command 3 ”。
ls -s|sort -n #按从小到大的顺序输出。 #当然还可进行多次操作,如下面的功能为先去除纯数字,再由sed将竖线(这里不是管道符号)替换为空格,再将结果取出来排序,再进行结果的选择显示,不明白可查看 排序和分页。 cat filename | grep -v '^[0-9]*$' | sed 's/|/ /g' | sort -nrk 8 -nrk 9 |tail -n +1 | head -n 10
7、grep 命令(搜索文本内容)
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。可使用正则表达式能配合多种命令使用,使用上十分灵活。
常见语法:
# 最基本的用法就是搜索文件中的关键字 grep 关键字 文件1 文件2 ... grep 参数 关键字 文件1 文件2 ... # 一般也可以拼接在查看文件内容的命令后,如下: less test.log | grep "myname"
示例:
# 在 test1.log、test2.log 中分别查找 name 关键字 grep myname test1.log test1.log # 在 /etc/*.conf 中查找 name 关键字 grep myname /etc/*.conf # 在 /etc/*.conf 中查找 name 关键字,并显示行号 grep -n myname /etc/*.conf
常见参数:
- -n:显示行号
-A
(After) n:显示匹配到的行号内容,并且同时显示后 n 行的内容-B
(Before) n:显示匹配到的行号内容,并且同时显示前 n 行的内容-C
(Context) n:显示匹配到的行号内容,并且同时显示前后各 n 行的内容
8、find命令查找文件和目录
Linux的 find 命令是一个非常强大的工具,用于在指定目录下查找符合特定条件的文件和目录,该命令不仅可以查找文件,也可以查找目录。
它支持多种匹配条件,如文件名、文件类型、大小、权限、修改时间等,并允许用户根据这些条件进行复杂的搜索操作。
基本语法:
find [路径] [匹配条件] [动作] 文件或目录
#示例:
find /var/log -name test*.txt
- 路径:默认为当前目录,也可指定搜索的起始目录,可以是绝对路径或相对路径
- 选项:定义了搜索的匹配条件,如
-name
、-type
、-size
、-perm
等,用于指定文件名、文件类型、文件大小、文件权限等。 - 操作:定义了对搜索结果执行的动作,如
-print
(打印文件路径)、-exec
(对搜索结果执行指定的命令)、-delete
(删除搜索到的文件)等。
示例如下,该命令会同时列出匹配条件的文件和目录:
9、locate 命令查找文件和目录(T+1,不推荐使用)
Linux locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。一般情况我们只需要输入 locate your_file_name 即可查找指定文件。
基本语法:
locate [-d ][--help][--version][范本样式...]
locate 命令的特点:
- locate基于数据库的查询,速度很快,但不是实时的查询。
- locate是模糊查询
- 需要对文件的目录有rx的权限
示例如下,查找文件和目录:
9.1、find和locate命令的区别
locate
命令在 Linux 系统中用于快速查找文件系统中的文件。它依赖于一个预先生成的数据库(通常是 updatedb
命令更新的),这个数据库包含了本地所有文件的索引信息。
locate 与 find 不同的是 find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。locate 的速度比 find 快,但它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准。
默认情况下,updatedb 命令每天会执行一次,即 locate 命令的时效性是 T+1 的。
如果你需要在 locate
命令中立即应用更新(例如,在新创建的文件或目录上使用 locate
),你需要先运行 sudo updatedb
,然后再运行 locate
命令。如下:
updatedb
locate my_new_file.txt
请注意,如果系统文件非常多或数据库很大,updatedb
运行时可能会占用较多系统资源,导致运行时间较长,因此最好在系统负载较低时进行更新。