shell常用实例总结

简介:

将平时常用的小例子总结起来共享给大家,同时自己也备份保存,有新的东西时还会来更新,大家有新的总结可以在些留言

 
  1. 添加一个服务:  sudo update-rc.d 服务名 defaults 99  
  2. 删除特殊文件名 --help.txt 的文件:  rm -- --help.txt 或 rm ./--help.txt  
  3. 读取CMOS时间 :  hwclock --hctosys  
  4. 优盘没法卸载:  sync;fuser -km /media/usbdisk  
  5. 查看当前进程树:  pstree  
  6. 查找文件属于哪个包:  dpkg -S filename  
  7. 查看文件第五行到第10行的内容 :  sed -n '5,10p' /var/log/apache2/access.log  
  8. 动态显示进程执行情况:  top  
  9. 如何命令行刻录:  cdrecord -scanbus;cdrecord -v -eject speed=8 dev=1,1,0 test.iso  
  10. 查看包在服务器上面的地址:  apt-get -qq --print-uris install ssh | cut -d\' -f2  
  11. 手工增加一条路由 :  sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1  
  12. 去掉文件中的^M:  sed -e "s/^M//g" filename > newfile  
  13. 压缩aaa bbb目录为xxx.tar.gz :  tar -zcvf xxx.tar.gz aaa bbb  
  14. ADSL手工拨号:  sudo pon dsl-provider  
  15. 创建两个空文件:  touch file1 file2  
  16. 立即让网络支持nat :  echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward; sudo iptables -t nat -I POSTROUTING -j MASQUERADE  
  17.  
  18. 查询软件xxx依赖哪些包:  apt-cache depends xxx  
  19. 查看CMOS时间 :  hwclock --show  
  20. 将时间写入CMOS :  hwclock --systohc  
  21. 检查本地是否存在安全隐患:  sudo apt-get install rkhunter;rkhunter --checkall  
  22. 查看路由信息:  netstat -rn 或 sudo route -n  
  23. 设置时间:  date -s HH:MM  
  24. 关闭UTC,将当前时间写入CMOS。:  sudo sed -ie 's/UTC=yes/UTC=no/g' /etc/default/rcS;sudo hwclock --systohc  
  25. PDF 文件乱码 :  sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data  
  26. 清除僵死进程:  ps -eal | awk '{ if ($2 == "Z") {print $4}}' | sudo kill -9  
  27. 显示系统运行时间:  uptime  
  28. 回收站在哪里:  ~/.local/share/Trash/  
  29. 查找软件库中的软件:  apt-cache search 正则表达式  
  30. 查看拨号日志:  sudo plog  
  31. 命令关机:  sudo halt  
  32. 对比两个文件之间的差异:  diff file1 file2  
  33. 查询软件xxx被哪些包依赖:  apt-cache rdepends xxx  
  34. 查看当前有哪些进程:  ps -A  
  35. 修改系统登录信息:  sudo vim /etc/motd  
  36. 转换 mp3 标签编码 :  sudo apt-get install python-mutagen;find . -iname '*.mp3' -execdir mid3iconv -e GBK {} \;  
  37. 使用ssh方式同步远程数据到本地目录 :  rsync -Pa -I --size-only --delete --timeout=300 Remote_IP:/home/ubuntu /backup  
  38. 中止一个进程:  kill 进程号 或 killall 进程名  
  39. 设置电脑的时区为上海:  sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
  40. 查看当前的内存使用情况:  free  
  41. 查找软件库中的软件:  apt-cache search 正则表达式  
  42. 查看在会话设置的启动程序:  ls ~/.config/autostart  
  43. 一屏查看文件内容 :  cat 文件名  
  44. 挂载ISO文件:  sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso  
  45. 增加解 cab 文件支持 :  sudo apt-get install cabextract  
  46. 分区卸载:  sudo umount 目录名或设备名  
  47. 增加 7Z 压缩软件:  sudo apt-get install p7zip p7zip-full p7zip-rar  
  48. ape转换为flac:  sudo apt-get install flac shntool;shntool split -t "%n.%p-%t" -f example_UTF-8.cue -o flac example.ape -d flacOutputDir  
  49. vim 如何显示彩色字符 :  sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc  
  50. 把所有文件名中的大写改为小写:  rename 'tr/A-Z/a-z/' *  
  51. 统计当前目录下所有jpg文件的尺寸:  find . -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'  
  52. 批量缩小图片到30%:  for i in *; do convert -resize 30%x30% $1 sm-$1; done  
  53. 关闭笔记本的触摸板 :  synclient touchpadoff=1 
  54. 分区挂载:  sudo mount -t 文件系统类型 (-o nls=utf8 或 -o iocharset=utf8) 设备路经 访问路经  
  55. 硬盘分区:  sudo fdisk /dev/sda  
  56. 设置日期:  date -s mm/dd/yy  
  57. 批量将svg转为png:  for i in *; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done  
  58. 查看网卡状态:  sudo ethtool eth0  
  59. 增加解 cab 文件支持 :  sudo apt-get install cabextract  
  60. 清理旧版本的软件缓存:  sudo apt-get autoclean  
  61. 从服务器上同步时间 :  sudo ntpdate ntp.ubuntu.com  
  62. 删除创建时间在30天之前的文件 :  find . -type f -ctime +30 -ctime -3600 -exec rm {} \;  
  63. 统计当前IP连接的个数 :  netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n  
  64. 晚上11点自动关机:  sudo shutdown -h 23:00  
  65. 显示包含字符串的文件名:  grep -l -r 字符串 路径  
  66. 连续监视内存使用情况:  watch -d free  
  67. 查看当前系统所有的监听端口:  nc -zv localhost 1-65535  
  68. 使用sun的java编译器:  sudo update-java-alternatives -s java-6-sun  
  69. 转换文件名由GBK为UTF8 :  convmv -r -f cp936 -t utf8 --notest --nosmart *  
  70. 根据字符串匹配来查看文件部分内容:  grep 字符串 文件名  
  71. 递归式创建一些嵌套目录:  mkdir –p /tmp/xxs/dsd/efd  
  72. 增加用户到admin组:  sudo usermod -G admin -a 用户名  
  73. 转换bin/cue到iso文件:  sudo apt-get install bchunk;bchunk image.bin image.cue image  
  74. 控制台下显示中文 :  sudo apt-get install zhcon;zhcon --utf8 --drv=vga 
  75. 查看CPU信息:  cat /proc/cpuinfo  
  76. 显示xxx文件倒数6行的内容 :  tail -n 6 xxx  
  77. 去掉文件中的^M:  cat filename | tr -d "^M" > newfile  
  78. 终端设置代理 :  export httphttp_proxy=http://xx.xx.xx.xx:xxx  
  79. 查看包在服务器上面的地址:  apt-get -qq --print-uris install ssh | cut -d\' -f2  
  80. vim 如何显示行号:  :set number  
  81. 获取jpg的扩展信息(Exif):  identify -verbose xxx.jpg  
  82. 根据IP查电脑名 :  nmblookup -A IP地址  
  83. 查看硬盘的分区:  sudo fdisk -l  
  84. 只读挂载ntfs分区:  sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c  
  85. 提高wine的反应速度 :  sudo sed -ie '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE  
  86. 如何设置动态域名:  w3m -no-cookie -dump 'http://usere:pass@members.3322.org/dyndns/update?system=dyndns&hostname=yourdns.3322.org'  
  87. 在后台运行程序,退出登录后,并不结束程序 :  nohup 程序 &  
  88. 显示系统全部可用包的名称:  apt-cache pkgnames  
  89. 现在关机:  sudo shutdown -h now  
  90. 转换文件名由GBK为UTF8 :  convmv -r -f cp936 -t utf8 --notest --nosmart *  
  91. 查看PCI设备:  lspci  
  92. 删除用户:  sudo deluser 用户名  
  93. 删除一个服务 :  sudo update-rc.d 服务名 remove  
  94. 增加 lha 支持 :  sudo apt-get install lha  
  95. 查看当前目录的子目录:  ls -d */. 或 echo */.  
  96. 修改mysql的root口令 :  sudo mysqladmin -u root -p password '你的新密码'  
  97. 查看当前监听80端口的程序 :  lsof -i :80  
  98. 如何禁用某个帐户:  sudo usermod -L 用户名 或 sudo passwd -l 用户名  
  99. 现在重启电脑:  sudo shutdown -r now  
  100. 解压缩 xxx.tar.bz2 :  tar -jxvf xxx.tar.bz2  
  101. 修改网卡MAC地址的方法 :  sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE  
  102. 显示一小时以内的包含 xxxx 的文件:  find . -type f -mmin -60|xargs -i grep -l xxxx '{}'  
  103. 查看当前系统所有的监听端口:  nc -zv localhost 1-65535  
  104. 显示22端口现在运行什么程序 :  lsof -i :22  
  105. 删除所有以“~”结尾的临时文件 :  find . -name '*~' -exec rm {} \;  
  106. 默认打开方式的配置文件在哪里:  ~/.local/share/applications/mimeapps.list  
  107. 查看当前网卡的物理地址:  arp -a | awk '{print $4}'  
  108.  统计程序的内存耗用:  ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr  
  109. 转换CD到iso文件:  dd if=/dev/cdrom of=isofile.iso  
  110. 同一个网卡增加第二个IP地址 :  sudo ifconfig eth0:0 1.2.3.4 netmask 255.255.255.0  
  111. 通过ssh传输文件 :  scp -rp /path/filename username@remoteIP:/path   
  112. 批量将svg转为png:  for i in *; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done  
  113. 显示开启文件abc.txt的进程 :  lsof abc.txt  
  114. 显示系统全部可用包的名称:  apt-cache pkgnames  
  115. 详细显示程序的运行信息 :  strace -f -F -o outfile  
  116. 如何切换到root帐号:  sudo -Hs  
  117. 如何使用命令关闭显示器 :  xset dpms force off  
  118. 递归式删除嵌套目录:  rm –fr /tmp/xxs  
  119. 按cpu利用率从大到小排列进程:  ps -eo "%C : %p : %z : %a"|sort -nr  
  120. 查看安装软件时下载包的临时存放目录:  ls /var/cache/apt/archives  
  121. 显示当前内存大小:  free -m |grep "Mem" | awk '{print $2}'  
  122. 批量转换jpg到png:  for i in *; do convert $i `echo $i | sed -e 's/jpg$/png/'`; done  
  123. 显示最近2小时到8小时之内的文件:  find . -mmin +120 -mmin -480 -exec more {} \;  
  124. 察看当前网络连接状况以及程序 :  sudo netstat -atnp  
  125. 查看内核加载的模块:  lsmod  
  126. 带行号显示文件的内容:  nl 文件名  
  127. 查看当前进程树:  pstree  
  128. 统计80端口的连接并排序 :  netstat -na|grep :80|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n  
  129. 查看网络连接状态:  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
  130. 60分钟后关机:  sudo shutdown -h +60 

 


