〖Linux〗不知谁写的,很实用的Linux命令
第一部分 1. sudo 运行上一条命令 sudo !! 2. HTTP方式共享当前目录 python -m SimpleHTTPServer 80 3. vim保存一个root用户文件 :w !sudo tee % 4. 快速切换至旧的目录 cd - 5. 替换上一条命令中的一个短语 ^foo^bar^ 6. 快速备份一个文件 cp filename{,.bak} filename{,.bak} 会被展开为filename filename.bak 7. 排列,大括号在bash中是排列的意义 echo {a,b,c}{a,b,c}{a,b,c} 得到一个全排列 8. 免密码ssh登录主机 ssh-copy-id remote-machine 9. 抓取Linux桌面的视频 ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg ffmpeg 可以直接解码X11的图形,并转换输出格式 -f x11grab 指定输入类型 -s wxga 设置抓取区域的大小,wxga是1366*768的大小,也可以是-s 800x600 -r 25 设置帧频率,每秒抓取的画面数 -i :0.0 设置输入源,本地X默认在0.0 -sameq 保持与输入流一样的图像质量 第二部分 1. 用你最喜欢的编辑器来敲命令 command <C-X C-E> 2. 清空或创建一个文件 > file.txt 3. 用ssh创建端口转发通道 ssh -N -L2001:remotehost:80 user@somemachine 在本机打开了2001端口, 对本机2001端口的请求, 通过somemachine作为跳板, 转到remotehost的80端口上。 举例: ssh -f -N -L 0.0.0.0:443:twitter.com:443 shell.cjb.net ssh -f -N -L 0.0.0.0:80:twitter.com:80 shell.cjb.net 然后在/etc/hosts里边添加 127.0.0.1 twitter.com 4. 重置终端 reset 对于终端显示有乱码,不能正常显示时很有用。 5. 在午夜时候执行某命令 echo "cmd" | at midnight at 调用定时任务 6. 远程传送麦克风语音 dd if=/dev/dsp | ssh user@host dd of=/dev/dsp #新系统上可能已失效 arecord | ssh user@host aplay #本地录音,远程播放 arecord | aplay #本地直接回放 7. 映射一个内存目录 mount -t tmpfs -o size=1024m tmpfs /mnt/ram 开了一1G内存当目录使用 /dev/shm 也是内存目录,可直接使用 8. 使用diff对比远程文件与本地文件 ssh user@host cat /path/to/remotefile | diff /path/to/localfile - 学会善用ssh,可减少开发工作量,比如 sshfs [user@]host:[dir] mountpoint [options] 可以挂载远程的目录至本地(卸载fusermount -u mountpoint) 9. 查看系统中占用端口的进程 netstat -tulnp -t 显示tcp连接 -u 显示udp连接 -l 显示监听状态 -n 显示ip,不作名称转换 -p 显示相应的pid以及名称(root) 第三部分 1. 以友好的方式显示当前挂载的文件系统 mount | column -t column 用于格式化输出的信息 2. !!:gs/foo/bar !!表示上一条命令 gs/foo/bar 用bar替换foo再执行 3. 实时查看某目录最新变化 watch -d -n 1 ls -l 4. 通过ssh挂载远程主机上文件夹 sshfs user@host:remotedir localdir 卸载使用fusermount或是umount 5. 通过DNS读取Wikipedia的词条 dig +short txt <keyword>.wp.dg.cx dig +short txt hacker.wp.dg.cx #可能已失效 6. 使用wget递归下载整个网站 wget --random-wait -r -p -e robots=off -U Mozilla www.example.com --random-wait 等待0.5~1.5秒的时间进行下一次请求 -r 递归下载 -e robots=off 忽略robots.txt -U Mozilla 设置User-Agent头为Mozilla 其他实用的参数: --limit-rate=20k 限定下载速度为20k -o logfile.txt 记录下载日志 -l 0 删除深度(默认为5) -wait=1h 每下载一个文件后等待1小时 7. 复制最后使用的命令的参数 <Alt +.> 8. 执行一条命令但不保存至history中 <space> command 9. 显示当前子目录下所有子目录下的大小 du -h --max-depth=1 10. 以使用内存量排序查看进程 ps aux | sork -nk +4 | tail sork -nk +4 用sort排序列出4栏 此外可以使用htop或是top 11. 用python快速开启一个SMTP服务 python -m smtpd -n -c DebuggingServer localhost:1025 -m smtpd 指定smtp服务 localhost:1025运行1025端口 -n 不用setuid为nobody,而直接使用你的uid运行 -c DebuggingServer 在屏幕上输出信息 第四部分 1. 查看ASCII码表 man ascii 或 man 7 ascii man 1 intro - Linux简明教程 man 2 syscalls - 内核提供的系统调用 man 2 select_tut - 关于select()系统调用的教程 man 3 string - 在头文件内的所有函数 man 3 stdio - 关于头文件的使用,标准输入输出的库说明 man 3 errno - 所有errorno取值及说明 man 4 console_codes - Linux终端控制码及使用解释 man 4 full - 介绍总是处理“满”状态的/dev/full(对应有/dev/null) man 5 proc - 介绍/proc下文件系统 man 5 filesystems - 各种Linux文件系统 man 7 bootparam - 详细解释内核启动参数 man 7 charsets - 解释各种语言的编码集 man 7 glob - 解释glob文件名管理机制的工作过程 man 7 hier - 解释Linux文件系统结构各个部分的作用 man 7 operator - C语言运行符的列表 man 7 regex - 介绍正则表达式 man 7 suffixes - 常见文件后缀名的列表跟解释 man 7 time - Linux的时钟机制解释 man 7 units - 数值单位及其数值的解释 man 7 utf8 - 描述UTF-8编码 man 7 url - 解释URL、URI、URN等的标准 2. 简易计时器 time real 3. 远程关掉一台Windows机器 net rpc shutdown -I IP_ADDRESS -U user%passwd 4. 在一个子Shell中运行一个命令 (cd /tmp && ls) 其中的好处是不会修改当前shell目录 5. 利用中间管道嵌套使用SSH ssh -t host_A ssh host_B 使用情况: host_B 网络繁忙,本机不可直达 host_A 网络空闲,本机可直达 6. 清空屏幕 <C-L> 或是 clear 或是 tput clear 7. 得知一台机器什么时间重启完毕 ping -a IP 一但ping通,发出警报声音 8. 列出你最常用的10行命令 history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head 9. 使用Telnet查看《星球大战》 telnet towel.blinkenlights.nl
From: http://wenku.baidu.com/view/4724041fa8114431b90dd82b.html