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

 https://man.linuxde.net/ls

 

 

 

 

 

 

 

linux硬链接和软连接 ?

 

 

 

 

 

posted @ 2019-08-05 16:33  clemente  阅读(218)  评论(0)    收藏  举报