hncys 发表于 2018-8-21 11:29:16

shell高级(一)

  Shell在/etc/shells中

  
  Bash:Bourne-again Shell的缩写
  GNU计划的一个组件
  与Unix的Bourne Shell完全兼容
  
  Bash优点
  Bash支持命令行输入、操作历史查询、快捷键、使用变量等功能。
  支持通配符、别名、串操作、文件测试、整形算术运算
  可以交互使用,或者作为脚本语言
  超过60个shell变量
  
  Bash缺点
  资源型敏感,对CPU负担重的程序
  复杂的大项目
  需要灵活的处理文件程序(逐行)
  需要图形用户界面的程序
  需要直接与系统硬件打交道的程序
  需要访问I/O端口和网络套接字的程序
  需要使用库或
  
  Bash快捷键
   Ctrl + d:输入已结束 在shell下相当于一个exit
   Ctrl + c:键盘中断请求
   Crtl + z:挂起
   Ctrl + s & Ctrl + q:暂停/恢复屏幕输出
   Ctrl + l:清屏 相当于clear
   Tab:自动补完命令行与文件名 列出所有可能的选
   Ctrl + a:光标移到行首
   Ctrl + e:光标移到行尾
   Ctrl + k:从光标所在处删除到行结尾
   Ctrl + u:删除整行
   Esc + f:光标移到下一个单词的开始处
   Esc + b:光标移到前一个或当前单词的开始处
  
  连续按TAB键,可以看现在可以使得命令
  
  Shell在/etc/shells中
  
  顺序

  
  Bash命令优先级
  Alias
  Keyword
  Functions
  Builtin
  $PATH
  builtin:BASH内置命令
  Help cd /man cd查看内置命令
  
  Bash的操作环境
  主要设置文件
  全局设置:/etc/profile
  /etc/bashrc
  用户设置:~/.bashrc
  ~/.bash_profile
  
  Bashrc
  定义别名


  其他设置文件
  ~/.bash_logout
  ~/.bash_history
  /etc/profile.d/*.sh
  .bash_logout离开系统时的操作
  一般会写history -c清除历史操作和clear操作
  
   Bash各设置文件的执行顺序
  Start /etc/profile
  Start /etc/profile.d/*.sh
  Stop /etc/profile.d/*.sh
  Stop /etc/profile
  Start ~/.bash_profile
  Start ~/.bashrc
  Start /etc/bashrc
  Stop /etc/bashrc
  Stop ~/.bashrc
  Stop ~/.bash_profile
  
  Env:用来列出环境变量
  Set:Bash还有与操作系统有关变量,以及用户自定义的变量。Set显示全部变量
  Stty:设置tty终端,控制backspace删除等功能
  
  
  Unset a删除SET中的项
  Stty intr ""取消Ctrl+C功能
  退出终端停止生效
  
  /etc/DIR_COLORS控制颜色
  
  
  Set选项
  -f 使路径名替换无效
  -n 读取命令,但不执行(用来对脚本进行语法检查)
  -o optionname 设置指定的选项:emacs,ignoreof,vi
  -v 在命令被读取时打印命令(调试脚本时有用)
  -x 在替换被应用之后打印命令(调试脚本和检查shell替换时有用)
  -C 不允许shell在重定向中损坏文件
  
  
  PS1命令提示符:
   \d 可显示出[星期 月 日]的日期格式,如:“Mon Feb 2”。
   \H 完整的主机名。
   \h 主机名在第一个小数点前的名字,如www后面省略。
   \t 显示时间,为 24 小时格式的。
   \T 显示时间,为 12 小时格式的。
   \A 显示时间,为 24 小时格式的。
   \@ 显示时间,为 12 小时格式的样式 。
   \u 目前使用者的账号名称,如root。
   \v BASH的版本信息。
   \w 完整的工作目录名称,由根目录写起的目录名称,家目录会以~ 替代。
   \W 调用basename函数的工作目录名称,所以仅会列出最后一个目录名。
   \# 下达第几个指令。
   \$ 提示字符。root时是#,否则就是$。
  PS1='[\h]\$'

  \w带路径,比较常用
  Bash的启动
   Shell的自动启动
  无论何时登录或者打开终端,shell都会自动启动
   Shell的多层关系
  有时用户想运行一个不同的shell或者同一个shell的另外一个实例。由于shell“另外一个程序”,所以新的shell可以从现有的shell上启动。新的shell被看作是原有shell的子shell。当子shell退出时,就由原来的shell继续控制。

  

  
  Bash-locale
  Locale显示影响显示结果的语系变量
  /etc/sysconfig/i18n配置文件
  图形界面也可以修改
  
  System-config-language
  LANG=C 设置成英文
  LANG=en_US.UTF-8
  
  Bash - declare
   declare或typeset就是宣告变量的类型,不加参数
  就是列出当前所有,和set命令输出一样。
   -a将后面的变量定义成数组(array)类型
   -i将后面的变量定义成整形(integer)类型
   -x将后面的变量定义成环境变量
   -r将后面的变量定义成readonly类型
  

  
  -x 使值成为环境变量
  或者
  
  Bash - export
   export 变量名自定义变量转换成环境变量
   export查看环境变量
  Bash - history
   在bash中输入history指令可以查询用户的过往操作
   history记录在内存中而定。
   history表在用户logout时会记录入用户主目录下的.bash_history文件中,在下次login时载入。
  

  写在/etc/profile中

  

  
  Bash – history如何使用history?
   使用 ! 来调用历史命令
   !!:重复执行上一条命令
   !ex:重复执行上一条以ex为开头的命令
   !N:重复执行上一条在history表中记录号码为N的命令
   !-N:重复执行前面第N条命令
   可以用快捷键来调用历史命令
   Ctrl + r:在history表中查询某条历史命令
   fc命令:把之前的命令在编辑器中编辑,退出编辑器的时候执行
   Esc + .和Alt + .:之前被键入的命令行的最后一个标记可以用上面提到的2个组合键中的任何一个来恢复
  
  Bash - alias
   在shell下键入alias可以查询当前alias列表。
   用户可以alias来为一条命令取一个简单的别名
   用户也可以用unalias来取消一条别名记录。
   alias记录在shell中总是先执行。

  Bash - ulimit
  ulimit与文件系统及程序的限制相关
   -H hard limit
   -S sort limit
   -a 列出所有的限制额
   -f 可以建立的做大文件大小
   -u 点用户可以使用的最大进程数量
   -n 打开文件的最大个数
  Unalias vi
  Ulimit -n是必改项

  Bash欢迎信息
   进入系统时的:/etc/motd
   登录系统是的:/etc/issue/etc/issue.net

  

页: [1]
查看完整版本: shell高级(一)