第二章 bash 的基本命令

1. 启动shell

1.1 /etc/passwd

/etc/passwd  包含了所有系统帐号的的列表及每个帐号的基本信息
root:x:0:0:root:/root:/bin/bash

1.2 .bashrc 文件

默认情况下,bash shell 启动时会自动处理用户主目录下面的 .bashrc 文件,把.bashrc 里面的命令都执行一遍;所以可以在.bashrc 里面设置 环境变量和 alias 一些常见的复杂的命令。
alias cm3='ssh hostname.cm3'

1.3 shell 提示符

默认的shell 提示符是: $,这个符号表明shell 在等待用户输入,但可以更改shell 提示符的格式;
[zengtai@hsotname ~]$ 
echo $PS1          #PS1:默认控制行提示的格式
[\u@\H \W]\$

echo $PS2          #后续命令行提示符的格式
>


2.  文件目录


  • ls 命令
ls -Alh   #不显示 .  ..
ls -RF  #递归显示 目录的内容
ls -s     #输出文件块的大小
ls -S     #按文件大小排序输出
ls -i      #显示文件的索引值(inode)

  • ls  支持正则表达式 
ls /home/user/*

  • 连接文件
ln -s source.txt softsource     #建立一个 urce.txt  的软连接:softsource

ln source.txt hardworksource  #建立一个source.txt 的硬连接 :hardworksource

3. 查看文件内容

  • stat 命令
stat t
  File: `t'
  Size: 401             Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 26017795    Links: 1
Access: (0644/-rw-r--r--)  Uid: (53549/zengtai.csm)   Gid: (  100/   users)
Access: 2013-01-20 16:41:38.000000000 +0800
Modify: 2012-09-04 16:19:09.000000000 +0800
Change: 2012-09-04 16:19:47.000000000 +0800

  •   file 文件命令
file t
t: ASCII text, with very long lines
file test.sh
test.sh: a perl script text executable

  •   cat 命令  :查看一个文件   echo 打印一个变量  这二者的区别容易混淆
cat -sb  t.txt    #  s:只给文本线上行号  b:把多个空行压缩成一个空行
cat -n t.txt       #所有的行包括空行都打印行号


  •  less  more  cat
less  more 都可以线上文件一部分内容,但是  more是先把读取文件的所有内容然后再显示一屏,但less 是读取一屏内容,显示一屏内容;更加高效。

  •      tail   head
tail -20  head -30  默认是 10   tail -f file|grep ...

4. 监控 进程process

   当应用程序在linux 上面运行我们就称之为进程;所以每一个进程都是一个应用程序。
ps -ef   #e:显示所有的进程 f:显示完整格式的输出
ps -aux  #a:显示除控制进程和无终端进程外的所有进程  u:显示所有/etc/passwd 有效用户的进程
ps -efH  #显示父子进程

5. top 命令

top:TIME+ TIME 具体的计算方法是怎样的?
top的快捷键: 1   f   -> l  enter

6. 结束进程的命令

  • kill  命令:kill单个进程  kill -9 pid
    for i in `ps -u ads|grep nginx|awk '{print $1}'`;do sudo -u user kill -9 $i; done

  • killall  命令:支持通过进程名来结束进程
    cd /home/a/share/nginc/sbin;sudo killall -9 ./nginxctl

7. 处理数据文件

  • sort   sort 默认按 字符串排序  
    cat t.txt |sort -t':' -k3 -n   # 以 : 作为分隔符 按第三列 按数字从小到大(r:是从达到小)排序    t参数:默认是空格啊
    sudo du -sh /../* |sort -nr    按大小从大到小排列


  • grep 搜索数据  
    grep -e reg1 -e reg2 t.txt   # 匹配reg1 或者 reg2的行
    grep 'reg1' -n t.xt     # 线上匹配的行数

8. 压缩数据命令  

            常用的压缩工具:gzip   zip  bzip2;这个三个命令分别是系统中的三个rpm包;并非是可执行文件;所以在系统中要安装这些包才能用;否则不能用:
rpm -qa|grep zip|sort
bzip2-1.0.3-6.el5_5
gzip-1.3.5-13.el5
zip-2.31-2.el5
  • gzip 工具
    rpm -ql gzip-1.3.5-13.el5   #gzip 的rpm包
    /bin/gunzip                 #gunzip 解压缩文件的命令
    /bin/gzip                   #gzip 压缩文件的命令
    /bin/zcat                   #打印压缩文件zcat .gz|wc -l 查看压缩文件的条数
    /usr/bin/zdiff              #对比两个压缩文件
    
    gzip 支持通配符一次压缩多个文件,但是每一个文件都压缩成一个.gz 文件;不能多个文件压缩成一个文件:
    touch t1 t2 t3 t4 t5
     ls
    check_tt3.log_test  t1  t2  t3  t4  t5
     gzip `ls ./*`       #把 ls ./*  下面的所有文件都各自压缩成 对应的.gz 文件
    
    touch t6 t7
    gunzip `ls ./*.gz`   #把所有的 .gz文件加压缩到原来的名字 ;并且在当前目录下面  
    ls
    check_tt3.log_test  t1  t2  t3  t4  t5  t6  t7
    
    
    
    
  •   zip工具:  .zip 文件  优势: 可以将这个目录下面的所有文档压缩成一个 .zip 文件 
    zip zegntai.zip ~zengtai.csm/*       #后面这  * 一定要加  不然只会压缩一个根目录
      adding: home/zengtai.csm/bin/ (stored 0%)
      adding: home/zengtai.csm/check_tt3_process.sh (deflated 34%)
      adding: home/zengtai.csm/ecpm.ads.ssh2.tar (deflated 85%)
      adding: home/zengtai.csm/kkkstat2 (deflated 75%)
      adding: home/zengtai.csm/nohup.out (deflated 75%)
      adding: home/zengtai.csm/t1 (stored 0%)
      adding: home/zengtai.csm/t2 (stored 0%)
      adding: home/zengtai.csm/test/ (stored 0%)
      adding: home/zengtai.csm/test.zip (stored 0%)
      adding: home/zengtai.csm/tt3/ (stored 0%)
    查看zip 压缩文件中的所有文件:
    unzip -l zegntai.zip 
    Archive:  zegntai.zip
      Length     Date   Time    Name
     --------    ----   ----    ----
            0  10-15-12 22:14   home/zengtai.csm/bin/
          318  09-14-12 23:45   home/zengtai.csm/check_tt3_process.sh
        10240  08-20-12 19:47   home/zengtai.csm/ecpm.ads.ssh2.tar
        31272  09-26-12 19:55   home/zengtai.csm/kkkstat2
          952  12-04-12 10:00   home/zengtai.csm/nohup.out
           15  12-19-12 16:55   home/zengtai.csm/t1
           15  12-19-12 16:55   home/zengtai.csm/t2
            0  02-02-13 17:50   home/zengtai.csm/test/
          140  02-02-13 17:47   home/zengtai.csm/test.zip
            0  02-02-13 17:43   home/zengtai.csm/tt3/
     --------                   -------
        42952                   10 files
    解压缩zip 文件必须要mv到一个目录下面;因为unzip会把原来的目录复原,所以之前的的文件、目录都会从新建立;如果有冲突会unzip -h 看参数:
    mv zegntai.zip ./test  #移到单独的一个目录
     unzip zegntai.zip 
    Archive:  zegntai.zip
       creating: home/zengtai.csm/bin/
      inflating: home/zengtai.csm/check_tt3_process.sh  
      inflating: home/zengtai.csm/ecpm.ads.ssh2.tar  
      inflating: home/zengtai.csm/kfcstat2  
      inflating: home/zengtai.csm/nohup.out  
     extracting: home/zengtai.csm/t1     
     extracting: home/zengtai.csm/t2     
       creating: home/zengtai.csm/test/
     extracting: home/zengtai.csm/test.zip  
       creating: home/zengtai.csm/tt3/
     ls
    home  zegntai.zip    #/home 就是整个目录

  • bzip2 压缩工具:bzip2 压缩工具跟gzip 是一样的;一个文件只能压缩成一个.bzip2 ;bunzip2 *.bzip2 解压缩文件到原来的文件:
    rpm -ql bzip2-1.0.3-6.el5_5
    /usr/bin/bunzip2
    /usr/bin/bzcat
    /usr/bin/bzcmp
    /usr/bin/bzdiff
    /usr/bin/bzgrep
    /usr/bin/bzip2
    /usr/bin/bzip2recover
    bzip2 `ls ./*`
     ls ./*.bz2
    ./check_ea.sh.bz2  ./ecpm.ads.ssh2.tgz.bz2  ./kfcstat2.bz2                 ./linshi.bz2                ./t.bz2
    ./ea_restart.bz2   ./help_kfc_server.bz2    ./libinner.so.conf.rpmnew.bz2  ./setup_common_ecpm.sh.bz2
    
    bunzip2 ./*.bz2
    ls
    bin  check_ea.sh  data  ea_restart  ecpm.ads.ssh2.tgz  help_kfc_server  kfcstat2  libinner.so.conf.rpmnew  linshi  setup_common_ecpm.sh  t

8. tar 归档文件

  • tar 重用命令 :
    tar -cvf test.tar ./*
    ./bin/
    ./bin/kkkstat
    ./check_ea.sh
    ./data/
    ./libinner.so.conf.rpmnew
    ./linshi
    ./setup_common_ecpm.sh
    ./t
    
    ls -l test.tar
    -rw-r--r-- 1 zengtai.csm users 624640 Feb  2 18:27 test.tar
    tar -xvf test.tar  
    ./bin/
    ./bin/kfcstat2
    ./check_ea.sh
    ./data/
    ./libinner.so.conf.rpmnew
    ./linshi
    ./setup_common_ecpm.sh
    ./t
    注意:我们一般归档一些文件时要对 绝对路径 进行归档;这样在cp到其他机器解压缩时直接  -C / 即可;不用还cp到指定的目录来压缩
  • tar 最常用的是归档、压缩文件一起用;
    sudo tar czvf ~/test.user.ssh2.tgz /home/user/.ssh
    
    sudo scp -p hostname:~/test.user.ssh2.tgz  ./
    sudo tar xzvf ./test.user.ssh2.tgz -C /             ## -C  /    指定解压缩到 根目录:/
    注意: czvf  xzvf 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值