常用的Shell命令

du

# 文件夹下目录占据的大小
du -s

# -h 以K、M、G为单位展示
du -sh

# d1表示depth为1,shell命令下一版用--max-depth=1,Mac环境下该命令不生效,可以用d1代替
du -hd1

# 按照文件夹大小 从小到大排列
du -hd1 | sort -h

# 按照文件夹大小 从大到小排列
du -hd1 | sort -rh

cat

# 将filename1 里的内容拷贝到filename2中,并覆盖filename2原有内容
cat filename1 > filename2

# 将filename1 里的内容拷贝并追加到filename2的文件结尾
cat filename1 >> filename2

# 允许选中多个文件,并且要写入的文件不存在的时候可以自动创建
ls -a
// ->产出: file1.js file2.js
cat file1.js file2.js > file3.js

more

当使用 cat 命令查看文件内容时,如果文件过大,以至使用PgUp+上箭头组合键向上翻页也无法看全文件中的内容,该怎么办呢?这就需要使用 more 命令,more 命令可以分页显示文本文件的内容。

  • -f 计算行数时,以实际的行数,而不是自动换行过后的行数。
  • -p 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容。
  • -c 跟 -p 选项相似,不同的是先显示内容再清除其他旧资料。
  • -s 当遇到有连续两行以上的空白行时,就替换为一行的空白行。
  • -u 不显示下引号(根据环境变量 TERM 指定的终端而有所不同)。
  • +n 从第 n 行开始显示文件内容,n 代表数字。
  • -n 一次显示的行数,n 代表数字。

less

less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。

  • -N 显示每行的行号。
  • -S 行过长时将超出部分舍弃。
  • -e 当文件显示结束后,自动离开。
  • -g 只标志最后搜索到的关键同。
  • -Q 不使用警告音。
  • -i 忽略搜索时的大小写。
  • -m 显示类似 more 命令的百分比。
  • -f 强迫打开特殊文件,比如外围设备代号、目录和二进制文件。
  • -s 显示连续空行为一行。

交互指令

Col1 Col2
/字符串 向下搜索“字符串”的功能。
?字符串 向上搜索“字符串”的功能。
q 或 Q 退出 less 命令。
空格键 向下移动一页。
回车键 向下移动一行。
b 向上移动一页。
d 向下移动半页。
j 向下移动一行。
k 向上移动一行。
G 移动至最后一行。
g 移动到第一行。

mv

# 重命名
mv 1.js 2.js

# 移动文件
mv 1.js ../1.js

# 移动并重命名
mv 1.js ../2.js

cp

# 拷贝文件到某个目录
cp 1.js ../

# 拷贝目录下文件到另一个目录,需要递归文件夹的话加 -r
cp -r ./src/* ../leo

# 拷贝文件夹到另一个目录下,记得添加 -r
cp -r src ../leo

wc

# 统计字节数
wc -c 1.js

# 统计行数
wc -l 1.js

# 统计单词数
wc -w 1.js

# 统计字符数
wc -m 1.js

grep

# grep [options][查找条件(正则表达式)] [目标文件]

# -i:不区分大小写
# -n:显示匹配行及行号。
# -s:不显示“不存在或无匹配文本”的错误信息
# -E:开启扩展的正则表达式,使用egrep命令 (egrep官网已经弃用了?)
# -c:计算找到’搜寻字符串’的次数,即统计行数
# -w:表示精确匹配一个字符

# 查找aa bb cc文件中带有test的行
grep 'test' aa bb 

# 不包含子文件的搜索
grep 'pushEvent' ./src

# 包含子文件的搜索
grep -r 'pushEvent' ./src

# 与管道符一起用
cat test.txt | grep hello

find

# Find命令统计目录下有多少个ts文件,不包含node_modules文件夹下文件
find . -name '*.ts' ! -path './node_modules/*' ! -path './packages/**/node_modules/*' ! -path "*.d.ts" | wc -l

tar

# 压缩
# z 旗标表示归档正在被压缩,并正在组合成一个文件。您通常会用到这个选项,但这不是必需的。
tar -czf LotsOfFiles.tgz LotsOfFiles

# 如果文件夹较大,您不妨添加 v 旗标来监视进程:
tar -czvf LotsOfFiles.tgz 

# 解压缩
tar -xvf LotsOfFiles.tgz

你可能感兴趣的:(常用的Shell命令)