首页 > 代码库 > Linux上bash的部分基础特性:
Linux上bash的部分基础特性:
命令补全: tab
shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当做命令
命令查找机制:
查找内部命令:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名
给定的打头字符如果能唯一标识某命令文件程序,则直接补全
给定的打头字符如果不能唯一标识某命令文件程序,在一次tab,会给出列表
路径补全:tab
在给定的起始路径下,以对应路径下的打头字串来逐一匹配其实路径下的每个文件
如果能唯一标识,则直接补全
否则,再一次tab,给出列表
双击Tab:
/2Tab 显示所有根目录下一级目录,包括隐藏目录
./2Tab 当前目录下子目录,包括隐藏目录
*2Tab 当前目录下子目录,不包括隐藏目录
~2Tab 所有用户列表
$2Tab 所有变量
@2Tab /etc/hosts记录 (CentOS7不支持)
=2Tab 相当于ls –A (CentOS7 不支持)
mkdir:新建一个目录
mkdir -p:自动按需创建父目录
-v:显示详细过程
-m:直接给定权限
注意:路径基名方为命令的作用对象,基名之前的路径必须得存在
rmdir: 删除目录
rmdir -p:删除某目录后,如果其父目录为空,则一并删除
-v:显示过程
命令行展开:
~:自动展开为用户的家目录,或指定的用户的家目录
{}: 可承载一个以逗号分隔的路径列表,并能够将其展开多个路径
例如:/tmp/{a,b}相当于 /tmp/a /tmp/b
命令的执行状态结果:
bash通过状态返回值来输出次结果
成功:0
失败:1-255
命令执行完成后,其状态返回值保存于bash的特殊变量$?中
引用:
强引用:‘‘
弱引用:""
命令引用:``
bash快捷键:
Ctrl + l 清屏,相当于clear命令
Ctrl + c 终止命令
Ctrl + s 锁定屏幕
Ctrl + q 解锁
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
cp命令:copy
单源复制:cp [OPTION]... [-T] SOURCE DEST
如果DEST不存在:则事先创建次文件,并复制源文件的数据流至DEST中
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件
如果DEST目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
多源复制:cp [OPTION]... SOURCE... DIRECTORY
如果DEST不存在: 错误
如果DEST存在:
如果DEST是非目录文件:错误
如果DEST是目录文件:分别复制每个文件至目录中,并保持原名
cp [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i:交互式复制,即覆盖前提醒用户确认
-f:强制覆盖目标文件
-r:递归复制目录
history:命令行历史
命令历史一般记录在.bash_history文件中,默认记录1000条
当前shell中的历史记录会被记录在内存中,只有退出之后才会保存在.bash_history中
-c:清空命令历史
-d offset:删除历史中指定的第offset个命令
n:显示最近的第n条历史
-a:追加本次会话新执行的命令历史列表至历史文件
-n:读历史文件中未读过的行到历史列表
-r:读历史文件附加到历史列表
-w:保存历史列表到指定的历史文件
-p:展开历史参数成多行,但不存在历史列表中
-s:展开历史参数成一行,附加在历史列表后
HISTSIZE 修改history存储条数
HISTFILE 指定历史文件的存放位置,默认为~/.bash_history
HISTFILESIZE 指定历史文件的命令的存储条数
HISTTIMEFORMAT="%F %T" 显示每条命令的具体执行时间
HISTIGNORE="str1:str2" 把某些命令敏感的字符串给屏蔽掉不予显示
控制命令历史记录方式:
环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups, ignorespace的组合
erasedups 删除重复命令
!n:执行history命令历史输出对应序号n的命令
!n:执行history历史中倒数第n个命令
Linux上bash的部分基础特性: