bash shell
一.bash初识
1.什么是bash shell
是一个命令解释器,与内核进行交互,用户和操作系统的接口
2.bash shell的作用
文件管理
用户管理
权限管理
磁盘管理
网络管理
软件管理
应用管理
...
3.bash两种使用方式
1)命令
效率低,适合少量工作
2)脚本
效率高,适合大量工作
4.命令提示符
[root @ centos7 ~ ] # :超级管理员 [oldboy @ centos7 ~ ] $ :普通用户 当前登录的用户 主机名 当前目录的位置
/home/oldboy:普通用户家目录
/root: root用户的家目录
第一个命令:
echo:在bash shell中调用变量 $
例:
>age=18 >echo $age # 返回18
whoami:查看当前登录的用户
二.shell的基础语法
命令 选项 参数
command [-options] [arguments] 中括号 可有可无
echo: 所见即所得。输出你echo后面参数内容
-e:识别换行符等特殊符号
:转义符
换行符 空几格(一个tab)
$:调用变量
echo 'zls' echo -e 'zls 123' # 识别换行符输出
yum -y install net-tools 安装完可以使用ifconfig命令
三.shell的基本特性
1.命令补全(参数, 选项)
1)命令补全 Tab
2)参数补全:yum install -y bash-completion (最小安装默认不带命令补全,需要该命令自行安装,关闭重新登录即有效)
ls -- 然后按Tab键即可显示所有参数
3)选项补全:主要是补全 路径
C:UsersAdministratorDocumentsVirtual MachinesCentOS 64 位
2.快捷键
linux的快捷键: Ctrl + a:将光标跳转到行首 Ctrl + e:将光标跳转至行末 Ctrl + w:以空格为单位,将当前光标位置之前的内容删除 Ctrl + u:将当前光标位置之前的内容全部删除
Ctrl + k:清除光标之后的内容 Ctrl + l:清屏(相当于clear命令) Ctrl + c:终止当前命令 Ctrl + d:退出,断开当前连接(相当于exit/logout命令) Ctrl + z:挂起,放后台执行(比如安装过程中时间比较久,放到后台执行) 注:如果把xshell当前会话关闭,后台运行就会终止,要永久还需要敲个命令 Ctrl + r:搜索历史命令 Ctrl + s:锁屏(没什么意义,不如使用xshell软件的锁屏或者是windows锁屏) Ctrl + q:解锁(Ctrl + c也可以解锁) Ctrl + 左右:按照单词跳转光标(点,空格都有效) ESC + . :瞬间显示出上一条命令,最后的内容,以空格分隔 #:注释,不执行。(输入又想等下执行可以先注释,后面通过上下键返回上面的注释的命令)
3.历史命令
1)日志审计 history -w:保存历史命令到文件中write 例: [root@oldboyedu ~]# history -w #历史命令保存到文件,当前用户的家目录下有一个隐藏文件:.bash_history -d:删除历史命令中的某一条 -d 后面加数字 delete(删除) 例: [root@oldboyedu ~]# history -d 5 #删除第5条历史记录 -c:清空历史记录,clear(清除) 例: [root@oldboyedu ~]# history -c #清空所有历史记录 history -w # 再次执行机会重写保存的历史文件 ! + 命令中的前面字符:调用之前的历史命令,只能调最近执行的命令(ctrl+r可以搜包含字符的命令) # 例 !v 查询v开头的命令 !!:执行上一条执行过的命令 !+历史命令中的编号:调用历史命令 # 例 !13调用历史中13条命令 注:history记录命令中可通过设置命令前带空格不会记录进history中
4.命令的别名 alias
#设置别名
[root@oldboyedu ~]# alias ls='ls --color=auto' //临时生效 [root@localhost ~]# alias tong='ping baidu.com'
#取消别名
[root@oldboyedu ~]# unalias tong
#查看别名
[root@oldboyedu ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias tong='ping baidu.com' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
注: 使用前看下alias有没有被替换
5.查看目录下的文件
[root@oldboyedu ~]# ls --help 获取命令的帮助 Usage: ls [选项] [文件] -1: 数字1, 以列表的形式展示某个目录下的文件 -l: 显示出某个目录下的详细信息 -a: 显示所有文件包括隐藏文件 --all 例:查看当前目录所有内容详细信息 ls -a -l 或 ls -al 或 ls -la 或 ll -a(ll是系统预先设好的别名,脚本中无法使用) -h: 以人类可读的方式,显示文件信息(文件大小加上了单位,要和-l 一起使用) -d: 只显示目录本身 -t: 按照修改时间排序,最新的在最上面 例: 按时间顺序排序 ls -tl 倒叙排序 ls -tlr(参数r为倒序)
-r: 倒叙排列
-i: 显示文件的inode号
6.查看命令说明获取帮助
man 例: man ls查看ls的具体说明 (ls --help是查看简单说明) 注: 可以网上查看linux中文手册 http://linux.51yip.com/ https://man.linuxde.net/
目录管理
[root@oldboyedu ~]# ls -1 / #普通用户可执行的命令存放目录 # 以下三个软链接都是centos7开始有的,之前的版本没有 软链接 /bin为链接文件 bin -> usr/bin # centos7下有bin目录, 之前centos6,5是没有bin目录的, 只有usr/bin 例:[root@oldboyedu ~]# ls /bin/useradd ls: cannot access /bin/useradd: 没有这个文件或者目录,。说明添加用户这个命令不在普通用户命令下,不能被随意执行 #超级用户可执行的命令存放目录 sbin -> usr/sbin #系统命令,依赖的库文件存放的目录 lib -> usr/lib (相当于windows下的Program Files) lib64 -> usr/lib64 (相当于windows下的Program Files(x86)) #系统的启动项和引导菜单 boot #系统设备目录 dev (linux里插上u盘,设备会放在dev下面) sda :系统中的第一块磁盘 sda1 :系统中第一块磁盘的第一个分区 sda2 :系统中第一块磁盘的第二个分区 sda3 :系统中第一块磁盘的第三个分区 sdb :系统中的第二块磁盘 sdc sdc4 :系统中第三块磁盘的第四个分区 /dev/null :类似于黑洞,垃圾回收站。 使用: ls -l /etc/ > /dev/null 不输出,一般用于脚本 /dev/zero :源源不断的产生数据 /dev/pts/ :查看用户连接的终端数 使用: ll /dev/pts/
/dev/random : 生成随机数 /usr /usr 目录 相当于windows下的 C:Windows目录 /usr/local 软件安装目录 相当于C:Program /usr/bin 普通用户使用的应用程序(重要) /usr/sbin 管理员用户使用的应用程序(重要) /usr/lib 库文件Glibc 32bit (相当于windows下的Program Files) /usr/lib64 库文件Glibc 64bit (相当于windows下的Program Files(x86)) #系统配置文件目录 etc /etc/hostname : 记录主机名的配置文件 /etc/hosts : 本地域名解析配置文件 /etc/resolv.conf : DNS配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 : 网卡配置文件 (ip a查ip地址信息能看到) #普通用户的家目录(useradd创建一个用户,home下面就会多一个该用户的文件夹) home #光驱,挂载目录 media mnt #第三方厂商安装软件目录 opt #反应系统当前进程的实时状态 proc 使用: ls /proc/ 查看当前所有进程pid目录 /proc/meminfo : 内存信息 使用: cat /proc/meminfo查看内存信息的文件 /proc/cpuinfo : CPU信息 使用: cat /proc/cpuinfo查看cpu信息的文件 #超级管理员用户的家目录 root #临时目录,类似于回收站 tmp (10天后自动会删除,最好删除用这个,防止误删除) #可变化系统文件目录 var /var/log/messages:系统日志 /var/log/secure:系统登录日志 # 系统正在跑的目录,记录跑的服务的进程号 run 目录前面的信息 如: drwxr-xr-x. 2 root root 60 Sep 17 00:55 vfio l:软链接文件 d:目录 -:普通文件 c:块设备文件