Linux实用小技巧

反引号的使用                                                                                                              

$  echo `basename \`pwd\``     # 基于反引号的命令替换是可嵌入的,但是嵌入命令的反引号需要使用反斜杠转义
root   

$ d=$(date)                    #除了反引号可以用于命令替换,这里我们也可以使用$(command)形式用于命令替换
$ echo $d
Tue Mar 10 11:51:33 EET 2015

$ dirname="$(basename $(pwd))" #和之前的反引号一样,该方式也支持嵌套。
$ echo $dirname
root
按照PID杀进程                                                                                                             
$ who                                                               # 查看当前多少个TTY
test1     pts/0        Mar 10 11:58 (192.168.0.1)
test2     pts/1        Mar  9 09:49 (192.168.0.1)
$ ps -t pts/1 | grep -v PID | awk '{print $1"\t"}' | xargs kill -9  # 杀掉 pts/1连接的进程
$ ps -t pts/1                                                       # 或执行who命令查看已经不在了。
ERROR: TTY could not be found.
统计当前目录下文件和目录的数量                                                                                         
$ ls -l * | grep "^-" | wc -l   # 列出当前目录下所有普通文件, 以-开头
4
$ ls -l * | grep "^d" | wc -l   # 列出当前目录下所有目录文件,以d开头
5
查找空文件                                                                                                                 
# 方法一: 
$ find . -empty -type f -exec ls -l {} \;

# 方法二: 
$ find . -size 0 | xargs ls -l; 
查找文件的新旧                                                                                                            

$ find . -newer file1 ! -newer file2   #查找文件更新日期比file1新,但比file2旧的文件
./file22
./adaptation2
./adaptation2_1
./file2
实时监控用户登录情况                                                                                               

watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动运行。该命令最为常用的两个选项是-d和-n,其中-n表示间隔多少秒执行一次"command",-d表示高亮发生变化的位置。下面列举几个在watch中常用的实时监视命令:

   $ watch -d -n 1 ‘who‘   # 每隔一秒执行一次who命令,以监视服务器当前用户登录的状况
    Every 1.0s: who       Sat Nov 12 12:37:18 2011  
    stephen  tty1           2011-11-11 17:38 (:0)
    stephen  pts/0         2011-11-11 17:39 (:0.0)
    root       pts/1         2011-11-12 10:01 (192.168.149.1)
    root       pts/2         2011-11-12 11:41 (192.168.149.1)
    root       pts/3         2011-11-12 12:11 (192.168.149.1)
    stephen  pts/4         2011-11-12 12:22 (:0.0)
    此时通过其他Linux客户端工具以root的身份登录当前Linux服务器,再观察watch命令的运行变化。
    Every 1.0s: who       Sat Nov 12 12:41:09 2011
    
    stephen  tty1          2011-11-11 17:38 (:0)
    stephen  pts/0        2011-11-11 17:39 (:0.0)
    root       pts/1        2011-11-12 10:01 (192.168.149.1)
    root       pts/2        2011-11-12 11:41 (192.168.149.1)
    root       pts/3        2011-11-12 12:40 (192.168.149.1)
    stephen  pts/4        2011-11-12 12:22 (:0.0)
    root       pts/5        2011-11-12 12:41 (192.168.149.1)
    最后一行中被高亮的用户为新登录的root用户。此时按CTRL + C可以退出正在执行的watch监控进程。

查看服务器通过SSH连接情况                                                                                               

 $ lsof -i:22
   COMMAND  PID   USER    FD   TYPE  DEVICE    SIZE/OFF NODE     NAME
    sshd    1582  root    3u   IPv4  11989      0t0    TCP *:ssh (LISTEN)
    sshd    1582  root    4u   IPv6  11991      0t0    TCP *:ssh (LISTEN)
    sshd    2829  root    3r   IPv4  19635      0t0    TCP bogon:ssh->bogon:15264 (ESTABLISHED)




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。