Linux下使用命令行是家常便饭,通常情况下,我们都会熟记四五十个命令,但有一些少用却有用的命令被大部分人遗漏了。这篇博文收集了其中的一小部分。
sudo !!
有些命令在没有超级用户权限下运行是会报错的,之后可以用sudo !!
来调用之前的命令。!!
可以抓取最后的命令。
python命令
我们可以通过简单的python命令生产一个通过HTTP显示文件夹结构树的简单网页,可以通过浏览器在端口8000访问,直到发出中断信号。
1 | python -m SimpleHTTPServer |
mtr
mtr命令将ping和traceroute命令的功能结合在一起,mtr命令的使用前可能需要用apt/yum进行安装
1 | sudo apt install mtr #基于Debian系统 |
Ctrl+x+e
为了使每天的任务自动化,管理员需要通过输入vi、vim、nano等打开编辑器。仅仅从命令行快速的敲击Ctrl-x-e
,就可以在编辑器中开始工作了。
nl
nl
命令添加文件的行数,即给指定文件添加行号。
shuf
该命令随机从一个文件或文件夹中选择行/文件/文件夹。可以接在ls命令后面来随机抓取。
1 | ls|shuf -n1 #随机选择一个 |
ss
ss
表示socket统计。这个命令调查socket,显示类似netstat命令的信息。它可以比其他工具显示更多的TCP和状态信息。
last
该命令显示的是上次登录用户的历史信息(通过搜索文件“/var/log/wtmp”,显示logged-in和logged-out及其tty‘s的用户列表。
curl ifconfig.me
该命令用于得到你的外部IP地址,使用curl可能需要安装相关包。
tree
以树形结构显示当前文件夹。
pstree
显示当前运行命令的所有进程及相关子进程,输出显示为树形结构。
<空格>
在终端键入的每个命令都会记录到history,可用history命令进行查看。在终端输入命令时可以在命令前加一个空格,这样你的命令就不会被记录到history。
stat
Linux中stat命令用来显示文件或文件系统的状态信息。使用文件名作为参数时,该命令返回文件的全部信息,包括文件大小、块、权限、访问时间、修改时间、状态改变时间等。
pv
该命令仿照任何模型风的文本输出,包括流水线输出。使用前可能需要先行安装pv包。
mount | column -t
用一个规范的模式显示所有挂载文件系统。
Ctrl + l
这更像是快捷键,作用等同于clear
。
at
该命令与cron
命令相似,也可以用于安排一个任务或者在某个特定时刻执行命令。
1 | echo "ls -l > /dev/pts/0" | at 14:012 |
du -h -max-depth=1
该命令以人类可读的形式输出当前目录的子目录的大小。这在检查系统使用率是非常有用的。
expr
expr
在终端中计算简单的算数。
look
在终端上从英文字典上查单词以防混淆。
1 | look car #显示字典上所有以’car‘开头`的`单词 |
yes
该命令会持续地输出给定的字符串,直至收到中断命令。这在脚本语言和系统管理时有很大用处。
factor
该命令会输出所有给定数字的因数。
ping -i n -a IP_address
在等待或者持续盯着你的终端等待命令的回应或者等待服务器的连接时。当服务器连通时会发出声音(确保你的系统不是静音的)。参数n
是命令等待时间。
1 | 该命令等60秒PING一次 |
tac
该命令会以倒序输出文本文件内容,也就是从最后一行到第一行。
strace
strace是一个调试工具并被主要用于Linux的故障排除。它可能在你的系统内没有默认安装,你可能需要apt 或者 yum 安装所需要的包。
1 | strace pwd #使用strace命令追踪一个命令的执行 |
具体有关strace
的命令参数参考man
页。
disown -a && exit
disown
可以在后台持续运行任务,即使关闭了终端会话。
1 | <command> disown -a && exit |
为了在终端中再次脱离一个已经长期运行的任务(译注:可能已经后台运行了,但是并没有脱离终端),使用jobs命令来找出任务号,接着使用disown %n
,这里的%n是作业号。为了验证作业确实在运行,使用ps
或者top
命令。nohup
命令也是一个disown
命令的替代品。
getconf LONG_BIT
显示你的机器架构是32bit还是64bit。
显示日期
这应该算是一个脚本,在终端提示符后输入如下的命令你就会在终端的右上角看到日期和时间。
1 | while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done & |
watch -t -n1 "date + %T | figlet"
在使用之前,确保系统上已安装了figlet包。
该命令通过管道输出到figlet
而在终端上显示一个动画电子钟。
host与dig
host
是一个DNS查询工具,dig
命令用来解析域名,与nslookup
相比可以获得更多的域名信息。
dstat
dstat
是一个多用途的工具,它会依据系统资源生成统计。默认情况下你的系统可能没有安装dstat。在使用这个彩色的描述系统信息的生成器前使用apt
或者 yum来安装。
bind -p
该命令会显示所有的BASH shell可用的快捷方式。
lsb_release
lsb_release
命令会打印特殊发行版的信息。如果 lsb_release
还没安装,你可以在基于 Debain 的发行版中用命令 apt 安装,在基于 Red Hat
系统下用 yum 来安装包。
注意:选项‘-a’,会显示有关版本、ID、详情、发行号和研发代号的全部可用信息。
nc -zv localhost
参数num
为任何端口号,该命令用来检查端口是否被打开或关闭。
curl ipinfo.io
该命令会输出并提供IP地址的地理位置。
find . -user root
该命令会输出当前目录下( root )用户所拥有的文件(译注:即owner为root)。下面是在当前目录下列出的所有 ‘root’用户拥有的文件。
sudo apt-get build-dep ffmpeg
该命令会在相应的包安装时自动构建依赖关系。因此包安装的过程将非常流畅,也是非常容易的。
lsof -iTCP: -sTCP:LISTEN
该命令会输出所用正在使用
pdftk
pdftk
用来合并几个pdf文件,使用前需确保系统已安装pdftk包。
ps -LF -u user_name
该命令会输出一个用户的进程和线程。选项“L”(列出线程),选项“-F”(完整格式化)
startx - :1
分享 X
会话。如果你需要频繁的(以不同用户身份)登入或登出桌面时,那就需要
startx
来救场。这个命令建立了一个新的会话从而避免了在一个会话中反复的登入和登出。为了在X会话间进行交换,我们可以通过ctrl+Alt+F7
和ctrl+Alt+F8
的组合键来完成。
注意:快捷键ctrl+Alt+F1~F6
是为了控制台会话准备的,而ctrl+Alt+F7~F12
则为X会话服务。因此我们有6个控制台会话和6个X会话,不需要频繁的登入登出。上面的顺序适用于大多数的发行版,然而不同发行版可能会有不同的实现。