shell高级(一)

 

Shell/etc/shells

 

BashBourne-again Shell的缩写

GNU计划的一个组件

UnixBourne Shell完全兼容

 

Bash优点

Bash支持命令行输入、操作历史查询、快捷键、使用变量等功能。

支持通配符、别名、串操作、文件测试、整形算术运算

可以交互使用,或者作为脚本语言

超过60shell变量

 

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

builtinBASH内置命令

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

 declaretypeset  就是宣告变量的类型,不加参数

就是列出当前所有,和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

 

 

你可能感兴趣的:(shell,职场,休闲)