Shell基础


  1. Shell脚本

     

     

     

     

  2. Alias   别名

     

     

    也可以定义命令别名:  针对用户

     

     

     

     

     

     备注:此命令可以永久定义命令别名,在里面填写

     

     

     

     

  3. 通配符

    *用来匹配零个或多个字符

     

    匹配1开头的所有字符

     

     

    匹配。Txt结尾的所有字符

     

     

    ?用来匹配一个字符

     

     

     

     

  4. 重定向

      

       输出重定向

     

     

       

       追加重定向

     

     

       

       错误重定向,  2>

      

      

       

       错误追加重定向

      

       

    输出错误日志与正确日志分开

     

     

     

  5. 管道符     把前边命令结果丢给后边

      

     

     

  6. 作业控制

     

     Ctrl+z  暂停    fg可恢复vi窗口继续运行

     

     

     

    Shell

    !!:表示执行上一条命令

    [root@ns1 ~]# cat /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    。。。

    [root@ns1 ~]# !!

    cat /etc/passwd //会显示上一次的命令是什么

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    !$:表示上一条命令的最后一个参数

    [root@ns1 ~]# cd !$

    cd /etc/passwd //显示当前执行的命令

    -bash: cd: /etc/passwd: 不是目录

    !**表示字母,寻找历史命令中,以某个字母开头的最近命令

    [root@ns1 ~]# !c

    cd /etc/passwd

    -bash: cd: /etc/passwd: 不是目录

     

     

     

    错误重定向:

    [root@ns1 ~]# ls zyg

    ls: 无法访问zyg: 没有那个文件或目录

    [root@ns1 ~]# ls zyg > err.log

    ls: 无法访问zyg: 没有那个文件或目录

    [root@ns1 ~]# cat err.log

    [root@ns1 ~]# ls zyg 2> err.log

    [root@ns1 ~]# cat err.log

    ls: 无法访问zyg: 没有那个文件或目录

    错误追加重定向:

    [root@ns1 ~]# ls zyg 2>> err.log

    [root@ns1 ~]# ls zyg 2>> err.log

    [root@ns1 ~]# cat err.log

    ls: 无法访问zyg: 没有那个文件或目录

    ls: 无法访问zyg: 没有那个文件或目录

    ls: 无法访问zyg: 没有那个文件或目录

     

     

     

    jobs:查看后台Stopped的任务

    fg:将后台任务调至前台

    bg:将前台任务调至后台

     

     

     

     

    Shell变量

     

     

    $PATH:系统的环境变量

    [root@ns1 ~]# a=1 //定义变量a

    [root@ns1 ~]# echo $a

    1

    [root@ns1 ~]# a=0 //改变a的值

    [root@ns1 ~]# echo $a

    0

    备注:自定义变量尽量写为小写,系统变量为大写,防止用户把系统变量与用户自定义变量搞混

     

    Env

     

     

     

     

    env:查看系统变量

    [root@ns1 ~]# env

    HOSTNAME=ns1.zyg

    TERM=xterm

    SHELL=/bin/bash

    HISTSIZE=1000

    SSH_CLIENT=172.16.1.65 49529 22

    QTDIR=/usr/lib64/qt-3.3

    QTINC=/usr/lib64/qt-3.3/include

    。。。

    [root@ns1 ~]# echo $LANG

    zh_CN.UTF-8

    [root@ns1 ~]# LANG=en

    [root@ns1 ~]# ls zyg

    ls: cannot access zyg: No such file or directory

    备注:由中文提示,变为英文

    [root@ns1 ~]# LANG=zh_CN.UTF-8

    [root@ns1 ~]# ls zyg

    ls: 无法访问zyg: 没有那个文件或目录

    定义变量的时候。变量名不加$

     

     

    变量名命名原则

  1. 首个字符必须是字母

  2. 中间不可以有空格,可以有下划线

  3. 不能用标点符号

     

     

    Shell字符串

     单引号 :单引号里的任何字符都会原样输出,不可以有变量

    双引号:可以有变量,转义符

     

    Shell注释

    #开头就是注释

     

     

     

     

    set:查看所有的系统变量以及用户自定义变量,比env

    [root@ns1 ~]# set

    BASH=/bin/bash

    BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath

    BASH_ALIASES=()

    。。。

    [root@ns1 ~]# com=ls /root //变量不能直接赋值

    -bash: /root: is a directory

    [root@ns1 ~]# com='ls /root' //使用双引号也是可以的

    [root@ns1 ~]# echo $com

    ls /root

    [root@ns1 ~]# com2="$com: ls" //$加变量,替换出其中变量的值

    [root@ns1 ~]# echo $com2

    ls /root: ls

    [root@ns1 ~]# b=$a:123

    [root@ns1 ~]# echo $b

    1:123

    [root@ns1 ~]# b=$a123 //变量名后不能直接跟常量,需要加引号

    [root@ns1 ~]# echo $b

     

    [root@ns1 ~]# b=$a"123" //

    [root@ns1 ~]# echo $b

    1123

    unset:删除变量

     

    history -c:删除命令历史

    .bash_history:清空命令历史

    vim /etc/profile:定义了各种循环及变量

     

    全局变量

    [root@ns1 ~]# echo $PS1

    [\u@\h \W]\$

    [root@ns1 ~]# cd /etc/init.d/

    [root@ns1 init.d]# PS1="[\u@\h \w]\$" //改变当前的显示路径

    [root@ns1 /etc/init.d]$PS1="[\u@\h \w]\\$" //$改为#

    [root@ns1 /etc/init.d]#PS1="[\u@\h \w \t]\\$" //增加显示时间

    [root@ns1 /etc/init.d 10:45:04]#PS1="[\u@\h \W \t]\\$"

    [root@ns1 init.d 10:45:11]#cd

    [root@ns1 ~]#cut -d: -f 3 /etc/passwd | sort

    0

    1

    10

    11

    12

    13

    14

    16

    173

    2

    [root@ns1 ~]#cut -d: -f 3 /etc/passwd | sort -n

    0

    1

    2

    3

    4

    5

    6

    7

    8

    10

    11

    12

    13

    14

    16

    29

    [root@ns1 ~]#head /etc/passwd | sort -t':' -k5,10

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    halt:x:7:0:halt:/sbin:/sbin/halt

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    root:x:0:0:root:/root:/bin/bash

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    sync:x:5:0:sync:/sbin:/bin/sync

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    [root@ns1 ~]#head /etc/passwd | sort -t':' -k3,10

    root:x:0:0:root:/root:/bin/bash

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    sync:x:5:0:sync:/sbin:/bin/sync

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    [root@ns1 ~]#head /etc/passwd | sort -t':' -k3,5 -n /由小到大

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    sync:x:5:0:sync:/sbin:/bin/sync

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    halt:x:7:0:halt:/sbin:/sbin/halt

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    [root@ns1 ~]#head /etc/passwd | sort -t':' -k3,5 -r //由大到小

    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    halt:x:7:0:halt:/sbin:/sbin/halt

    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    sync:x:5:0:sync:/sbin:/bin/sync

    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    adm:x:3:4:adm:/var/adm:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin

    bin:x:1:1:bin:/bin:/sbin/nologin

    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    root:x:0:0:root:/root:/bin/bash

    sort -u:可以把重复的变为一个显示

    [root@ns1 ~]#head -2 /etc/passwd | tr 'a-z' 'A-Z'

    ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH

    BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值