【快速入门Linux】4_Linux命令—目录和文件常用命令

文章目录

目标

  • 查看目录内容
    • ls
  • 切换目录
    • cd
  • 创建和删除操作
    • touch
    • rm
    • mkdir
  • 拷贝和移动文件
    • cp
    • mv
  • 查看文件内容
    • cat
    • more
    • grep
  • 其他
    • echo
    • 重定向 >>>
    • 管道 |

一、查看目录内容

1.1 终端实用技巧

1.1.1 自动补全

  • 在敲出 文件目录命令 的前几个字母之后,按下 tab
    • 如果输入的没有歧义,系统会自动补全
    • 如果还存在其他 文件目录命令,再按一下 tab 键,系统会提示可能存在的命令

1.1.2 曾经使用过的命令

  • 光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c

1.2 ls 命令说明

  • ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令

1.2.1 Linux 下文件和目录的特点(重点)

  • Linux 文件 或者 目录 名称最长可以有 256 个字符
  • . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • 代表上一级目录

1.3 ls 常用选项

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小
-d 只列出目录名,不列出其他内容
-t 按修改时间排序
-r 逆序排列
-S 按文件的大小排序
-i 显示文件的inode号(索引号)
-R 递归出目录中的内容
-m 用逗号分隔显示内容
#列表显示当前目录下的文件,并且更人性化的显示文件大小 
python@ubuntu:~/Desktop$ ls -lh
总用量 16K
-rw-rw-r-- 1 python python  237 9月  13 09:40 123.txt
drwxrwxr-x 3 python python 4.0K 9月  12 09:56 a
-rw-rw-r-- 1 python python    6 9月  13 11:10 a.txt
-rw-rw-r-- 1 python python    6 9月  13 11:12 f

# 显示用户家目录
python@ubuntu:~/Desktop$ ls -lh ~

# 并显示隐藏文件夹
python@ubuntu:~/Desktop$ ls -lha ~

# 列出目录中内容(查看根下的home目录内容)
python@ubuntu:~$ ls /home
python  


1.3.1 计算机中文件大小的表示方式(科普)

单位 英文 含义
字节 B(Byte) 在计算机中作为一个数字单元,一般为 8 位二进制数
K(Kibibyte) 1 KB = 1024 B,千字节 (1024 = 2 ** 10)
M(Mebibyte) 1 MB = 1024 KB,百万字节
千兆 G(Gigabyte) 1 GB = 1024 MB,十亿字节,千兆字节
T(Terabyte) 1 TB = 1024 GB,万亿字节,太字节
P(Petabyte) 1 PB = 1024 TB,千万亿字节,拍字节
E(Exabyte) 1 EB = 1024 PB,百亿亿字节,艾字节
Z(Zettabyte) 1 ZB = 1024 EB,十万亿亿字节,泽字节
Y(Yottabyte) 1 YB = 1024 ZB,一亿亿亿字节,尧字节

1.4 ls 通配符的使用

通配符 含义
* 代表任意个数的字符
? 代表任意一个字符,必须是 1 个
[] 表示可以匹配字符组中的任意一个
[abc] 匹配 a、b、c 中的任意一个
[a-f] 匹配从 a 到 f 范围内的的任意一个字符
 ls 1*
 ls *1
 ls *1*
 
 ls [12345]23.txt
 ls [1-5]23.txt

二、切换目录(重点)

2.1 cd

  • cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一

注意:Linux 所有的 目录文件名 都是大小写敏感的

命令 含义
cd 切换到当前用户的主目录(/home/用户目录)
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd . 保持在当前目录不变
cd … 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换

2.2 相对路径和绝对路径

  • 相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
  • 绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置

三、创建和删除操作

3.1 mkdir (创建目录)

  • 创建一个新的目录
选项 含义
-p 可以递归创建目录

新建目录的名称 不能与当前目录中 已有的目录或文件 同名

python@ubuntu:~/Desktop$ mkdir -p a/b/c/d       # 递归创建目录

python@ubuntu:~/Desktop$ cd a/b/c/d/             # 进入到d文件中

# 在桌面文件夹下创建test目录
python@ubuntu:~$ mkdir ~/Desktop/test

3.2 touch (创建文件)

  • 创建文件或修改文件时间
    • 如果文件 不存在,可以创建一个空白文件
    • 如果文件 已经存在,可以修改文件的末次修改日期
python@ubuntu:~/Desktop$ touch a/b/c/d/123.txt  # 在d目录中创建123.txt文件

# 注意:只有先创建了递归目录,才能使用上述命令

3.3 rm (删除目录或文件)

  • 删除文件或目录
  • rm并不能直接删除目录,如果要删除目录,必须带上 -r

使用 rm 命令要小心,因为文件删除后不能恢复

选项 含义
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除文件夹 时必须加此参数
python@ubuntu:~/Desktop$ rm abc
rm: 无法删除'abc': 没有那个文件或目录
python@ubuntu:~/Desktop$ rm -f abc    #如果有此文件则直接删除,没有也不会有提示信息

python@ubuntu:~/Desktop$ rm -r a     # 删除创建的递归文件夹

python@ubuntu:~/Desktop$ rm -r *    # 把桌面目录和文件都删除

四、拷贝和移动文件

序号 命令 对应英文 作用
01 tree [目录名] tree 以树状图列出文件目录结构
02 cp 源文件 目标文件 copy 复制文件或者目录
03 mv 源文件 目标文件 move 移动文件或者目录/文件或者目录重命名

4.1 tree (显示目录和文件)

  • tree 命令可以以树状图列出文件目录结构
