前言

Linux系列,主要是学习在工作中所必须的 Linux 命令及shell编程,只涉及常用命令及参数。如果有对Linux不熟悉的同学,或者想要更加深入学习Linux的同学,可以点击这里。本篇文章首先来学习文件操作相关命令。

cd

命令格式

1
cd 目录

命令描述

  • 切换用户当前工作目录。

示例

1
2
3
4
5
cd    # 进入用户主目录;
cd /  # 进入根目录
cd ~  # 进入用户主目录;
cd ..  # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../..  # 返回上两级目录;

ls

命令格式

1
ls 选项 目录

命令描述

  • ls就是list的缩写,用来显示目标列表,在Linux中是使用率较高的命令。

常用选项

  • -a: 显示所有文件,包括隐藏文件
  • -l: 详细信息显示
  • -h: 人性化显示,文件大小以B、K、M显示
  • -i: 显示Linux对于每个文件的id
  • -t: 按时间信息排序
  • -d: 显示目录属性

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# 组合使用多个命令
[root@VM-0-5-centos redis-6.2.4]# ls -alhit
总用量 348K
131900 drwxrwxr-x   3 root root  12K 9月  20 11:14 src
131082 drwxrwxr-x   7 root root 4.0K 6月  19 14:16 .
132726 -rw-r--r--   1 root root  92K 6月  19 14:15 my.conf
131140 drwxrwxr-x   7 root root 4.0K 6月  19 14:04 deps
131117 -rw-rw-r--   1 root root  28K 6月   1 22:03 00-RELEASENOTES
131120 -rw-rw-r--   1 root root   51 6月   1 22:03 BUGS
131123 -rw-rw-r--   1 root root 5.0K 6月   1 22:03 CONDUCT
131126 -rw-rw-r--   1 root root 3.4K 6月   1 22:03 CONTRIBUTING
131129 -rw-rw-r--   1 root root 1.5K 6月   1 22:03 COPYING

# 使用 -d,输出目录属性,而不是列出其中的文件
[root@VM-0-5-centos redis-6.2.4]# ls -lhd /opt
drwxr-xr-x. 4 root root 4.0K 6月  19 14:03 /opt

命令输出第二列,有字符串"-rw-r–r–",这是对文件的权限描述,具体如下图所示:

其中第一个字符表示文件类型:'-‘表示二进制文件,’d’表示目录 ‘l’表示软链接文件

后面三组分别表示所有者、所属组、其他用户对该文件的权限:r表示可读、w表示可写、x表示可执行

image-20210920163849280

mkdir

命令格式

1
mkdir 选项 目录

命令描述

  • 用来创建目录

常用选项

  • -m: 建立目录的同时设置目录的权限
  • -p: 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[root@VM-0-5-centos /]# cd home
[root@VM-0-5-centos home]# ls

# -p,新建父子目录
[root@VM-0-5-centos home]# mkdir -p hello/world
[root@VM-0-5-centos home]# ls
hello

# -m,新建时指定权限
[root@VM-0-5-centos home]# mkdir -m 700 test
[root@VM-0-5-centos home]# ls -l
总用量 8
drwxr-xr-x 3 root root 4096 9月  20 12:06 hello
drwx------ 2 root root 4096 9月  20 12:07 test

rmdir

命令格式

1
rmdir 选项 目录

命令描述

  • 删除空目录

常用选项

  • -p:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

示例

1
2
3
4
5
6
7
[root@VM-0-5-centos home]# ls
hello  test

# 使用 -p 参数删除空目录
[root@VM-0-5-centos home]# rmdir -p hello/world/
[root@VM-0-5-centos home]# ls
test

touch

命令格式

1
touch 选项 文件 

命令描述

创建新的空文件

示例

1
2
3
[root@VM-0-5-centos home]# touch a.txt
[root@VM-0-5-centos home]# ls
a.txt  hello  test

rm

命令格式

1
rm 选项 文件

命令描述

删除文件或目录

常用选项

  • -f:强制删除,没有提示是否确认删除
  • -r:递归删除,在删除目录时使用
  • -i:删除已有文件或目录之前先询问用户

慎重使用rm命令,不小心删除后无法找回

示例

