shell是指计算机操作指令,是用户、计算机程序、内核之间沟通的桥梁,是计算机图形化之前操作计算机的方式,现在包含:sh-shell、bash-shell、csh-shell、tcsh-shell、ash-shell等类型。
目录
1. 安装操作
- 安装软件~sudo apt-get install
- 卸载软件~sudo apt remove
- 更新软件~sudo apt update
- 更新已安装软件~sudo apt upgrad
----拓展:ubuntu在终端安装python包~sudo pip install
2. 文件操作
- 查看当前路径(目录)、子目录及目录内容~pwd、dir、ls
- 打开文件夹及查看文件~cd、cat
- 返回终端主目录~cd ~
- 创建目录(文件夹)~mkdir
- 强制删除~rm -rf
- 重命名文件及文件夹~mv a b
- 移动文件夹~mv /a /b
----拓展:ubuntu终端copy、paste命令:ctrl+shift+c、ctrl+shift+v
3. shell-find指令~查找文件
用途:Linux find 命令用来在指定目录下查找文件。
语法:
find path -option [ -print ] [ -exec -ok command ] {} \;
参数说明 :
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-type c : 文件类型是 c 的文件。
-ctime n : 在过去n天内被修改过的文件
案例:
- 根据文件名查找
列出当前目录以及子目录下的所有文件
find . -name "*.c"
找到当前目录下名字为11.png
的文件
find . -name "11.png"
找到当前目录下所有的jpg
文件
find . -name "*.jpg"
找到当前目录下的jpg
文件和png
文件
find . -name "*.jpg" -o -name "*.png"
找出当前目录下不是以png
结尾的文件
find . ! -name "*.png"
- 根据正则表达式查找
备注:正则表示式比原先想的要复杂,支持好几种类型。可以参考这里
找到当前目录下,文件名都是数字的png
文件。
find . -regex "\./*[0-9]+\.png"
- 根据路径查找
找出当前目录下,路径中包含wysiwyg
的文件/路径。
find . -path "*wysiwyg*"
- 根据文件类型查找
通过-type
进行文件类型的过滤。
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
举例,查找当前目录下,路径中包含wysiwyg
的文件
find . -type f -path "*wysiwyg*"
- 根据访问/修改/变化时间
支持下面的时间类型。
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
举例,找出1天内被修改过的文件
find . -type f -mtime -1
找出最近1周内被访问过的文件
find . -type f -atime -7
- 找出空文件
touch {1..9}.txt
echo "hello" > 1.txt
find . -empty
参考:https://www.cnblogs.com/soymilk2019/p/11758086.html;https://www.runoob.com/linux/linux-comm-find.html
4. shell-grep指令~查找包含特定字符串的文件
语法:grep [option] pattern file
如果你想在当前目录下 查找"hello,world!"字符串,可以这样:
grep -rn "hello,world!" *
* : 表示当前目录所有文件,也可以是某个文件名(不是文件夹名)
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
下面是一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写。(files用空格隔开),如:当前目录下,grep -rni "test for grep" test.txt test1.txt
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
参考:https://blog.51cto.com/151wqooo/1162118,https://www.runoob.com/linux/linux-comm-grep.html