选项 含义
-d 只显示目录
python@ubuntu:~/Desktop$ tree -d   # 只显示目录,不显示文件

python@ubuntu:~/Desktop$ tree ~    # 查 家目录结构

4.2 cp (复制目录或文件)

注意:本地文件拷贝

4.2.1 用法

cp [选项] 需要拷贝的文件 拷贝到那里去

4.2.2 常用选项

  • cp 命令的功能是将给出的 文件目录 复制到另一个 文件目录 中,相当于 DOS 下的 copy 命令
  • cp并不能直接复制目录,如果复制目录,必须带上-r
选项 含义
-i 覆盖文件前提示
-r 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
-v 显示拷贝过程信息
-p 文件属性信息一起拷贝
-a 递归拷贝文件,包括目录及文件属性信息
python@ubuntu:~/Desktop$ cp a test
cp: 略过目录'a'
python@ubuntu:~/Desktop$ cp -r a test

4.3 mv (移动或重命名目录或文件)

4.3.1 用法

# 1、移动文件用法(不同路径下),注意:文件的路径不一样  
mv 需要移动的文件 移动到新的路径下


# 2、重命名用法(相同路径下),注意老文件和新文件的路径一样
mv 原来文件的名字 新文件的名字

4.3.2 常用选项

  • mv 命令可以用来 移动 文件目录,也可以给 文件或目录重命名
选项 含义
-i 覆盖文件前提示
python@ubuntu:~/Desktop$ mv a/b/c/d/123.txt .
#把递归目录中123.txt文件移动到桌面

五、查看文件内容

序号 命令 对应英文 作用
01 cat 文件名 concatenate 查看文件内容、创建文件、文件合并、追加文件内容等功能
02 more 文件名 more 分屏显示文件内容
03 grep 搜索文本 文件名 grep 搜索文本文件内容

5.1 cat

  • cat 命令可以用来 查看文件内容创建文件文件合并追加文件内容 等功能
  • cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
选项 含义
-b 对非空输出行编号
-n 对输出的所有行编号

Linux 中还有一个 nl 的命令和 cat -b 的效果等价

5.2 more

  • more 命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于 查看内容较多的文本文件

使用 more 的操作键:

操作键 功能
空格键 显示手册页的下一屏
Enter 键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索 word 字符串

5.3 grep

  • Linux 系统中 grep 命令是一种强大的文本搜索工具
  • grep允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。
选项 含义
-n 显示匹配行及行号
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写
#搜索123.txt文件是否包含as的单词
python@ubuntu:~/Desktop$ grep as 123.txt

#搜索123.txt文件中不包含as单词的文本行的行号
python@ubuntu:~/Desktop$ grep -vn as 123.txt

#搜索123.txt文件中包含"Hello word"的行内容
python@ubuntu:~/Desktop$ grep -i "Hello word" 123.txt
  • 常用的两种模式查找
参数 含义
^a 行首,搜寻以 a 开头的行
ke$ 行尾,搜寻以 ke 结束的行
#在123.txt文件搜索以字母a开头的行
python@ubuntu:~/Desktop$ grep ^a 123.txt

#在123.txt文件搜索以字母a开头的行,并显示行号
python@ubuntu:~/Desktop$ grep -n ^a 123.txt

六、判断文件类型(file)

  • 常见文件类型
文件类型 描述
字符设备(c) 所有输入输出的设备,如:键盘、鼠标、显示器、打印机等
块设备(b) 所有存储设备称之为块设备文件,如:软盘、磁盘、光盘、U盘、磁带、光驱等
软连接文件(l) 类似于Windows下的快捷方式
目录文件(d) 相当于Windows下的文件
普通文件(f或-) 类似于Windows下记事本、word等,可以使用相关命令进行编辑、查看文件内容
管道文件(p) 简单理解为程序或进行之间通讯的一种方式
套接字文件(s) 简单理解为程序或进行之间通讯的一种方式
  • 用file命令来判断文件类型
python@ubuntu:~$ file /root
/root: directory                # 目录

python@ubuntu:~$ file /dev/tty1
/dev/tty1: character special (4/1)   # 字符设备

python@ubuntu:~$ file /bin/sh
/bin/sh: symbolic link to dash   # 软连接文件

七、其他

7.1 echo 文字内容

  • echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用
python@ubuntu:~/Desktop$ echo Hello

Hello

7.2 重定向 >>>

  • Linux 允许将命令执行结果 重定向到一个 文件
  • 将本应显示在终端上的内容 输出/追加指定文件中

其中

  • > 表示输出,会覆盖文件原有的内容
  • >> 表示追加,会将内容追加到已有文件的末尾
# 1、重定向:把在终端中显示的"Hello",输出到一个a文件中
python@ubuntu:~/Desktop$ echo hello > a

# 2、将ls 查看当前文件夹的信息内容直接输出到文件a里面,并且原来a里面的"Hello"已经被覆盖。
python@ubuntu:~/Desktop$ ls -lh > a
python@ubuntu:~/Desktop$ cat a      # 查看a文件的内容

7.3 管道 |

  • Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入
  • 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,左端塞东西(写),右端取东西(读)

常用的管道命令有:

  • more:分屏显示内容
  • grep:在命令执行结果的基础上查询指定的文本
python@ubuntu:~/Desktop$ ls -lha ~ | more

# 查询有关于vi内容的
python@ubuntu:~/Desktop$ ls -lha ~ | grep vi  
上一篇:Ubuntu系统lnmp框架搭建WordPress


下一篇:centos8搭建 gitlab