命令(command)格式
     一般情况下command [选项(options)] [参数[arguments]] 此处选项和参数可以是多个
       选项options:定义命令的执行方式
         使用“-”引导
           -短选项
            短选项:通常只有一个字符 使用“-”引导 多个短选项可以组合使用 如 rm -rf /tmp/dir/ (强行删除目录dir及其内的文件盒子目录)
           --长选项
            长选项:通常就是一个具有完整意义的单词或词组 用“--”引导 如一个外部命令cd可使用 man --help
       参数argument:命令的作用对象
         此项可省略,但往往无参命令都具有默认作用对象
  注意:1.取消命令执行 ctrl+c
        2.一行可以执行多个命令 使用“;”隔开即可
命令(command)种类
     1.内部命令
          隶属于某个已打开的shell程序的命令 如cd;type cd==>cd is a shell builtin (built-in:内嵌的)
     2.外部命令
          在系统某个路径下,一个具有与命令名称对应的文件名的可执行文件的命令 如man;type man==>man is hashed(/usr/bin/man)
  注意:1.使用type command 可判断命令式内部或者外部命令
     2.使用which command 可查找该命令的位置
获得命令的帮助信息
  1.大多数外部命令使用--help的长选项即可 command --help
  2.内部命令可以使用help command
重点3.查找命令手册   man command
  4.查看命令信息页 info command
  5.查看命令自身带的文档(部分)/usr/share/doc/command-version
  6.红帽官方文档 redhat.com
  7.google
cp (拷贝文件和目录)
  格式:#cp source destination
         source是个已知文件,destination 如果是文件 cp /bin/cut /tmp/testcut 这表明先将cut复制到/tmp/下 然后更名为testcut
                         如果是目录 cp /bin/cut /tmp/ 直接复制即可
               注意:destination不管是目录或文件 它的父目录必须存在 例如 cp (-r)/bin/cut /tmp/mybin/ 似乎是先创建目录,然后将文件复制到目录下,实际则不然 因为假设成功 路径为/tmp/mybin/cut 请注意此时cut文件的父目录不存在 所以报错
     #cp source... destination
          如果source字段有多个 那么destination只能是目录
  options
      -f 强制复制不进行询问是否覆盖原文件 在管理员模式下cp是cp -i(-i选项表示必须询问)的别名 通过#which cp可以查看
      -p preserve 保留源文件权限 时间戳 属主 属组等属性
        注意:不能保留属主 属组是root的文件属性
      -a archive档案 相当于 -rp
      -r,-R,--recursive
        递归复制多个目录
           注意:只是目录
           cp -r 目录 文件 (文件和目录重名才发生此情况)此时不能覆盖文件 命令执行错误
           cp -r 目录1 目录2  这两个目录均是已存在的目录 执行结果会将目录1放在目录2下,作为目录2的一个子目录
           cp -r 目录1 目录2   此时目录2不存在 将目录1复制到目录2的父目录下,并且更名为目录2的名字 目录2的父目录必须存在 
bash -x shellname 显示shell每一步执行结果
   -n shellname 简单检查shellname文件中的语法
   shellname    执行shellname文件
sed (Stream EDitor)  行编辑器
  特性
    1.非交互式的编辑器
    2.没有破坏性,默认不修改文本
    3.sed支持sed脚本
  功能
    搜索匹配的内容并执行各种操作(删除,打印,替换)
  格式及其意义
    sed "FIRADDR1,LASTADDR2command" inputfile
      FIRADDR1,LASTADDR2 从FIRADDR1到LASTADDR2用命令进行处理
         此字段还可以是
          1.num:第num行
            2./pattern1/,/pattern2/ 基本正则表达式
             从第一次出现pattern1的行到第一次出现pattern2的行执行command
       command
           p 打印 print 而非paste
            打印匹配的内容
           [num]a\string 在第num行后开辟一个新行打印string
           [num1,num2]a\string 分别在第num1行到第num2行后开辟一个新行打印string
           [num]a\...\n... 表明在第num行后开辟两个新行显示内容 \n 表示换行
           i\string 在当前光标所在处上方的每一行上方均显示一个新增行 打印string
           ! 被匹配到的内容不作处理
           s 此处与vim末行模式下的substitute功能类似
     sed 常用选项
        -n quiet 只显示匹配的内容
        -e " " -e " " -e " " inputfile 一次指定多个操作
        -i 直接修改文件
        -f 先将多个操作写入一个文件,用-f来读取而后实现对其他文件的处理
