Linux常用命令----文件操作命令

命令格式

[test@VM-8-5-centos ~]$ command [options] [arguments]

其中,command表示命令的名称;options表示选项,定义了命令的执行特性,arguments表示命令作用的对象

[test@VM-8-5-centos ~]$ rm -r dir

该语句的功能为删除目录dir,其中rm为命令的名称,表示删除文件;-r为选项,表示删除目录中的文件和子目录;dir为命令作用的对象,该对象是一个目录。Linux系统中的命令都遵循以上格式,命令中的选项和参数可酌情缺省。

文件处理命令

Linux操纵系统秉持“一切皆文件”的思想,将其中的文件、设备等都作为文件来操作。文件操作命令可分为四类:文件处理命令、文件查看命令、权限管理命令和文件搜索命令。

文件处理命令
1.ls
ls命令的原意为“list”,即“列出”,用于列出参数的属性信息
显示当前目录下的文件

[test@VM-8-5-centos ~]$ ls
apache-tomcat-9.0.56         a.txt    jdk-linux-x64.rpm  Test.class
apache-tomcat-9.0.56.tar.gz  hello.c  passwd             Test.java

当参数缺省时,ls命令默认列出当前目录中的内容
显示当前目录下的所有文件信息

[test@VM-8-5-centos ~]$ ls -a
.                     apache-tomcat-9.0.56.tar.gz  .bash_logout   .cache   jdk-linux-x64.rpm  Test.java
..                    a.txt                        .bash_profile  .config  passwd
apache-tomcat-9.0.56  .bash_history                .bashrc        hello.c  Test.class

显示所有文件信息时会发现结果中多了许多以“.”和“…”开头的文件,这些文件是Linux中的隐藏文件
ls命令常用选项

选项 说明
-l 以详细信息的形式展示出当前目录下的文件
-a 显示当前目录下的全部文件(包括隐藏文件)
-d 查看目录属性
-t 按创建时间顺序列出文件
-i 输出文件的 inode 编号
-R 列出当前目录下的所有文件信息,并以递归的方式展示各个子目录中的文件和子目录信息

2.cd
cd目录的原意为change directory,即更改目录。若执行该命令的用户具有切换目录的权限,cd命令将更改当前工作目录到目标目录。
cd命令没有选项,其参数不可省略。

[test@VM-8-5-centos ~]$ cd ./Public
[test@VM-8-5-centos ~]$ cd ..
[test@VM-8-5-centos home]$ cd /etc/yum
[test@VM-8-5-centos ~]$ 

以上命令对应的功能如下:

  • 切换工作目录到当前目录下的Public目录中;
  • 切换工作目录到上一级目录
  • 切换工作目录到etc目录下的yum目录中
  • 切换工作目录为当前用户的家目录(/home/username)

3.pwd
pwd命令的原意为print working directory,即打印当前工作目录的绝对路径,该命令可直接使用

[test@VM-8-5-centos ~]$ pwd
/home/test

4.touch
touch命令的主要功能是将已存在文件的时间标签更新为系统的当前时间。若指定的文件不存在,该命令将会创建一个新文件,所以该命令有个附加功能,即创建新的空文件。touch命令的参数可以是文件,也可以是一个目录

[test@VM-8-5-centos ~]$ ls -l b.txt
-rw-rw-r-- 1 test test 0 Jan 24 21:53 b.txt
[test@VM-8-5-centos ~]$ touch b.txt
[test@VM-8-5-centos ~]$ ls -l b.txt
-rw-rw-r-- 1 test test 0 Jan 24 21:54 b.txt

该命令先查看文件详细信息,再用touch命令更新文件信息,用ls -l命令再查看文件详细信息,可以看到touch命令成功更新了文件的时间标签。

5.mkdir
mdir命令的原意为make directory,即创建目录。
mkdir 命令的参数一般为目录或路径名。当参数为目录时,为保证新目录可成功创建,使用该命令前应确保新建目录不与其同路径下的目录重名;当参数为路径时,需要保证路径中的目录都已存在或通过选项创建路径中缺失的目录。
mkdir 命令常用选项

选项 说明
-p 若路径中的目录不存在,则先创建目录
-v 查看文件创建过程
[test@VM-8-5-centos ~]$ mkdir ./test/bxg
mkdir: cannot create directory ‘./test/bxg’: No such file or directory
[test@VM-8-5-centos ~]$ mkdir -p ./test/bxg
[test@VM-8-5-centos ~]$ ls
apache-tomcat-9.0.56         a.txt  hello.c            passwd  Test.class
apache-tomcat-9.0.56.tar.gz  b.txt  jdk-linux-x64.rpm  test    Test.java

如上所示,如果路径中的目录不存在,又未使用参数 -p, 将会报错,提示没有发现相应文件或目录,添加了-p 选项之后,目标目录则创建成功了。

6.cp
cp 命令的原意为 copy,该命令的功能为将一个或多个源文件复制到指定的目录。
默认情况下,该命令不能复制目录,若要复制目录,需要同时使用 -R 选项。
cp命令常用选项

选项 说明
-R 递归处理,将指定目录下的文件及子目录一并处理
-p 复制的同时不修改文件属性,包括所有者、所属组、权限和时间
-f 强行复制文件或目录,无论目的文件或目录是否已经存在

将 b.txt 文件复制到 ccc 目录下并查看 ccc 目录下是否有 b.txt 文件

[test@VM-8-5-centos ~]$ cp b.txt ./ccc
[test@VM-8-5-centos ~]$ cd ccc
[test@VM-8-5-centos ccc]$ ls
b.txt

