简介
本文介绍Linux的一些常用命令。包括:查看历史命令、目录、文件、输出、权限、版本信息。
history
作用
显示历史命令
示例
history 10 //显示最近10条命令
参数 | 含义 |
n | 打印最近n条命令 |
-c | 清空当前历史命令(缓冲区); |
-a | 将历史命令缓冲区中命令写入历史命令文件中; |
-r | 将历史命令文件中的命令读入当前历史命令缓冲区; |
-w | 将当前历史命令缓冲区命令写入历史命令文件中; |
-d<offset> | 删除历史记录中第offset个命令 |
-n<filename> | 读取指定文件 |
注意事项
history -c只是清除了当前缓冲区的历史命令。当 Shell 退出时,就不会有历史命令追加到文件 .bash_history 中。但当重新登录到 Shell 时,Shell 便会加载文件 .bash_history,该文件中存储着曾经输入的历史命令,因此,系统的历史命令就又出现了。
解决方法:history -c; history -w
其他命令
快捷键 | 描述 |
↑ | 显示上一条命令 (你在当前目录下键入的命令历史) |
↓ | 显示下一条命令 |
!! | (执行)上一条命令 |
ls !$ | 执行命令ls,并以上一条命令的参数为其参数 |
!n | 执行命令历史列表的第n条命令 |
!-n | 执行命令历史列表的倒数第n条命令 |
!-n:p | 打印上一条命令(不执行) |
!-n:gs/str1/str2/ | 将倒数第N条命令的str1替换为str2,并执行(若不加g,则仅替换第一个) |
!?string? | 执行含有string字符串的最新命令 |
! | 感叹号加一个字母,执行最后一次以此字母开头的命令 |
简单命令
目录命令
命令 | 作用 |
cd | 只输入cd然后回车,可以进入进入home目录(即~) |
cd - | 在最近的两个目录之间切换 |
pushddir | 将dir压栈 |
popd | 将本路径退出栈,并回到栈顶路径 |
文件命令
命令 | 作用 |
> file | 创建名为file的空文件 |
tree | 以树的形式递归显示所有文件(夹)。可以tree -L 3只显示3层文件夹 |
mkdir -p | 创建多级目录 |
ln -s /etc/a /tmp/b | 将/etc/a链接到/tmp/b。 只要/etc/a和/tmp/目录存在即可,会新生成/tmp/b。 |
ln -s /etc/a | 在当前目录新建a,并将/etc/a链接到当前目录下的a。等价于:ln -s /etc/a ./ |
ranger | 命令行浏览文件系统 |
输出命令
命令 | 作用 |
echo xxx | 打印xxx |
printf | 可像C语言一样打印信息。如:printf("%x\n",1234);(打印1234的16进制形式) |
命令控制
命令 | 作用 |
cmd1| cmd2 ; | 在cmd1命令的结果中再执行cmd2 |
cmd1 && cmd2; | cmd1命令执行成功后,执行cmd2 |
cmd1 ; cmd2; | cmd1命令执行完成后,执行cmd2 |
Ctrl+z | 暂停应用程序 |
Ctrl+s | 使终端发呆,静止,可以使快速输出的终端屏幕停下来。 |
Ctrl+q | 退出Ctrl+s引起的发呆。 |
Ctrl+z | 使正在运行在终端的任务,运行于后台。(可用fg恢复) |
Ctrl+c | 中断终端中正在执行的任务。 |
Ctrl+d | 在空命令行的情况下可以退出终端。 |
Ctrl+[ | 相当于Esc键。 |
Esc键 | 连续按3次显示所有的支持的终端命令。 |
Tab键 | 命令、文件名等自动补全功能。 |
权限控制
命令 | 作用 |
whoami | 查看本用户是什么:是root还是哪个user |
su liu | 切换到liu用户。如果只用su,默认切换到root |
groups | 查看本用户在哪个组。idliu也可以。 |
启动命令
命令 | 作用 |
reboot; | 内核重启命令 |
shutdown -c | 取消关机。还可以试试pkill shutdown |
其他
命令 | 作用 |
ldd; | 列出可执行文件所依赖的动态库。如:lddhello |
reset; | u-boot重启命令 |
setenv bootargs | 清除环境变量(以bootargs为例) |
setenv bootargs '...' | 环境变量很长时用单引号 |
查看发行版本
cat /proc/version
说明
适用于所有版本。
示例
[root@vps ~]# cat /proc/version
Linux version 3.10.0-514.26.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 15:04:05 UTC 2017
lsb_release
其他网址
lsb_release命令_Linux lsb_release 命令用法详解:显示发行版本信息
说明
这个命令基本适用于所有其它的linux发型版本(除了redhat和centos等) 。
centos和redhat可能没有这个命令/文件。可通过此命令查看版本:cat /etc/redhat-release
示例
lsb_release -a
也可以
cat /etc/lsb-release
结果示例:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.3.1611 (Core)
Release: 7.3.1611
Codename: Core
说明
LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。
-v 显示版本信息。
-i 显示发行版的id。
-d 显示该发行版的描述信息。
-r 显示当前系统是发行版的具体版本号。
-c 发行版代号。
-a 显示上面的所有信息。
-h 显示帮助信息。
如果当前发行版是LSB兼容的,那么/etc/lsb_release文件中会包含LSB_VERSION域。这个域的值可以是用冒号隔开的一系列支持的模块。这些模块名是当前版本支持的LSB的模块名。如果当前版本不是LSB兼容的,就不要包含这个域。
可选的域包括DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME,DISTRIB_DESCRIPTION,它们可以覆盖/etc/distrib-release文件中的内容。注:这里的distrib要替换为当前的发行版的名字。如果存在/etc/lsb-release.d目录,会在该目录中查找文件名并作为附加的模块版本加在LSB_VERSION前面。文件/etc/distrib-release中包含了一些描述信息,用来说明应该分析哪些文件名。
一般的格式是Distributor release x.x (Codename) 注意:Debian系统中缺乏相应的描述信息(见/etc/debian-version),为了支持Debian系统,大部分信息都被加在了lsb-release文件中。
redhat和fedora系统中,还支持一个参数:-s, --short 输出简短的描述信息。
cat /etc/issue
说明
适用与大部分版本。但centos结果可能会比较奇怪:
[root@vps ~]# cat /etc/issue
\S
Kernel \r on an \m
示例
Ubuntu 18.04.3 LTS \n \l
查看内核版本
cat /proc/version
说明
适用于所有版本。
示例
[root@vps ~]# cat /proc/version
Linux version 3.10.0-514.26.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 15:04:05 UTC 2017
uname -a
说明
适用于所有版本。
示例
[root@localhost ~]# cat /proc/version
Linux version 2.6.32-696.16.1.el6.x86_64 (mockbuild@c1bl.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Wed Nov 15 16:51:15 UTC 2017
其他网址
查看Linux发行版的名称及其版本号 - CoruageHe的个人空间 - OSCHINA -
Linux 查看发行版本信息以及内核版本的方法(CentOS/Ubuntu) | OSETC TECH