Linux Common Command

Welcome 👋 I have included some common and important Linux Command in this post. Enjoy!

Image credit: John Moeses Bauan

Linux Common Command

By Eric Xu Chi

Last updated: 2023.9.25

version of Linux

lsb_release -a
# 所有版本信息

cat /etc/issue
# 发行版版本信息

cat /proc/version
uname -a
# 操作系统版本信息,内核版本

ls

ls -lh
# all info

ls -l t*
# all start with t

ls | sed "s:^:pwd/:"
# all absolute path excluding hidden file

find $pwd -maxdepth 1 | xargs ls -ld
# all absolute path including hidden file

ls -l | grep "^d" | wc -l
# count subdir number

mkdir

mkdir -p /tmp/test/t1/t
# -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

find

which	查看可执行文件的位置。
# which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

whereis	查看文件的位置。
locate	配合数据库查看文件位置。
find	实际搜寻硬盘查询文件名称。slow
# find ./ -name '*.log

compress and decompress

gzip 实例:压缩 gzip fileName .tar.gz 和.tgz  解压:gunzip filename.gz 或 gzip -d filename.gz
对应:tar zcvf filename.tar.gz     tar zxvf filename.tar.gz

bz2实例:压缩 bzip2 -z filename .tar.bz2 解压:bunzip filename.bz2或bzip -d filename.bz2
对应:tar jcvf filename.tar.gz         解压:tar jxvf filename.tar.bz2
zip [-v] ana.zip anaconda-ks.cfg

unzip -d /tmp/ ana.zip

unzip -v ana.zip
# look into the zip info but not unzip actually
由于安装的ziprar包等都只能解压或压缩某一种压缩包,这里提供一个小工具,支持解压格式:.tar .zip .rar .7z,支持压缩/打包格式:.zip.tar

# 下载安装工具
curl -L -o /usr/bin/arc http://autodl-public.ks3-cn-beijing.ksyun.com/tool/arc && chmod +x /usr/bin/arc

# 压缩/打包
arc compress xxx.zip path/to/directory

# 解压
arc decompress xxx.zip 
或者解压到指定目录
arc decompress xxx.zip path/to/directory

file and folder size

du -h --max-depth=1

ll -h = ls -lh

process number

ps -aux | grep apache

free

free -m
# 显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

vim

以下命令请在普通模式执行

1.移动光标

j:向下
20j: 向下移动 20 行
k:向上
h:向左
l:向右
0:到行首
^:到行首第一个字符,如果前面有空格的话
$:到行尾
gg:快速到文件头
G:快速到文件尾
50G:跳转到第 50 行
按「ctrl」+「b」:屏幕往"后"移动一页。
按「ctrl」+「f」:屏幕往"前"移动一页。
按「ctrl」+「u」:屏幕往"后"移动半页。
按「ctrl」+「d」:屏幕往"前"移动半页。

请不要在插入模式进行光标移动,效率很低下。
========================================

2.复制

yy:复制一行
8yy:向下复制8行
yw:复制光标开始的一个单词
y$:复制光标到行尾
yfA:复制光标到第一个大写A中间的内容
y2fA:复制光标到第二个大写A中间的内容
========================================

3.剪切

x:向后剪切一个一个字符,如果是在行尾,则为向前剪切
4x:剪切4个
xp:非行尾交换两个字符,如从bs变成sb
========================================

4.删除

dd:删除一行
100dd:删除100行
dw:删除一个单词
df":删除到出现的第一个双引号
d^:删除至行首
删除的内容会放到剪贴板,按p即可粘贴到其他地方。
========================================

5.粘贴

p:粘贴复制或剪切的内容
5p:将复制或剪切的内容粘贴5次
========================================

6.替换和撤销

r+<待替换字母>:将游标所在字母替换为指定字母
R:连续替换,直到按下Esc
cc:替换整行,即删除游标所在行,并进入插入模式
cw:替换一个单词,即删除一个单词,并进入插入模式
u{n}:撤销一次或n次操作
U(大写):撤销当前行的所有修改
Ctrl+r:redo,即撤销undo的操作
========================================

7.退出编辑器

wq:保存当前文件并退出
wqa:保存所有文件并退出
q!: 不保存,强制退出
qa!: 有多个文件被打开,同时退出
以下命令请在命令模式下执行

在普通模式下,输入:即可进入。

调整文本

%s/$/sth/ :在行尾追加sth
%s/^M//g :替换掉dos换行符,\^M使用ctrl+v + Enter即可输入
:g/^\s$/d* :删除空行以及只有空格的行
%s/#.*//g :删除#之后的字符
没错,这里使用的是正则。
ce:使本行文本内容居中
ri:使本行文本内容靠右
le:使本行文本内容靠左
========================================

查找字符串

在普通模式下,按下/直接进入查找,输入相应的字符串按确定即可

n:查找下一个匹配
N:查找上一个匹配
2n:查找下面第二个匹配

more: [一张图记住 Vim 常用命令] [10 分钟上手 Vim]

Chi Xu
Chi Xu
Ph.D. student of Computer Science and Engineering in HKUST