Linux命令行吸引了大多数Linux爱好者。一个正常的Linux用户一般掌握大约
50-60个命令
来处理每日的任务。Linux命令和它们的转换对于Linux用户、Shell脚本程序员和管理员来说是最有价值的宝藏。有些Linux命令很少人知道,但不管你是新手还是高级用户,它们都非常方便有用。
这篇文章的目的是介绍一些少有人知的Linux命令,它们一定会高效地帮你管理你的桌面/服务器。
1. sudo !!命令
没有特定输入
sudo命令
而运行,将给出没有权限的错误。那么,你不需要重写整个命令,仅仅输入’
!!
‘就可以抓取最后的命令。
1
2
3
4
5
6
|
|
1
2
3
4
5
6
7
8
9
|
|
2. python命令
下面的命令生产一个通过HTTP显示文件夹结构树的简单网页,可以通过浏览器在端口
8000
访问,直到发出中断信号。
1
|
|
3. mtr命令
我们大多数都熟悉
ping
和
traceroute
。那对于把两个命令的功能合二为一的
mtr命令
呢。如果
mtr
没在你的机子上安装,
apt
或者
yum
需要的包。
1
|
|
1
|
|
现在运行mtr命令,开始查看mtr运行的主机和google.com直接的网络连接。
1
|
|
mtr命令
4. Ctrl+x+e命令
这个命令对于管理员和开发者非常有用。为了使每天的任务自动化,管理员需要通过输入
vi
、
vim
、
nano
等打开编辑器。
仅仅从命令行快速的敲击“Ctrl-x-e”,就可以在编辑器中开始工作了。
5. nl命令
“
nl命令
”添加文件的行数。一个叫做’
one.txt
‘的文件,其每行的内容是(
Fedora
、
Debian
、
Arch
、
Slack
和
Suse
),给每行添加行号。首先使用
cat命令
显示“
one.txt
”的文件内容。
1
2
3
4
5
6
7
|
|
现在运行“nl命令”,以添加行号的方式来显示。
1
2
3
4
5
6
7
|
|
6. shuf命令
“Shut”命令随机从一个
文件
或
文件夹
中选择
行/文件/文件夹
。首先使用
ls命令
来显示文件夹的内容。
1
2
3
|
|
1
2
3
4
5
6
7
8
9
10
|
|
1
2
3
|
|
1
2
3
|
|
1
2
3
|
|
1
2
3
|
|
注意
:你可以把‘
n1
’替换成‘
n2
’来输出两个随机选择或者使用
n3
、
n4
等数字输出其他任意的随机选择。
7. ss命令
“
ss
”表示socket统计。这个命令调查socket,显示类似
netstat命令
的信息。它可以比其他工具显示更多的
TCP
和状态信息。
1
2
3
4
5
6
7
8
9
|
|
8. last命令
“
last
”命令显示的是上次登录用户的历史信息。这个命令通过搜索文件“
/var/log/wtmp
”,显示
logged-in
和
logged-out
及其
tty‘s
的用户列表。
1
2
3
4
5
6
7
8
9
10
11
12
|
|
9. curl ifconfig.me
那么如何得到你的
外部IP地址
呢?使用google?那么这个命令就在你的终端输出你的外部IP地址。
1
|
|
注意
:你可能没有按照curl包,你需要
apt/yum
来按照包。
10. tree命令
以树式的格式得到当前文件夹的结构。
1
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
|
11. pstree
这个命令显示当前运行的所有进程及其相关的子进程,输出的是类似‘
tree
’命令的树状格式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
|
12. <空格> 命令
你在终端上键入的每个命令都会记录到
history
,也能用
history
命令重新调用。
如何骗过
history 命令
呢?呵呵,你可以轻而易举地做到。在终端,只需要在键入命令之前输入一个或多个空格,这样你的命令就不会被记录了。
让我们体验一下吧,先在终端尝试五个常见的 Linux 命令并在命令之前留个空(例如** ls, pwd, uname, echo “hi”** 和
who
),然后检查这些命令是不是记录在历史中。
avi@localhost:~$ ls avi@localhost:~$ pwd avi@localhost:~$ uname avi@localhost:~$ echo “hi” avi@localhost:~$ who
现在运行
history
命令来查看上面已执行的命令是否已经被记录了.
avi@localhost:~$ history 40 cd /dev/ 41 ls 42 dd if=/dev/cdrom1 of=/home/avi/Desktop/squeeze.iso 43 ping www.google.com 44 su
你看到没有最后执行的命令没有被记录。我们也可以用另一个命令
cat | bash
欺骗history,结果跟上面一样。
13. stat 命令
Linux中的
stat
命令用来显示文件或文件系统的状态信息。当用文件名作为参数时,
stat
将会展示文件的全部信息。状态信息包括文件
大小、块、权限、访问时间、修改时间、状态改变时间
等。
avi@localhost:~$ stat 34.odt File: `34.odt' Size: 28822 Blocks: 64 IO Block: 4096 regular file Device: 801h/2049d Inode: 5030293 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ avi) Gid: ( 1000/ avi) Access: 2013-10-14 00:17:40.000000000 +0530 Modify: 2013-10-01 15:20:17.000000000 +0530 Change: 2013-10-01 15:20:17.000000000 +0530
14. <alt> + . 和 <esc> + .
上面的组合键事实上不是一个命令,而是传递最后一个命令参数到提示符后的快捷键,以输入命令的倒序方式传递命令。按住 Alt或Esc再按一下 “.”。
15. pv 命令
在
电影
里尤其是
好莱坞电影
你可能已经看见过模拟文本了,像是在实时输入文字,你可以用
pv
命令仿照任何类型模拟风的文本输出,包括流水线输出。
pv
可能没有在你的系统上安装,你需要用
apt
或
yum
获取安装包,然后安装
pv
到你的机器。
root@localhost:# echo "Tecmint [dot] com is the world's best website for qualitative Linux article" | pv -qL 20
输出样式
Tecmint [dot] com is the world''s best website for qualitative Linux article
16. mount | colum -t
上面的命令用一个很不错的格式与规范列出了所有挂载文件系统。
avi@localhost:~$ mount | column -t
输出样式
/dev/sda1on / type ext3 (rw,errors=remount-ro) tmpfson /lib/init/rw type tmpfs(rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfson /sys type sysfs(rw,noexec,nosuid,nodev) udev on /dev type tmpfs(rw,mode=0755) tmpfson /dev/shm type tmpfs(rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) fusectl on /sys/fs/fuse/connections type fusectl (rw) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) nfsd on /proc/fs/nfsd type nfsd (rw)
17. Ctr+l 命令
在进行下一步之前,我先问一下,你是如何清理你的终端?呵呵,你会在提示符后键入 “
clear
”。好的。用上面的命令执行清理终端都将成为过去。你只需要按下
Ctr+l
,看看它如何立即清理你的终端。
18. curl 命令
在
命令行
下如何检查你的
未读邮件
?这个命令对于工作在没有图形界面的服务器的人佷有用。它会在运行期间再次要求输入密码,你不需要在上面一行硬编码你的密码,否则会有其它安全风险。
avi@localhost:~$ curl -u avishek1210@gmail.com --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print \t if //; print "$2\n" if /<(title|name)>(.*)<\/\1>/;'
输出样式
Enter host password for user 'avishek1210@gmail.com': Gmail - Inbox for avishek1210@gmail.com People offering cars in Delhi - Oct 26 Quikr Alerts another dependency question Chris Bannister Ralf Mardorf Reco Brian François Patte Curt Siard berenger.morel Hi Avishek - Download your Free MBA Brochure Now... Diya ★Top Best Sellers Of The Week, Take Your Pick★ Timesdeal aptitude misconfigure? Glenn English Choosing Debian version or derivative to run Wine when resource poor Chris Bannister Zenaan Harkness Curt Tom H Richard Owlett Ralf Mardorf Rob Owens
19.screen 命令
screen
命令能断开一个会话下的一个长时间运行的进程并能再次连接,如有需要,也提供了灵活的命令选项
要运行一个长时间的进程,我们通常执行
avi@localhost:~$ ./long-unix-script.sh
缺乏灵活性,需要用户持续当前的会话,但是如果我们执行上面的命令是:
avi@localhost:~$ screen ./long-unix-script.sh
它能在不同会话间断开或重连。当一个命令正在执行时按“
Ctrl + A
”然后再按“
d
”来
断开
。
重新连接运行:
avi@localhost:~$ screen -r 4980.pts-0.localhost
注解
:在这里,这个命令的稍后的部分是
screen id
,你能用‘
screen -ls
’命令查看。欲了解更多关于
screen命令
和它们的用法,请阅读我们的一些帮助文章:
10 个screen命令的示例
。
20. file
No!写上面的命令不是笔误. ‘
file
’是一个能提供关于文件类型信息的命令。
avi@localhost:~$ file 34.odt 34.odt: OpenDocument Text
21. id
上面的命令会打印真正的和有效的
用户
和
组
的id。
avi@localhost:~$ id
输出样式
uid=1000(avi) gid=1000(avi) groups=1000(avi),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),111(bluetoo