BASH简介
1.shell相关
操作系统由内核Kernel以及外壳Shell组成;
用户通常无法直接和系统内核打交道;
Shell可以将用户的指令翻译成内核可以理解的信息;
Shell分为两类:
GUI ->也就是图形界面;Linux的GUI叫做GNOME;
CLI ->也就是控制台;一个用来输入命令的黑窗口;Linux的CLI叫BASH;
2.关于BASH
1)提示符
打开命令窗口可以扛到前面的是用户名;
后面跟的是提示符;
提示符分为两种:# 和 $;
#表示当前是root用户,root用户的权限太大,操作需要谨慎,会对系统产生影响较大;
$表示当前是普通用户;
2)命令的组成
命令一般由三部分组成:
命令
选项
参数
一些常用的命令:
clear 清屏
3)命令行的多进程
在命令窗口中输入命令后,如果没执行完会卡住;
比如打开Linux自带的火狐浏览器:
可以看出来;命令没执行完,无法输入下一条指令;
可以按Ctrl+c中止当前进程;火狐进程会被中止;然后就能继续输入命令了;
也可以用在命令后加上 & ,从而让命令直接在后台执行;
4)TAB键自动补全功能
Linux输入命令太麻烦,但是有个自动补全功能;
规则:
按一下TAB键可自动补全;
只能自动补全命令和选项,不能补全参数;
只有写到一半的命令有一种可能的情况下可自动补全;
例如:输入una,按TAB无法补全,因为有uname、unafs等多种可能;
而输入unam,只有一种可能;按TAB会被补全为uname;
在有多种可能的情况下,按两次TAB会列出所有可能的命令如图:
3.BASH历史记录
history 命令可以查看历史命令及其序号;
键盘上下键也可以切换历史命令;
1)通过历史命令简化操作;通常用在写脚本中
!! ->重复前一个命令(相当于方向键上);
!+字符 ->重复前一个以字符开头的命令;比如这里 !c 相当于 clear清屏;
!+num ->按历史记录序号执行命令;比如这里 !5 相当于 ls,也就是打开文件列表;
!?abc ->重复之前包含abc的命令;比如 !?ame 相当于 uname显示系统名;
!-n ->重复倒数第n个命令;
2)搜索历史记录
Ctrl+r 可用来搜索历史命令;
按ctrl+s后,命令行会变成(reverse-i-serach),这时输入命令会自动在历史命令中寻找匹配的来补全;
先按Esc再按点 "." 会调用前一个命令的参数;
比如这里前一个命令是 ls -a;输入命令uname ,然后先Esc,再 . 会重复参数 -a;
4.命令通配符
* 匹配零个或多个
? 匹配任意一个字符
[0-9] 匹配一个数字范围
[abc] 匹配列表里任何字符
[^abd] 匹配列表以外字符
例如:ls c* ,用来打开文件列表;可匹配到ls core;也就是展示文件夹core里的内容;
5.切换用户
su - 切换到root用户并使用一个新的运行环境
su -用户a 切换到用户a
sudo 使用管理员身份运行命令,加在命令前面
id 显示当前用户信息
passwd 修改密码
logout 退出当前shell
exit 退出当前用户身份
6.进程管理
命令后面加 & 可在后台运行命令;
ctrl+z 暂停某个命令;
jobs 可查看当前所有正在执行的命令,包括后台和前台的;
bg 1 继续执行后台任务1;
fg 1 将后台任务1调到前台执行;