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 命令的特点:

  1. locate基于数据库的查询,速度很快,但不是实时的查询。
  2. locate是模糊查询
  3. 需要对文件的目录有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 运行时可能会占用较多系统资源,导致运行时间较长,因此最好在系统负载较低时进行更新。

 

posted @ 2021-12-10 15:38  wenxuehai  阅读(110)  评论(0编辑  收藏  举报
//右下角添加目录