shell 高频指令 整理
最近强烈的需求shell skill level up
所以决定梳理一遍
别名
终端输入alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto'
- la 显示隐藏
- ll 详细显示
- ls 简略显示
也可以自定义别名
alias rmroot='sudo rm -rf ~'
这样在终端中,只需要输入rmroot就ok了 但是缺点是如果重启就失效了
如果要长久使用别名 可以sudo vim ~/.bashrc
在末尾添加
alias cdhome='cd ~' alias rmroot='sudo rm -rf ~'
保存修改后
source ~/.bashrc
生效
$符号
$# 表示参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$$ 是脚本运行的当前进程ID号
du命令和df命令区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
文件或目录的创建和删除
1)创建文件与目录
1)touch file1 file2 file3
2) mkdir -p aa/bb/cc
-p 递归建立目录,如果不带这个参数,新建目录的父目录(aa相对bb bb相对cc)必须已经存在
mkdir -p aa/bb/cc
# 然后用tree查看结构
.
└── aa
└── bb
└── cc
3 directories, 0 files
3)删除命令rm
rm 命令常用的参数有三个:-r ,-f
-r:这个操作可以连同这个目录下面的子目录一起删除。特别注意这个功能比rmdir命令要强大的多,不仅可以删除指定的目录,还可以删除该目录下面所以的文件和子目录;
-f:这个操作可以不经过系统确认强制删除文件。
文件的复制 cp
cp -r ~/Pictures/aa/bb/cc/ . #把source目录 递归地复制到 ‘.’本地 其中-r 表示递归操作
cp /home/jin/p/1.txt . #把source文件 复制到 ‘.’本地
文件移动 mv file or dir to dir
mv a.txt ./aa/
# 移动a.txt文件到 本地目录aa下
mv aa ./cc/
# 移动cc(多层级) 到 本地目录aa下
文件重命名 mv file to file , mv dir to dir
mv bb dd
# 目录改名
mv a.txt b.txt
# 文件改名
显示文件内容 cat 文本文件
cat 1.sh -n
1、cat 1.sh | more以分页方式列出文件file1的内容;
2、cat 1.txt 2.txt 按照顺序显示1.txt,2.txt的内容;
3、cat 1.txt 2.txt>3.txt 把1.txt,2.txt的内容结合起来再重定向到3.txt文件中。
4、cat 1.txt | grep abc 搜索1.txt中包括abc的内容
参看文件或目录结构
1) ls
ls -l
看每行第一个字符为文件类型
目录( d )文件(-)字符设备(c)块设备(b);附:l:链接,n:网络文件
2、-l (long ) :参数生成长列表格式(使用一行列出目录中的每个文件或目录)。
ll
# 代替 ls -l
2) stat #查看文件信息,包括索引节点、访问时间、修改时间等
3)tree #查看当前目录下面完成的目录结构
说明:
1.建议不要在目录结构非常复杂的情况下使用,如根目录,时间很久;
2.遇到tree命令不能执行,先安装tree,在使用这个命令
tree -d
# 只列举目录
4)find 将列出当前目录下的目录树的每一个文件
参看文件或目录结构
压缩与解压缩
https://blog.csdn.net/jin13277480598/article/details/52984748
1)解压缩 aa.tar 到 目录 aa
tar -zxvf aa.tar aa
2)解压缩 aa.zip 到 目录aa
unzip aa.zip aa
https://blog.csdn.net/weixin_42380348/article/details/98051285
linux硬链接和软连接 ?