shell学习笔记汇总

  • 指令执行过程中,反单引号(`)这个符号代表的意义, 在一串指令中,在`之内的指令将会被先执行,而其执行出来的结果将做为外部的输入信息。
    [wm@adx /usr/local/redis]$ cd /lib/modules/`uname -r`/kernel
    You have new mail in /var/spool/mail/root
    [wm@adx /lib/modules/2.6.18-398.el5/kernel]$ 

  • PS1使用
        \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
        \H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
        \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
        \t :显示时间为24小时格式,如:HH:MM:SS
        \T :显示时间为12小时格式
        \A :显示时间为24小时格式:HH:MM
        \u :当前用户的账号名称
        \v :BASH的版本信息
        \w :完整的工作目录名称。家目录会以 ~代替
        \W :利用basename取得工作目录名称,所以只会列出最后一个目录
        \# :下达的第几个命令
        \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

  • Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
    [wm@adx test]$ cat var.sh 
    #! /bin/sh
    
    echo "var num : $#"
    echo "sh name : $0"
    echo "first var : $1"
    echo "ninth var : $9"
    echo "all var : $@"
    echo "var list : $*"
    echo "PID : $$"
    echo "stat : $?"
    [wm@adx test]$ chmod +x var.sh 
    [wm@adx test]$ ./var.sh 1 2 3 4 5 6 7 8 9 10
    var num : 10
    sh name : ./var.sh
    first var : 1
    ninth var : 9
    all var : 1 2 3 4 5 6 7 8 9 10
    var list : 1 2 3 4 5 6 7 8 9 10
    PID : 13829
    stat : 0<pre name="code" class="html">$# 是传给脚本的参数个数
    $0 是脚本本身的名字
    $1 是传递给该shell脚本的第一个参数
    $2 是传递给该shell脚本的第二个参数
    $@ 是传给脚本的所有参数的列表
    $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
    $$ 是脚本运行的当前进程ID号
    $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
    
    区别:@*
    
    相同点:都是引用所有参数。
    不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在12 3)则"*" 等价于 "12 3"(传递了一个参数);而"@" 等价于 "1""2" "$3"(传递了三个参数)

     
  • export添加显示环境变量
    [wm@adx redis]$ export
    declare -x CLASSPATH=".:/usr/java/jdk1.7.0_75/lib/tools.jar:/usr/java/jdk1.7.0_75/lib/dt.jar"
    declare -x CSCOPE_DB="/home/wm/miad/cscope.out"
    declare -x CVS_RSH="ssh"

  • locale添加查看语系
    [wm@adx redis]$ locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"

  • 查看默认语系
    [wm@adx redis]$ cat /etc/sysconfig/i18n 
    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"

  • declare系统设置
    语  法:declare [+/-][rxi][变量名称=设置值] 或 declare -f
    
    补充说明:declare为shell指令,在第一种语法中可用来声明变量并设置变量的属性([rix]即为变量的属性),在第二种语法中可用来显示shell函数。
              若不加上任何参数,则会显示全部的shell变量与函数(与执行set指令的效果相同)。
    
    参  数:
     +/-  "-"可用来指定变量的属性,"+"则是取消变量所设的属性。 
     -f   仅显示函数。 
     r    将变量设置为只读。 
     x    指定的变量会成为环境变量,可供shell以外的程序来使用。 
     i    [设置值]可以是数值,字符串或运算式。

  • 登陆游标提示符
    $:给一般使用者账号使用
    #:给  root(管理员)账号使用

  • IFS  是  shell  预设使用的字段分隔符,可以由一个及多个如下按键组成
    空格键(White Space) 
    表格键(T ab) 
    回车键(Enter) 

  • 查看开机level
    [root@adx ~]# runlevel
    N 3

  • /etc/motd即messageoftoday(布告栏信息)

  • login shell 其实叧会读取这两个配置文件:
    1.  /etc/profile:这是系统整体癿讴定,你最好丌要修改这个档案;
    2.  ~/.bash_profile 或 ~/.bash_login 或 ~/.profile:(依次读取,前一个存在就不会读取下一个了)属亍使用者个人设定,你要改自己的数据,就写入这里!

  • linux用户登录顺序
    (1)/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
    (2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
    (3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
    (4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
    (5)~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
    (6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值