1
2
3
[root@VM-0-5-centos home]# rm test2.txt
rm:是否删除普通空文件 "test2.txt"?y
[root@VM-0-5-centos home]#

cp

命令格式

1
cp 选项 原文件或目录  目标文件或目录

命令描述

  • 将源文件或目录复制到目标文件或目录中

常用选项

  • -r 递归复制,用于复制目录
  • -p 保留原有文件属性

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 1. 不使用 -p 参数,可以看到两个文件夹中,文件的创建时间不同
[root@VM-0-5-centos home]# touch test1.txt
[root@VM-0-5-centos home]# touch test2.txt
[root@VM-0-5-centos home]# mkdir hello
[root@VM-0-5-centos home]# ls -l
总用量 4
drwxr-xr-x 2 root root 4096 9月  20 12:31 hello
-rw-r--r-- 1 root root    0 9月  20 12:29 test1.txt
-rw-r--r-- 1 root root    0 9月  20 12:29 test2.txt

# 等一分钟后再复制
[root@VM-0-5-centos home]# cp test1.txt test2.txt hello
[root@VM-0-5-centos home]# ls -l hello/
总用量 0
-rw-r--r-- 1 root root 0 9月  20 12:31 test1.txt
-rw-r--r-- 1 root root 0 9月  20 12:31 test2.txt

# 2. 使用 -p 参数,文件属性会保留
[root@VM-0-5-centos home]# mkdir test
[root@VM-0-5-centos home]# cp -p test1.txt test2.txt test
[root@VM-0-5-centos home]# ls -l test
总用量 0
-rw-r--r-- 1 root root 0 9月  20 12:29 test1.txt
-rw-r--r-- 1 root root 0 9月  20 12:29 test2.txt

# 3. 使用-r,复制目录
[root@VM-0-5-centos home]# cp -r test hello/
[root@VM-0-5-centos home]# ls hello/
test  test1.txt  test2.txt

mv

命令格式

1
mv 原文件或目录 目标文件或目录

命令描述

移动文件或者重命名

示例

1
2
3
4
5
# 重命名
[root@VM-0-5-centos home]# mv test1.txt test3.txt

# 移动文件到另一个文件夹
[root@VM-0-5-centos home]# mv test3.txt hello/

cat

命令格式

1
cat 选项 文件

命令描述

显示文件内容

常用选项

  • -n 显示行号

示例

1
2
3
4
[root@VM-0-5-centos home]# cat -n /etc/issue
     1	\S
     2	Kernel \r on an \m
     3

tac

命令格式

1
tac 选项 文件

命令描述

与cat相反,反向显示文件内容

示例

1
2
3
4
[root@VM-0-5-centos home]# tac /etc/issue

Kernel \r on an \m
\S

more

命令格式

1
more 文件名

命令描述

分页显示文件内容

操作

运行命令进入查看页面后,可以进行如下操作:

  • 空格 或 f:向下翻页
  • b:向上翻页
  • Enter:换行
  • q或Q:退出

示例

1
[root@VM-0-5-centos home]# more /etc/services

less

命令格式

1
less 文件名

命令描述

more分页显示文件内容类似,但是less可以搜索关键字,比more更强大

操作

运行命令进入查看页面后,可以进行如下操作:

  • 空格 或 f:向下翻页
  • b:向上翻页
  • 上下键:换行
  • Enter:换行
  • q或Q:退出
  • 输入 “/内容 “,搜索内容,按n寻找下一个(n表示next)

示例

1
[root@VM-0-5-centos home]# less /etc/services

命令格式

1
head 选项 文件名

命令描述

显示文件前几行,默认显示前10行

常用选项

-n:指定显示行数

示例

1
2
3
4
5
6
[root@VM-0-5-centos home]# head -n 5 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10

tail

命令格式

1
tail 选项 文件名

命令描述

显示文件最后几行,默认显示最后10行

常用选项

  • -n:指定显示行数
  • -f:动态显示文件内容(不会退出命令,监听新的数据,文件中有新的数据增加后,会自动打印出来,按 control + c 退出)

示例

1
[root@VM-0-5-centos home]# tail -f /var/log/messages

总结

本文介绍了Linux文件操作的相关命令,包括:

  • 创建、删除文件
  • 创建、查看文件
  • 复制、剪切文件

更多

微信公众号:CodePlayer