shell学习笔记汇总

来源:互联网 发布:mysql 1215 编辑:程序博客网 时间:2024/05/17 18:25
  • 指令执行过程中,反单引号(`)这个符号代表的意义, 在一串指令中,在`之内的指令将会被先执行,而其执行出来的结果将做为外部的输入信息。
    [wm@adx /usr/local/redis]$ cd /lib/modules/`uname -r`/kernelYou 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/shecho "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 10var num : 10sh name : ./var.shfirst var : 1ninth var : 9all var : 1 2 3 4 5 6 7 8 9 10var list : 1 2 3 4 5 6 7 8 9 10PID : 13829stat : 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]$ exportdeclare -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]$ localeLANG=en_US.UTF-8LC_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 ~]# runlevelN 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