基本概念
- Linux下文件和目录的特点:
文件或目录名称最长可以是256个字符。
以.开头的文件为隐藏文件,需要用-a参数才能显示
目录和文件名是大小写敏感的。
.代表当前目录
..代表上一目录
- 通配符的使用
* 代表任意多个字符
?代表任意一个字符,至少1个
[] 表示可以匹配字符组中的任意一个
[abc] 匹配a或b或c中的任意一个
[a-f] 匹配a到f中的任意一个
- 相对路径和绝对路径
相对路径:在输入路径时,最前面不是/或者- ,表示相对当前目录所在的目录位置
绝对路径:在输入路径时,最前面是/或者- ,表示从根目录/家目录开始的具体目录位置
文件和目录的表示、创建、删除
- ls : list,产看当前文件夹下的内容
ls -a:显示指定目录下所有的子目录和文件,包含隐藏文件
ls -l:以列表方式显示文件的详细信息
ls -l -h:配合-l以人性化的方式显示文件大小
(可以分开输入,也可连在一起输入:ls -l -h = ls -lh,先后顺序木有关系)
(可以使用通配符 ls *1.txt)
- pwd:print wrok directory 查看当前所在文件夹
- cd [目录名]:change directory 切换文件夹
cd ~或cd 切换到当前用户的家目录(/home/用户名)
cd . 保持当前目录不变
cd .. 切换到上一级目录
cd - 可以在最近两次工作目录间进行切换
- touch [文件名]:touch 如果文件不存在,新建文件;如果文件已存在,则修改该文件的末次修改时间
- mkdir [目录名]:make directory 创建目录(不允许重名)
mkdir -p 可以递归创建目录
- rm [文件名]:remove 删除指定的文件
rm -r [目录名]:删除文件夹(递归删除文件夹)
-f :强制删除,忽略不存在的文件,无需提示
(可以使用通配符 rm *1.txt/ rm -r *)
使用rm命令要小心,因为文件直接从磁盘删除,不能恢复
文件和目录的拷贝、移动
- tree [目录名]: 以树状图列出文件和目录的结构
-d:只显示目录
(如果无法识别tree命令,可根据终端提示进行下载:sudo apt install tree(自用Ubuntu 18.04.3))
- cp 源文件 目标文件: copy 复制文件
cp ~/Desktop/456.txt ~/Desktop/a/789.txt
cp ~/Desktop/456.txt ~/Desktop/a(如果复制的文件名不变,则指定目标目录即可)
-i :覆盖前显示提示
cp: overwrite '/home/zhutingting/Desktop/a/456.txt'? (n:不覆盖/y:覆盖)
cp -r 源目录 目标目录: 复制目录(递归复制该目录下的所有子目录和文件)
- mv 源文件 目标文件: move 移动文件或目录/文件或者目录重命名
-i :覆盖前显示提示
查看文件内容
- cat 文件名:concatenate 查看文件内容,创建文件,文件合并,追加文件内容等功能
一次性显示全部内容,只能用于查看内容少的文本文档
-b:对非空行输出行编号
-n:输出所有行编号
(Linux中还有一个 nl 命令,和cat -b的效果等价)
- more 文件名:适合查看内容多的文件,分屏显示文件内容,每次只显示一屏内容
空格键:显示手册页的下一屏=f
Enter键:一次滚动手册页的一行
b:回滚一屏
f:前滚一屏
q:退出
/word:搜索word字符串
- grep 搜索文本 文件名:搜索文本文件内容(允许对文本文件进行正则表达式查找)
-n:显示匹配行及行号
-v:显示不包含匹配文本的所有行(相当于求反,如需显示行号,加-n)
-l:只列出包含查找内容的文件名
-L:只列出不包含查找内容的文件名
-C number:显示查找内容上下文number行
-i:忽略大小写
-r:递归目录进行查找(多文件时指定目录名或正则表达式文件名,结果会提示文件名及文件内容)
-w:只匹配整个单词,而不是字符串的一部分
常用的两种模式查找
^a:行首,搜索以a开头的行
ke$:行尾,搜索以ke结束的行
多条件查找
单文件或(查找文件中包含 a 或者包含 b 的行):单引号或双引号均可
grep -E 'a|b' 文件名
egrep 'a|b' 文件名
awk '/a|b/' 文件名
单文件与(查找文件中既包含 a 又包含 b 的行):单引号或双引号均可
grep ‘a’ 文件名 | grep ‘b’
多文件
grep -E -r "^a|a$" . 在本目录下递归(包含子目录)查找包含 a 或者包含 b 的行
grep -r a 1*.txt 在本目录下在以1开头的文件中(不包含子目录)查找包含 a 的行
grep -E -r 'a|s' 1*.txt 在本目录下在以1开头的文件中(不包含子目录)查找包含 a 或者包含 b 的行
其他命令
-
clear:清屏,清除终端窗口上的内容
-
重定向>和>>:将命令执行结果重定向(保存)到文件
> 文件名:若文件不存在,新建并保存结果;若文件存在,则覆盖保存。
>> 文件名:若文件不存在,新建并保存结果;若文件存在,则追加保存。
- echo 文字内容:在终端显示参数指定的文字,通常和重定向联合使用
echo Hello > test.txt 将Hello保存至test.txt
- 管道|:将一个命令的输出通过管道做为另一个命令的输入
more:命令结果太长时可以分屏显示
grep:在命令执行结果的基础上查询指定的文本(and条件)
-
查阅命令帮助信息
command —help
man command
空格键:显示下一屏= f
Enter键:一次滚动手册页的一行
b:回滚一屏
f:前滚一屏
q:退出
-
终端使用技巧
快捷键
Shift+Crtl+“+” 放大终端字体
Crtl+“-” 缩小终端字体
自动补全:输入文件/目录/命令的前几个字母之后,按下tab键。
如果没有歧义,则补全;如果存在重复内容,再按tab键会列举内容。
⬆️⬇️键:可以在曾经使用过的命令之间来回切换(Ctrl+C:可以不执行当前命令)。