这里是一枚菜鸟程序员,仅作记录……
一、常用命令
1. cd
(1)cd .. 回到上一级目录,注意是上一级目录
(2)cd - 回到上一次所在的目录,作用类似于【后退】
(3)cd ~ 表示回到当前用户的主目录
(4)cd / 表示进入根目录
2. tree
以树形结构列出一个文件夹下的所有子文件夹和文件。
【备注】:使用tab键可以自动补全目录名、文件名和命令
3. find
(1)找到当前目录下文件名包含某一字符的所有文件,并将其拷贝到另一目录。示例:
find ./ -name "*.final.txt" | xargs -i cp {} ./dog/
该命令是找到当前目录下所有以'.final.txt'结尾的文件,并将这些文件复制到当前目录下的dog目录下
4. pwd
(1)使用pwd命令可以获取当前目录的绝对路径
(2)$(pwd) 表示当前目录
5. mkdir
(1)mkdir用来新建一个目录,例如:mkdir one 会在当前目录下新建一个名字为one的目录;
(2)mkdir -p 用来一次性创建多级目录,例如:mkdir one/two/three 会在当前目录下创建一个one目录,one目录的下方会有two目录,two目录的下方则是three目录;
6. touch
用来新建一个空白文件,该命令不会覆盖已有同名文件;
7. cp
(1)cp命令用来复制文件到某一目录下,例如:cp hello.txt one/three,表示将当前目录下的hello.txt复制到one/three目录下;
(2)cp -r 用来复制目录到某一目录下,例如: cp -r
(3)跨服务器拷贝需要用到scp命令
8. rm
(1)rm 命令用来删除文件;
(2)rm -r 用来删除目录;
9. mv
(1)mv 命令用来将文件移动到某一目录下,例如 test1是一个文件,dir 是一个目录,mv test1 dir 会将test1文件移动到dir目录下;
(2)mv 命令也可以用来重命名文件,例如:mv test1 test2,将test1文件的名字更改为test2;
10. tail -f
(1)tail -f + 文本名 :可以在终端实时刷新文本内容
12、free
(1)free -g:以G为单位显示内存信息
(2)free -g -s 5:每隔5s自动刷新一次内存信息
13、du -sh
(1)du -sh + 路径:可查看该路径下目录的的大小
(2)du -sh *:查看当前目录下各文件及目录的大小
14、隐藏目录
(1)mv test .test:其中test是目录
二、注意事项
1. Shell脚本中不能随意添加空格,否则会报错,等号两边必须无空格,但在()内部的等号不作限制;
三、命令组合
1、递归删除子目录下所有文件名包含某一字符的文件:
find -name 'stat*' | xargs rm -f
该命令的作用是删除当前目录的所有子目录下以'stat'开头的文件;
2、指定递归子目录深度查找所有文件名包含某一字符的文件,并将符合条件的文件拷贝到指定目录下
find -maxdepth 2 -name 'stat*' | xargs -i cp -r {} ./dog
{}
代表find搜索到的文件;
xargs 是命令传递参数的一个过滤器,-i将xargs的每项名称,一般是一行一行赋值给 {}
注意命令所在层也是一层,所以指定2层,只会遍历到命令所在目录的下一级目录;
3、拷贝目录dir1下的所有文件到目录dir2,但不拷贝目录dir:
cp -r dir1/. dir2
4、截取文本第几行到第几行内容:
sed -n "5,10p" txt_name
5、压缩文件:
# 压缩文件夹,不显示指令执行过程
zip -q -r test.zip test/
6、for 循环遍历文件夹:
for file in `ls $filedir`
do
echo $file
done
四、说明
1、Shell脚本必须是Unix格式的,因为Windows和Linux的换行符不一样,不使用Unix格式,无法在Linux系统下运行;
2、Shell脚本在使用等于号进行赋值时,等于号的两边不要有空格