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 小时格式的[HH:MM:SS]。
\T 显示时间,为 12 小时格式的[HH:MM:SS]。
\A 显示时间,为 24 小时格式的[HH:MM]。
\@ 显示时间,为 12 小时格式的[am/pm]样式 。
\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
转载于:https://blog.51cto.com/yangtong/503266
shell高级(一)相关推荐
- linux+用户的shell,Linux用户管理(十)Linux Shell高级
Shell高级 一.shell置换和引用 1.什么是置换和引用 在shell中具有很多特殊意义的字符(*.?.\等),shell将包含元字符的字符串根据其意义转换成新字符串的过程称为置换:关闭shel ...
- linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战
课程文件目录: Linux自动化运维系列 Shell高级脚本自动化编程实战 [6.1G] ┣━━01.Shell基础概述 [315.1M] ┃ ┣━━1-1 Shell脚本体系概述.mp4 [154. ...
- linux运维脚本编写,最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本...
最强Linux自动化运维 Shell高级脚本编程实战 带习题+项目实战案例+全套配置脚本 大家可以通过参考下面的课程学习目录,就会发现单单只从目录上来分析就知道这是一部非常系统的Shell自动化脚本运 ...
- 井字游戏(shell高级版)
井字游戏(shell高级版) 大家小时候大概都玩过井字游戏,就是双方在九宫格里面轮流下棋 ,先构成三点一线(横线.竖线或者斜线)的一方取胜.有点经验的人都知道,这样简单的游戏根本是不分胜负的,除非就是 ...
- shell高级视频答学生while循环问题
视频讨论回复只能200字,因此这里回答这位学生了.首先很感谢你学习老男孩培训的高级实战shell视频!我们先要理解while循环的意义,使用while循环的目的就是多次循环! while循环是根据wh ...
- Shell高级练习脚本15个
目录 1.sed的基本使用 2.sed的高级使用 3.awk的基本使用 4.awk高级用法 其他 1.sed的基本使用 #!/bin/bash sed 'p' /etc/hosts # 使用sed所有 ...
- shell高级编程--引用
引用 在shell中,引用的意思就是时讲字符串使用双拥好括起来,他的作用就是保护字符串中的特殊字符.不被shell或者shell脚本重新解释,或者扩展. andrew@andrew:~$ ls -l ...
- linux shell 高级编程,shell高级编程
条件选择if语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else条件为假的分支代码 fi ...
- 第二部分 Linux Shell高级编程技巧——第三章 运行级别脚本介绍
笔记 #运行级别脚本介绍 #准备工作 #进入目录 cd /home/wgb/shell #建立文件夹 mkdir 0421 #进入目录 cd 0421#运行级别 #运行级别目录 #进入etc目录 [r ...
最新文章
- C语言网络编程:listen函数详解
- vs如何将工程配置,保存到属性表
- 《JAVA程序设计》_第四周学习总结
- bootstrap 右对齐样式_Bootstrap的文本处理
- java linkedlist源码_Java集合之LinkedList源码分析
- 2345电脑管家_如何彻底清除流氓的2345安全卫士及2345SafeCenterSvc服务?
- getopt长参数(长选项)获取不到参数BUG
- C++设计模式之工厂模式(1)
- jzoj5363-[NOIP2017提高A组模拟9.14]生命之树【启发式合并,Trie】
- c3p0 0.9.1.2 配套mysql_连接数据库,使用c3p0技术连接MySQL数据库
- python第六十天-----RabbitMQ
- LeetCode58. 最后一个单词的长度
- 吴恩达新书手稿完工,现在开放免费下载 | 资源
- 第九届蓝桥杯 明码2018
- 【深度学习】使用预训练模型
- 华为将发布定制款“鸿蒙字体”,可以免费商用
- MagicDraw-状态机图
- 蛋白质二级结构预测工具psipred安装使用
- 2021-11-03 - 英文/英语简写 - 收集
- 西安无房证明网上办理指南