1、date:print or set the system date and time
(1)指定输出内容及形式:
date +%Y-%m-%d:2013-10-12,以指定形式打印当前的日期。
date +%F:2013-10-12,打印当前日期;date +%T:13:32:44,打印当前时间。
date +%s:打印从UNIX纪元到现在所经历的秒数。计算两个日期的天数差可以借助该选项。
date +%j:打印当前日期在当前年中的序号。
(2)选项:
-d:指定时间。以下是一些例子:
date -d -10day +%Y-%m-%d:打印10天前的日期。另外还有+10day、-5hour、-5minute等。还可以用-d '10 days ago'、-d '20131012'等。
date -d "@1380185322" +%Y-%m-%d\ %H:%M:%S:将某个时刻(秒)转换成日期时间格式。注意时区在这里会有所影响,如date -d "@1" +%Y-%m-%d\ %H:%M:%S的结果是1970-01-01 08:00:01,而不是1970-01-01 00:00:01。
2、rename:文件重命名。语法:rename from to file。例子:
批量将udp_server.log.2013-11-03这种命名方式的日志文件重命名为tcp_server.log.2013-11-03:rename udp_server tcp_server udp_server.log.??????????
3、basename:从文件名中去掉目录和后缀。例子:
basename dir/test.sh 结果:test.sh
basename dir/test.sh .sh 结果:test
4、paste:merge lines of files
file1及file2的内容:
paste file1 file2 file3...按行拼接列表中的文件。-d指定分隔符,-s指定以每个文件占用一行的方式拼接。
5、dos2unix:DOS/MAC to UNIX text file format converter,unix2dos:UNIX to DOS text file format converter
6、iconv:Convert encoding of given files from one encoding to another
语法:iconv -f encoding -t encoding inputfile。如把编码为gb18030的testfile转码为utf8:iconv -f gb18030 -t utf8 testfile
7、ps:report a snapshot of the current processes
1)进程状态(STAT列):D(不可中断睡眠,通常是IO)、R(正在运行或可运行的)、S(可中断睡眠,正等待事件完成)、T(被作业控制信号停止等)、Z(死(defunct)/僵尸进程)。
另外,在BSD格式下还可能有:<(高优先级)、N(低优先级)、s(某个会话的leader进程)、l(多线程的,使用了CLONE_THREAD)、+(在前台进程组中)。
2)常用选项:-e:选定所有进程(等价于-A);-o:指定输出的自定义格式。
3)示例:
(1)以自定义格式显示所有进程的信息:
ps -eo user,pid,ppid,pcpu,pmem,comm,args
8、tee:read from standard input and write to standard output and files
将标准输入的内容复制到标准输出和指定的(多个)文件(若指定为-,表示再复制一份到标准输出)。
1)选项:-a:追加写文件。
2)例子:last | tee last | cut -d " " -f 1。
9、top:display Linux processes
H:打开或关闭线程模式(是否在top中显示进程的各个线程)。
选项:-p:只监控指定pid的进程,如top -p 0,`pidof a.out`只监控top和a.out两个进程。
10、du:estimate file space usage
选项:-h:--human-readable(如用K/M/G表示大小);-s:只打印指定目录的汇总大小;-d, --max-depth=N:打印指定目录下N层或小于N层的各个子目录的汇总大小(N为0时相当于-s)。
11、lsof:list open files
1)简介:lsof列出进程所打开文件的信息。文件可以是普通文件、目录、块/字符设备、库或网络文件(如套接字)。如下:
TID:线程ID。在Linux下,该列为空表示是一个进程(而非线程)。
FD:文件描述符或cwd(当前工作目录)、mem(内存映射文件,如so文件)、rtd(根目录)和txt(程序文本,代码和数据)等。
FD后面的模式字符的含义:r(读访问)、w(写访问)和u(读写访问)等。模式字符后面可能有“锁”字符,含义:r(文件某部分的读锁)、R(整个文件的读锁)、w(文件某部分的写锁)和W(整个文件的写锁)等。
TYPE:文件类型,如IPv4(IPv4套接字)、DIR、FIFO、unix(UNIX域套接字)和REG(普通文件)等。
2)一些例子:
(1)列出和某个端口有关的打开文件:
# lsof -i :22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1521 root 3u IPv4 9620 0t0 TCP *:ssh (LISTEN) sshd 1521 root 4u IPv6 9622 0t0 TCP *:ssh (LISTEN) sshd 4598 root 3u IPv4 22841 0t0 TCP 192.168.200.251:ssh->192.168.200.36:49666 (ESTABLISHED) sshd 7436 root 3u IPv4 188300 0t0 TCP 192.168.200.251:ssh->192.168.200.36:51932 (ESTABLISHED) sshd 13487 root 3u IPv4 773067 0t0 TCP 192.168.200.251:ssh->192.168.200.3:49345 (ESTABLISHED) sshd 23267 root 3u IPv4 911624 0t0 TCP 192.168.200.251:ssh->192.168.200.46:61257 (ESTABLISHED) sshd 29386 root 3r IPv4 974001 0t0 TCP 192.168.200.251:ssh->192.168.200.39:51568 (ESTABLISHED)
如果要列出22-25端口有关的打开文件:lsof -i :22-25
(2)只列出和IPv4/IPv6有关的打开文件:lsof -i 4、lsof -i 6
(3)列出指定PID的进程打开的文件:lsof -p 5357
(4)列出某个目录下打开的文件:
# lsof +D /var/log/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME auditd 1244 root 5w REG 253,0 5256931 265130 /var/log/audit/audit.log rsyslogd 1278 root 1w REG 253,0 6611 295397 /var/log/messages rsyslogd 1278 root 2w REG 253,0 13751 263406 /var/log/cron rsyslogd 1278 root 4w REG 253,0 2691 295398 /var/log/secure wpa_suppl 1442 root 3w REG 253,0 0 265157 /var/log/wpa_supplicant.log
12、fuser:identify processes using files or sockets
1)简介:fuser显示正在使用指定文件或文件系统的进程。
2)常用选项:-v:详细模式。以类ps风格显示。
3)示例:
[root@localhost ~]# fuser -v /root/ USER PID ACCESS COMMAND # ACCESS表示访问类型 /root: root 2385 ..c.. bash # c表示“当前目录”(即该目录为进程的当前目录) ... ... root 4044 ..c.. vim root 4056 ..c.. bash [root@localhost ~]# fuser -v /root/.test.cpp.swp # 另外有一个进程用vim打开test.cpp时执行该命令 USER PID ACCESS COMMAND /root/.test.cpp.swp: root 4044 F.... vim # F表示进程为了写而打开该文件 [root@localhost ~]# fuser -v /usr/bin/cat # 另外有一个进程在执行cat命令 USER PID ACCESS COMMAND /usr/bin/cat: root 4047 ...e. cat # e表示进程运行了该可执行文件
13、xxd:make a hexdump or do the reverse.
如在终端(编码为UTF-8)执行如下命令,可以得到“中文”的utf8编码:
[root@localhost ~]# echo "中文" | xxd 0000000: e4b8 ade6 9687 0a .......
参考资料:
http://m.oschina.net/question/12_145479#rd
不断学习中。。。