read (跟用户键盘交互)
  1.read VARIABLE_NAME回车
    string回车
    回车
    将string赋值给VARIABLE_NAME
    Attention:当变量(假设3个)少于用户输入的数据(假设4个)则
         用第一个变量接受第一个数据
         用第二个变量接受第二个数据
         用第三个变量接受后面的所有数据
   2.-p ”string“  在屏幕上打印string
     read -p "value" VARIABLE_NAME 将value赋值给VARIABLE_NAME
exit
  在脚本中遇到exit 脚本执行就结束
  exit num
  指定脚本退出码
  0表示正确执行
  1-255表示错误执行
elinks [options] [url] 基于文本的web客户端工具
    http://www.google.com 交互式查看网页
    -dump url 不工作在交互模式下,查看网页。
          主要用于输入重定向
    -source url 查看网页源代码
wget 非交互式的下载工具
   wget [options] url 支持http和ftp
      -O(大写) FILE 下载内容保存哪个文件当中
      -c      断点续传,有时需要制定位置
      -q            工作在静默模式下,不显示任何信息
      网络不好时候 还需要
      --tries=20 表示试20次
      --wait=20 等20秒继续尝试连接
ftp
  ftp ip地址
  ftp>help 查看ftp模式下的命令
     cd   切换ftp服务器目录
     ls   查看ftp服务器目录
     get  下载一个文件
    mget  下载多个文件
     put  上传一个文件
    mput  上传多个文件
   Attention:1.下载或上传的目录均是切换进ftp模式下的目录
        2.另外一种登录方式:ftp ftp://用户名:密码@Server address/目录
lftp
  lftp 172.16.17.29
  lftp:172.16.17.29~>  支持命令补全
            !COMMAND  执行Linux本机命令
            lcd       切换Linux本机目录
            mirror    下载目录
  Attention:另外一种登录方式:lftp ftp://用户名:密码@Server address/目录
lftpget 非交互式下载工具
   lftpget [options]  URL
       -c  (continue previous download)断点续传
rsync 复制
   -r recursive 复制目录
   -p 保留文件原有属主属组
   -a=-rp
   -e ssh FILE USERNAME@SERVER:PATH 将本地文件加密复制到服务器上
 Attention:可以当做复制命令用,不同的是,复制之前先比较目标文件和源文件,若相同(已有同名文件),则不复制,若不同,复制
ping 查看到目标主机的连接状况
   -c num ping num次
   -W num deadline 只等待1S
dig -t A FQDN(FULL Qualified Domain Name,形如xyl.marvel.com) 正向解析 FQDN-->IP
    -x IP 反向解析 IP-->FQDN/Alias
host -t A FQDN 正向解析
     -t PTR IP 反向解析
traceroute 目标主机   追踪路由

netstat 查看网络链接状态信息
    -t 查看跟tcp相关的链接状态
      -u 查看跟UDP相关的链接状态
      -ul 查看监听UDP的链接信息
      -tul 查看监听TCP和UDP的链接信息 TCP条目会出现LISTEN的字样 但是UDP不会出现,不过依然是监听的
      -nr 显示路由信息
      -n 显示数字 不做正向解析
      -p 显示进程号/进程名
curl 支持ftp和http的下载工具
   curl [options] URL
         -I  显示会话建立内容
         -V verbose 显示会话建立详细信息
         -O(大)ftp://PATH 下载到本地当前目录下,文件名与源文件相同
         -o(小)  FILE ftp://PATH 下载到本地FILE文件中
         -s silence 静默模式
su (Switch User,切换用户)
  su -|-l username  (make the shell a login shell)使username登陆 此种切换是完全切换
  su username 半切换到另一个用户,保留以前信息
  su -|-l redhat -c 'command'
          -c 执行命令
w 监控当前登陆用户
  who 也是监控当前登陆用户 不同的是w显示的信息更为详细
last 成功登陆服务器及系统重启的相关信息
   -n num 最近num此
lastb 显示登陆的失败尝试
lastlog 监视所有用户的最近一次登陆时间
    -u username 指定监视username用户