注意:常用命令中,会有一些命令仅限于特定的操作系统使用,如Ubuntu或CentOS等特定的Linux发行版本。

系统相关

显示当前内核版本

命令:

uname -a

输出:

fify@fify-PC:~$ uname -a
Linux fify-PC 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

显示当前Ubuntu的系统版本

命令:

lsb_release -a

输出:

fify@fify-PC:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial

用户和组

显示当前登录的用户名

命令:

whoami

输出:

fify@fify-PC:~$ whoami
fify

这个命令在组合其他命令一起使用的时候会比较好用,比如:

sudo usermod -aG docker $(whoami)

查看用户所属的组

可以查看当前用户的组或者指定用户所属的组。

查看当前用户所属的组

命令:

groups

输出:

fify@fify-PC:~$ groups
fify adm cdrom sudo dip plugdev lpadmin sambashare

查看其他用户所属的组

命令:

groups fify

输出:

fify@fify-PC:~$ groups fify
fify : fify adm cdrom sudo dip plugdev lpadmin sambashare docker

以其他用户的身份执行命令

以下命令以jenkins用户的身份执行jstack 36730命令。

sudo -u jenkins -H jstack 36730

实用工具

文字处理

替换某行中间的文字

sed -e 's/\(.*\)wrapper.daemonize=FALSE\(.*\)/\1wrapper.daemonize=TRUE\2/g' -i mycat

替换mycat文件中包含wrapper.daemonize=FALSE的行,并把wrapper.daemonize=FALSE替换为wrapper.daemonize=TRUE

查看文件的第m-n行

sed -n '5,10p' filename

这样你就可以只查看文件的第5行到第10行。

删除文件的某一行

删除文件的第三行:

sed -i '3d' 1.txt

删除文件的第三至第五行:

sed -i '3,5d' 1.txt

删除符合特定正则表达式的行:

sed -i '/^Love/d' 1.txt

sed正则表达式匹配中使用Lazy策略:

sed命令的正则表达式并不支持懒匹配,但是我们可以通过绕过的方法来做。比如我要查找以下内容中”和”之间的单词:

  "departmentId" bigint(20) NOT NULL,
  "departmentName" varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  "monthly" varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
  "positionName" varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  "staffId" varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,

那么我们可以通过`”[^"]*“查找”“之间的内容。如下:

sed -e 's/"\([^"]*\)"[^,]*,/\1,/g'

可以获取到:

  "departmentId",
  "departmentName",
  "monthly",
  "positionName",
  "staffId",

文件工具

获取目录中最新的文件

ls *.war -Art | tail -n 1

查看文件类型

file xxxx.jpg

file命令不跟据文件后缀名判断文件类型,而是根据文件最头部的几位Magic Number进行判断。对于乱改文件后缀的情况非常适合。

如:

fify@fify-Vostro-3902:~/Desktop$ file 1945300044.png
1945300044.png: JPEG image data