pgup12 发表于 2018-8-26 08:56:31

Shell 命令积累

  1.   ##将"/"的文字删除,即输出"/"符号之前的不重复数据,仅仅是打印出,不会改动源文件:
  cat ~/vob.log | sed 's/\/.*//g' | uniq
  2.    删除多余bfagent 进程:
  ps aux | grep bfagent | grep Rs | awk '{print $2}'| xargs kill -9
  ps -el | grep bfagent | grep -v S | awk '{print $4}'| xargs kill -9
  3.全目录拷贝命令:
  (cd bay319/      && tar cf - .)| (cd scripts/ && tar xpvf -)
  4. 列出home目录大小:
  for dir in $(ls      /home)
  do user=$(ls -ld /home/$dir | awk '{print $3}');su $user -c"du -sh /home/$dir"
  done
  5.查看sprac 机器配置信息:
  prtconf -v;showrev
  6.查看solaris 硬件配置信息:
  prtdiag -v
  7. Solaris 8 的加密算法为DES,而linux 为MD5,solaris 9 以上支持MD5算法。
  8. cut -d      ":" -f1 ~/nis_user.txt输出用户名
  9. 如果想下载一个网站上目录中的所有文件, 我需要执行一长串wget命令, 但这样做会更好:
  wget -nd -r -l1 --no-parent http://www.foo.com/mp3/
  这条命令可以执行的很好,但有时会下载像 index.@xx 这样一些我不想要的文件. 如果你知道想要文件的格式, 可以用下面的命令来避免下载那些多余的文件:
  wget -nd -r -l1 --no-parent -A .mp3 -A .wma http://www.foo.com/mp3/
  10.脚本添加用户:
  cnbjnis:~ # useradd -u 3001 chenxj
  cnbjnis:~ # echo password | passwd --stdin chenxj
  11. solaris 提示terminal too wide.
  stty columns 120
  12. 有时候为了方便管理,我们常常喜欢在Linux中将之安装为服务,然后就可以使用服务来管理。
  但是当我们运行安装服务的命令时候,假设服务名为myservice
  chkconfig --add myservice
  常常会出现
  "service myservice does not support chkconfig"
  我们一般在脚本开头加入下面两句就好了
  vim /etc/init.d/myservice
  添加下面两句到 #!/bin/bash 之后。
  # chkconfig: 2345 10 90
  # description: myservice ....
  其中2345是默认启动级别,级别有0-6共7个级别。
  等级0表示:表示关机
  等级1表示:单用户模式
  等级2表示:无网络连接的多用户命令行模式
  等级3表示:有网络连接的多用户命令行模式
  等级4表示:不可用
  等级5表示:带图形界面的多用户模式
  等级6表示:重新启动
  10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。
  #vi      /var/lib/dhclient/dhclient-eth0.leases
  13. sed最常用的用法莫过于替换文件,其默认的模式是直接输出在shell中,Old 为要替换的文本,New 为将要替换成的文本。
  sed 's/Old/New/' My_File.txt
  如果我们想要sed直接在文件中更改,只需要在sed后面添加 -i 或 -ig即可,-g应该是指全局。
  sed -i 's/Old/New' My_File.txt
  在mac中需要添加 -ig才能够执行(没有尝试过)
  14. 检查进程号
  checkproc -v proc
  15. 查找incoming目录下的2个月以前的文件,并将它们移动到/pub/pub/clearcase/multisite_bak/incoming/下:
  find /shipping/ms_ship/incoming-mtime +2 -print -exec mv {} /pub/pub/clearcase/multisite_bak/incoming/ \;
  16. 杀掉该用户的所有进程
  kill -9 `lsof -t -u daniel`
  17. 打印从包含 "BEGIN" 的行开始,并且以包含 "END" 的行结束的文本块:
  sed -n -e '/BEGIN/,/END/p' /my/test/file | more
  如果没发现 "BEGIN",那么将不打印数据。如果发现了 "BEGIN",但是在这之后的所有行中都没发现 "END",那么将打印所有后续行。发生这种情况是因为 sed 面向流的特性 -- 它不知道是否会出现 "END"
  18. Solaris 10 开启SSH
  系统版本:SunOS solaris1 5.10
  内核版本:5.10 i86pc
  Solaris 10在安装完成后,默认是没有开启ssh服务的,如果要开启ssh服务,就要做如下操作。
  1. 修改配置文件
  vi /etc/ssh/sshd_config
  将PermitRootLogin no更改为PermitRootLogin yes
  2. 重启ssh服务
  /lib/svc/method/sshd restart
  3. 查看ssh开放服务的端口,ssh默认开放端口为22端口,通过从查看端口来确定服务是否开启。
  netstat -avn | grep 22
  19. shell分类:
  1.交互式登录shell:以一个用户的身份登陆进去,输入命令的格式的shell。
  读取配置文件的顺序:
  /etc/profile-->/etc/profile.d/*-->~/.bash_profile-->~/.bashrc-->/etc/bashrc
  2.非交互式登录shell:只在一个脚本的,不需要用户登录,自动运行。
  读取配置文件的顺序:
  /.bashrc-->/etc/bashrc-->/etc/profile.d/*
  20.检查网址是否连通
  ping=`ping -c 3 192.168.1.69|awk 'NR==7 {print      $4}'`
  ping=`ping -c 1 $i|grep loss|awk '{print $6}'|awk -F "%" '{print $1}'`
  21.以数字形式显示文件权限:stat -c %a


页: [1]
查看完整版本: Shell 命令积累