文章目录
前言
提示:。
提示:以下是本篇文章正文内容,下面案例可供参考
查看目录内容ls
ls命令说明
ls
是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令
Linux 下文件和目录的特点:
Linux 文件 或者 目录 名称最长可以有 256 个字符
操作 | 命令 | 实例 | 实例说明 |
---|---|---|---|
当前目录 | . | cd . | 当前目录 |
上一级目录 | .. | cd .. | 返回上一级目录 |
隐藏文件 | .文件名 | touch .123.txt | 创建一个名称为123.txt的隐藏文件 |
显示隐藏文件 | ls -a | ls -a | 显示隐藏文件 |
参数 | 含义 | 说明 |
---|---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 | 文件(白色) ,文件夹(蓝色) |
-l | 以列表方式显示文件的详细信息 | 详细信息指的是: 权限 创建文件的用户 创建文件的?? 文件大小 创建时间 文件名称 |
-h | 配合 -l 以人性化的方式显示文件大小(不能单独使用) | 文件的大小显示更直观 |
ls -l
结果显示
ls -hl
结果:
ls 通配符的使用
快速定位到符合条件的文件
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少 1 个 |
[] | 表示可以匹配字符组中的任一一个 |
[abc] | 匹配 a、b、c 中的任意一个 |
[a-f] | 匹配从 a 到 f 范围内的的任意一个字符 |
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls
111.txt 123.txt 321.txt 3211.txt
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls *1
zsh: no matches found: *1
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls 1*
111.txt
123.txt:
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls *3*
3211.txt
123.txt:
321.txt:
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls
111.txt 123.txt 223.txt 321.txt 3211.txt
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls [1234]23.txt
223.txt
123.txt:
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls [1-3]23.txt
223.txt
123.txt:
%
切换目录cd
说明
cd
是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 可以在最近两次工作目录之间来回切换 |
示例:
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % pwd
/Users/pengfei_lv
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % ls
Desktop Library Pictures Untitled.ipynb untitled.txt
Documents Movies Public opt 吕鹏飞.docx
Downloads Music Sunlogin Files sensors
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % cd Desktop
(base) pengfei_lv@pengfei-lvs-MacBook-Pro Desktop % pwd
/Users/pengfei_lv/Desktop
(base) pengfei_lv@pengfei-lvs-MacBook-Pro Desktop % cd -
~
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % pwd
/Users/pengfei_lv
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % cd -
~/Desktop
(base) pengfei_lv@pengfei-lvs-MacBook-Pro Desktop % pwd
/Users/pengfei_lv/Desktop
(base) pengfei_lv@pengfei-lvs-MacBook-Pro Desktop % cd ..
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % pwd
/Users/pengfei_lv
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ %
其中的~
指的是当前用户
相对路径和绝对路径
相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % pwd
/Users/pengfei_lv
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % cd /Users/pengfei_lv/Desktop
(base) pengfei_lv@pengfei-lvs-MacBook-Pro Desktop % pwd
/Users/pengfei_lv/Desktop
绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
(base) pengfei_lv@pengfei-lvs-MacBook-Pro ~ % cd Desktop/linux_learn_test
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % pwd
/Users/pengfei_lv/Desktop/linux_learn_test
创建和删除操作touch rm mkdir
touch
- 创建文件或修改文件时间
-
- 如果文件 不存在,可以创建一个空白文件
- 如果文件 已经存在,可以修改文件的末次修改日期
mkdir
创建一个新的目录
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls
111.txt 123.txt 223.txt 321.txt 3211.txt
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % mkdir -p a1/b1/c1/d1
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls
111.txt 223.txt 3211.txt
123.txt 321.txt a1
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % cd a1/b1/c1/d1
(base) pengfei_lv@pengfei-lvs-MacBook-Pro d1 % pwd
/Users/pengfei_lv/Desktop/linux_learn_test/a1/b1/c1/d1
(base) pengfei_lv@pengfei-lvs-MacBook-Pro d1 %
注意:touch 创建的文件 和mkdir创建的文件夹名称不能相同
同:新建目录的名称 不能与当前目录中 已有的目录或文件 同名
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % touch 123
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % mkdir 123
mkdir: 123: File exists
rm
删除文件或目录
使用 rm 命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹 时必须加此参数 |
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % rm abc
rm: abc: No such file or directory
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % rm -f abc
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls
111.txt 123.txt 321.txt a1
123 223.txt 3211.txt
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % rm a1
rm: a1: is a directory
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % rm -r a1
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % ls
111.txt 123.txt 321.txt
123 223.txt 3211.txt
(base) pengfei_lv@pengfei-lvs-MacBook-Pro linux_learn_test % %
拷贝和移动文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | tree [目录名] | tree | 以树状图列出文件目录结构 |
02 | cp 源文件 目标文件 | copy | 复制文件或者目录 |
03 | mv 源文件 目标文件 | move | 移动文件或者目录/文件或者目录重命名 |
mac电脑中无brew命令,
安装brew:https://www.jianshu.com/p/1a1158ff4d0d
添加链接描述
mac电脑中默认无tree命令
安装tree:https://www.cnblogs.com/niuben/p/14727449.html
添加链接描述
可以选择安装
brew install tree
或者
yum install tree
tree
tree
命令可以以树状图列出文件目录结构
选项 | 含义 |
---|---|
-d | 只显示目录 |
Linux安装 tree
[root@gxunse-0004 linux_learn]# tree
.
├── aaa
│ └── readme.txt
├── bbb
│ ├── a
│ ├── aa.txt
│ ├── b
│ ├── c
│ └── readme.txt
└── ccc
6 directories, 3 files
cp
cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中,相当于 DOS 下的 copy 命令
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子 |
[root@gxunse-0004 bbb]# cp /home/pengfei/linux_learn/aaa/readme.txt .[root@gxunse-0004 bbb]# ls
readme.txt
[root@gxunse-0004 bbb]# vim readme.txt
[root@gxunse-0004 bbb]#
复制和删除目录都需要添加 -r
复制目录:
mv
mv 命令可以用来 移动 文件 或 目录,也可以给 文件或目录重命名
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
将文件移动到当前位置
lvpengfei@gxunse-0006 ~]$ pwd
/home/lvpengfei
[lvpengfei@gxunse-0006 ~]$ tree
.
├── a
│ ├── b
│ │ └── a.txt
│ ├── c
│ └── d
├── b
├── c
└── d
7 directories, 1 file
[lvpengfei@gxunse-0006 ~]$ cd b
[lvpengfei@gxunse-0006 b]$ mv /home/lvpengfei/a/b .
[lvpengfei@gxunse-0006 b]$ tree
.
└── b
└── a.txt
1 directory, 1 file
[lvpengfei@gxunse-0006 b]$ pwd
/home/lvpengfei/b
[lvpengfei@gxunse-0006 b]$ cd ..
[lvpengfei@gxunse-0006 ~]$ tree
.
├── a
│ ├── c
│ └── d
├── b
│ └── b
│ └── a.txt
├── c
└── d
7 directories, 1 file
文件重命名:
[lvpengfei@gxunse-0006 b]$ ls
a.txt
[lvpengfei@gxunse-0006 b]$ mv a.txt b.txt
[lvpengfei@gxunse-0006 b]$ ls
b.txt
[lvpengfei@gxunse-0006 b]$
存在覆盖文件的风险,可以添加-i
增加提示信息
[lvpengfei@gxunse-0006 b]$ mv -i readme.txt b.txt
mv: overwrite ‘b.txt’? n
[lvpengfei@gxunse-0006 b]$ ls
b.txt readme.txt
修改文件夹的名称 将a目录名称改为demo
[lvpengfei@gxunse-0006 ~]$ tree
.
├── a
│ ├── c
│ └── d
├── b
│ └── demo
│ ├── b.txt
│ └── readme.txt
├── c
└── d
7 directories, 2 files
[lvpengfei@gxunse-0006 ~]$ mv a demo
[lvpengfei@gxunse-0006 ~]$ tree
.
├── b
│ └── demo
│ ├── b.txt
│ └── readme.txt
├── c
├── d
└── demo
├── c
└── d
7 directories, 2 files
查看文件内容
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cat 文件名 | concatenate | 查看文件内容、创建文件、文件合并、追加文件内容等功能 |
02 | more 文件名 | more | 分屏显示文件内容 |
03 | grep 搜索文本 文件名 | grep | 搜索文本文件内容 |
cat
cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
cat 会一次显示所有的内容,适合 查看内容较少 的文本文件
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
Linux | 中还有一个 nl 的命令和 cat -b 的效果等价 |
[lvpengfei@gxunse-0006 demo]$ cat -b b.txt
1 dsf
2 asdfasd
3 adgasdg
4 adgg
5 adsgasd
6 dgasdgasd
more
more 命令可以用于分屏显示文件内容,每次只显示一页内容
适合于 查看内容较多的文本文件
使用 more 的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter 键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索 word 字符串 |
grep
Linux 系统中 grep 命令是一种强大的文本搜索
工具
grep允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式,
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
查找 b.txt中as 并显示行号
[lvpengfei@gxunse-0006 demo]$ grep -n as b.txt
2:asdfasd
4:adgasdg
6:adsgasd
7:dgasdgasd
- 常用的两种模式查找
参数 | 含义 |
---|---|
^a | 行首,搜寻以 a 开头的行 |
ke$ | 行尾,搜寻以 ke 结束的行 |
搜索以a为首的行 以及行号
[lvpengfei@gxunse-0006 demo]$ grep -n ^a b.txt
2:asdfasd
4:adgasdg
5:adgg
6:adsgasd
其他
echo 文字内容
- echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用
[lvpengfei@gxunse-0006 demo]$ echo Hello
Hello
重定向 > 和 >>
- Linux 允许将命令执行结果 重定向到一个 文件 将本应显示在终端上的内容 输出/追加 到指定文件中
其中
>
表示输出,会覆盖文件原有的内容
[lvpengfei@gxunse-0006 demo]$ echo Hello > a.txt
[lvpengfei@gxunse-0006 demo]$ ls -lh
total 8.0K
-rw-rw-r-- 1 lvpengfei lvpengfei 6 Jun 22 23:26 a.txt
-rw-rw-r-- 1 lvpengfei lvpengfei 45 Jun 22 21:46 b.txt
-rw-rw-r-- 1 lvpengfei lvpengfei 0 Jun 22 21:32 readme.txt
[lvpengfei@gxunse-0006 demo]$ cat a.txt
Hello
>>
表示追加,会将内容追加到已有文件的末尾
将输出结果追加到 a.txt
[lvpengfei@gxunse-0006 demo]$ tree >> a.txt
[lvpengfei@gxunse-0006 demo]$ cat a.txt
Hello
.
├── a.txt
├── b.txt
└── readme.txt
0 directories, 3 files
[lvpengfei@gxunse-0006 demo]$
管道 |
- Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入
- 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,左端塞东西(写),右端取东西(读)
常用的管道命令有:
more
:分屏显示内容grep
:在命令执行结果的基础上查询指定的文本
ls -lh ~
其中的~
指的是家目录
管道输出
[lvpengfei@gxunse-0006 ~]$ ls -alh | more
total 44K
drwx------ 6 lvpengfei lvpengfei 4.0K Jun 22 21:46 .
drwxr-xr-x. 20 root root 4.0K Mar 25 16:44 ..
drwxrwxr-x 3 lvpengfei lvpengfei 4.0K Jun 22 21:34 b
-rw------- 1 lvpengfei lvpengfei 828 Jun 22 11:13 .bash_history
-rw-r--r-- 1 lvpengfei lvpengfei 18 Aug 8 2019 .bash_logout
-rw-r--r-- 1 lvpengfei lvpengfei 193 Aug 8 2019 .bash_profile
-rw-r--r-- 1 lvpengfei lvpengfei 231 Aug 8 2019 .bashrc
--More--
输出结果查找 过滤执行结果
[lvpengfei@gxunse-0006 ~]$ ls -ahl | grep d
drwx------ 6 lvpengfei lvpengfei 4.0K Jun 22 21:46 .
drwxr-xr-x. 20 root root 4.0K Mar 25 16:44 ..
drwxrwxr-x 3 lvpengfei lvpengfei 4.0K Jun 22 21:34 b
drwxrwxr-x 2 lvpengfei lvpengfei 4.0K Jun 22 16:33 c
drwxrwxr-x 2 lvpengfei lvpengfei 4.0K Jun 22 16:33 d
drwxrwxr-x 4 lvpengfei lvpengfei 4.0K Jun 22 21:23 demo
总结
提示:这里对文章进行总结:
例如: