Shell 基本知识
本机有多少我们可以使用的SHELL类型存在: /etc/shells 文件中
一般有如下几种:/bin/sh (已经被/bin/bash替换)
/bin/bash (就是Linux默认的shell)
/bin/tcsh (整合C shell,提供更多的功能)
/bin/csh (已经被上面的tcsh所替换)
1. type 【-tpa】 name :不加任何参数会显示name是外部命令还是bash内部的命令
-t 将那么以下面的字眼显示它的意义:
file:表示外部命令
alias:表示别名设置的命令
builtin:表示为bash内置的命令功能
-p 后面接外部命令是会显示完整的路径和文件名
-a 会由PATH变量定义的路径中,将命令列出来
2. \ (反斜杠) 如果一行的命令有些长,可以用[ \+Enter ]这个来转义到下一行继续数据
ctrl+u 从光标向前删除命令串 ctrl+k 是向后删除
ctrl+a 移动光标到行首 ctrl+e 移动光标到行尾
3. 变量
echo $HOME or echo ${HOME} 查看HOME的变量
设置变量规则:变量与变量内容以一个等号连接,等号两边不能直接接空格,变量名只能是英文字母与数字,开头字符不能是数字,变量内容有空格可以使用单引号或双引号。
需要借用其他命令的结果时,可以使用反单引号 或者$() 例如: cd /lib/modules/$(uname -r)/kernel
扩增变量内容时,"$变量名" or ${变量名} 例如:PATH=${PATH}:/home/bin
4. read 读取来自键盘输入的变量值
read -pt variable
-p 后面是提示字符 -t是等待的秒数 超时会自动略过
5.declare, typeset
都是声明变量的类型
declare -aixr variable -a 定义变量为数组类型 -i定义变量为整数类型 -x定义变量变为环境变量 -r定义变量为readonly 该变量不能改,也不能被unset
6.ulimit [-SHacdfltu] 配额
-H: hard limit ,严格的设置,必定不能超过这个设置的数值
-S: softlimit , 警告的设置,可以超过这个设置值,有警告信息,设置上,通常soft回避hard小,举例,soft可设置80,而hard设置为100
-a: 后面不解任何选项和参数,可列出所有的限制额度
-c: 当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除借用),这种文件就称为内核文件(core file)。此为限制每个内核文件的最大容量。
-f:此shell可以建立的最大文件容量(一般可能设置为2G)单位KBytes
-d: 程序可使用的最大段内存(segment)容量
-l: 可用于锁定(lock)的内存量
-t: 可使用的最大cpu时间(单位为秒)
-u: 单一使用者可以使用的最大进程数量
变量内容的修改:
${变量#关键词} 若变量内容从头开始的数据符合【关键词】,则将符合的最短数据删除
${变量##关键词} 若变量内容从头开始的数据符合【关键词】,则将符合的最长数据删除
${变量%关键词} 若变量内容从尾向前的数据符合【关键词】,则将符合的最短数据删除
${变量%%关键词} 若变量内容从尾向前的数据符合【关键词】,则将符合的最短数据删除
${变量/旧字符串/新字符串} 若变量内容符合旧字符串,则第一个旧字符串会被新字符串替换
${变量//旧字符串/新字符串} 若变量内容符合旧字符串,则全部的旧字符串会被新字符串替换
alias 设置别名
alias vi=‘vim’
取消别名 unalias vi
Bash的环境变量:
login shell: 取得bash时需要完整的登录流程,就是需要用户的账号和密码
non-login:取得bash的方法不需要重复登录的操作,例如你在原本的bash环境里再次执行bash命令,同样的也没有输入账号密码,那第二个bash(子进程)就是non-login shell。
login shell 读取两个配置文件: 1 /etc/profile 这是系统整体的设置,最好不要修改。 2. ~/.bash_profile 或~/.bash_login 或 ~./profile :属于用户个人设置,你要添加的数据可以写在这里
login shell流程图: 第一行是主流程,向下的是被调用的配置文件
/etc/profile ------------------> ~/.bash_profile------------------->开始操作bash
↓ ↓
/etc/profile.d/*.sh ~/.bashrc
↓ ↓
/etc/locale.conf /etc/bashrc
source :读入环境配置文件的命令 source ~./bashrc
bash默认的组合键
ctrl+c 终止目前命令
ctrl+d 输入结束(EOF),例如邮件结束的时候
ctrl+m 就是回车
ctrl+s 暂停屏幕的输出
ctrl+q 恢复屏幕的输出
ctrl+u 将提示符后边的内容删除
ctrl+z 暂停命名的命令
posted on 2019-07-12 17:35 discover_dev 阅读(135) 评论(0) 编辑 收藏 举报