本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/387021,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 Unix Shell
Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明
Linux【脚本 04】Shell脚本传递参数的4种方式(位置参数、特殊变量、环境变量和命名参数)实例说明
173 0
|
8月前
|
Shell
shell中正则表达式中字符的应用具体实例以及详解
shell中正则表达式中字符的应用具体实例以及详解
94 3
|
9月前
|
监控 关系型数据库 Shell
用shell脚本写一个监控drds实例的脚本
用shell脚本写一个监控drds实例的脚本
57 1
|
10月前
|
关系型数据库 MySQL Unix
shell脚本操作实例
shell脚本操作实例
|
10月前
|
Shell
Shell脚本一键配置LAMP环境-脚本实例和解释
Shell脚本一键配置LAMP环境-脚本实例和解释
88 0
|
11月前
|
运维 监控 Shell
太牛了!100个Shell脚本实例,代码清晰拿来就能用,再也不怕写不对了!
太牛了!100个Shell脚本实例,代码清晰拿来就能用,再也不怕写不对了!
|
11月前
|
Shell Linux
shell脚本多进程并发写法实例(高阶修炼)
shell脚本多进程并发写法实例(高阶修炼)
用shell 实现自动ftp的一个实例
用shell 实现自动ftp的一个实例
|
分布式计算 监控 Java
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
140 0
日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
|
Shell Linux 开发者
shell脚本实例| 学习笔记
快速学习shell脚本实例
125 0
shell脚本实例| 学习笔记