Linux常用命令

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

系统相关

显示当前内核版本

命令:

1
uname -a

输出:

1
2
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的系统版本

命令:

1
lsb_release -a

输出:

1
2
3
4
5
6
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

用户和组

显示当前登录的用户名

命令:

1
whoami

输出:

1
2
fify@fify-PC:~$ whoami
fify

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

1
sudo usermod -aG docker $(whoami)

查看用户所属的组

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

查看当前用户所属的组

命令:

1
groups

输出:

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

查看其他用户所属的组

命令:

1
groups fify

输出:

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

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

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

1
sudo -u jenkins -H jstack 36730

添加用户到组

将当前用户添加到docker用户组

1
sudo usermod -aG docker $USER

实用工具

文字处理

替换某行中间的文字

1
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行

1
sed -n '5,10p' filename

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

删除文件的某一行

删除文件的第三行:

1
sed -i '3d' 1.txt

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

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

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

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

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

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

1
2
3
4
5
"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,

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

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

可以获取到:

1
2
3
4
5
"departmentId",
"departmentName",
"monthly",
"positionName",
"staffId",

将文字分隔显示:

1
grep abc.pl * | awk -F 'abc.pl' '{print $2}'

文件工具

获取目录中最新的文件

1
ls *.war -Art | tail -n 1

查看文件类型

1
file xxxx.jpg

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

如:

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


转载请注明出处:Linux常用命令
原文地址:https://www.xiaotanzhu.com/linux/2016-08-14-linux-commands.html