7.mv
mv 命令的原意为 move,该命令用于移动文件或目录。若同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则该命令会将前面指定的多个文件或目录复制到最后一个目录。
若该目录操作的对象是相同路径下的两个文件,则其功能为修改文件名
将 b.txt 文件移动到当前目录下的 ddd 目录中并查看 ddd 目录中是否有 b.txt文件

[test@VM-8-5-centos ~]$ mv b.txt ./ddd
[test@VM-8-5-centos ~]$ cd ddd
[test@VM-8-5-centos ddd]$ ls
b.txt

先查看 ddd 目录下的文件有 b.txt,使用 mv 命令将 b.txt 文件修改文件名为 t.txt

[test@VM-8-5-centos ddd]$ ls
b.txt
[test@VM-8-5-centos ddd]$ mv b.txt t.txt
[test@VM-8-5-centos ddd]$ ls
t.txt

8.rm
rm 命令的原意为 remove,功能为删除目录中的文件或目录。该命令可同时删除多个对象。
若要使用 rm 命令删除目录,需要在参数前添加 -r 选项。
rm 命令常用选项

选项 说明
-rf 选项 -r 与 -f 结合,删除目录中所有文件和子目录,并且不一一确定
-f 强制删除文件或目录
-i 在删除文件或目录时对要删除的内容逐一进行确认(y/n)

查看 ddd 目录下有 t.txt 文件,使用 rm 删除后再查看发现文件已不存在

[test@VM-8-5-centos ddd]$ ls
t.txt
[test@VM-8-5-centos ddd]$ rm t.txt
[test@VM-8-5-centos ddd]$ ls
[test@VM-8-5-centos ddd]$ 

使用 rm 删除的文件无法恢复,所以在删除文件之前,一定要再三确认
rm -rf / 命令将会删除整个Linux操作系统的所有文件,整个系统的文件将会不复存在

9.rmdir
rmdir 命令的原意为 remove directory,该命令与 rm 命令类似,但它仅用于删除目录
rmdir 命令可删除指定路径中的一个或多个空目录。若在命令中添加参数 -p,此条命令将会在删除指定目录后检测其上层目录,若该目录的上层目录已变成空目录,则将其一并删除。
查看家目录下的文件,使用命令删除 ddd 目录后再查看发现 ddd 目录已不存在。

[test@VM-8-5-centos ~]$ ls
apache-tomcat-9.0.56         a.txt  ddd      jdk-linux-x64.rpm  test        Test.java
apache-tomcat-9.0.56.tar.gz  ccc    hello.c  passwd             Test.class
[test@VM-8-5-centos ~]$ rmdir ddd
[test@VM-8-5-centos ~]$ ls
apache-tomcat-9.0.56         a.txt  hello.c            passwd  Test.class
apache-tomcat-9.0.56.tar.gz  ccc    jdk-linux-x64.rpm  test    Test.java

文件查看命令

文件查看命令主要用于查看文件中存储的内容,常用的文件查看命令有 cat more head tail 等
cat
愿意为 concatenate and display,连接和显示文件,将文件中的内容打印到输出设备。
查看 a.txt 文件的内容

[test@VM-8-5-centos ~]$ cat a.txt
today
is
Friday

more
用于分页显示文件内容,在使用 more 命令分页显示文件内容时,可用快捷键进行翻页等操作,快捷键如下表

快捷键 说明
f/Space 显示下一页
Enter 显示下一行
q/Q 退出

head
也用于查看文件内容,该命令可指定只查看文件的前 n 行
查看 Test.java 文件的前4行内容

[test@VM-8-5-centos ~]$ head -4 Test.java
public class Test{
	public static void main(String[] args){
		System.out.println("hello world");
	}

tail
tail 命令与 head 命令相反,用于查看文件的后 n 行内容。

文件搜索命令

文件搜索命令可根据文件名或关键字搜索文件所在路径,或者根据关键字符搜索文件内容。
which
我们使用的每条 Linux 命令都以文件的形式保存在系统中,使用 which 命令可查看命令所在的目录。
查找命令 ls 所在的路径

[root@VM-8-5-centos test]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls

与 which 类似,whereis 也能找到命令所在的位置。不同的是 which 还能找到命令的别名记录,而 whereis 可以同时展示命令帮助文档所在的路径。
find
find 可以借助搜索关键字查找文件或目录
关键字为文件名、文件大小、文件所有者等

选项 说明
-name 根据文件名查找
-size 根据文件大小查找
-user 根据文件所有者查找

根据文件名在 /etc 目录下查找 passwd 文件

[root@VM-8-5-centos test]# find /etc -name passwd
/etc/passwd
/etc/pam.d/passwd

locate
搜索 /etc 目录下所有以 pas 开头的文件

[root@VM-8-5-centos test]# locate /etc/pas
/etc/passwd
/etc/passwd-

locate 的功能与 find -name 相同,但在速度上,locate 要比 find 命令快很多,因为它不是搜索Linux的整个目录,而是搜索数据库 /var/lib/locaedb。在使用 locate 命令之前,先使用 updatedb 命令手动更新一下数据库。
grep
grep 命令用于在文件中搜索与字符串匹配的行并输出。
查找 etc 目录下的 services 文件中包含 root 的行

[root@VM-8-5-centos test]# grep root /etc/services
rootd           1094/tcp                # ROOTD
rootd           1094/udp                # ROOTD

你可能感兴趣的:(Linux,linux,shell)