Bash Shell的作用
使用Shell实现对Linux系统的大部分管理,例如:
1)文件管理
2)权限管理
3)用户管理
4)磁盘管理
5)网络管理
6)软件管理
7)应用管理
…等等管理
#获取当前时间
[root@tzc ~]# date
2019年 06月 23日 星期日 20:47:55 CST
#创建用户
[root@tzc ~]# useradd tls
#如果要创建100个用户,使用shell script
for n in seq 100
;do
useradd testKaTeX parse error: Expected 'EOF', got '&' at position 3: n &̲& \ ech…n 已创建成功"
done
[root@tzc ~]# bash user.sh
‘root’ = login user name
‘@’ = 分隔符
‘server’ = hostname
‘~’ = working directory,’~'通配家目录
‘$’ = 普通用户
‘#’ = root用户(超级管理员)
登录普通用户
[root@tzc ~]# su - tls
[tls@tzc ~]$
[tls@tzc ~]$ exit
登出
[root@tzc ~]#
主机名的命名规则:dl_wh_web_01.hs.com
#查看当前用户
[root@tzc ~]# whoami
root
#查看当前命令提示符
[root@tzc ~]# echo $PS1
[\u@\h \W]$
root:当前系统的用户
server:当前系统的主机名
~:当前所在的位置
#:超级管理员身份(root用户)
$:普通用户
PS1的常用参数以及含义
\d :代表日期,格式为weekday month date,例如:“Mon Aug 1”
\H :完整的主机名称
\h :仅取主机名中的第一个名字
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称
\W :利用basename取得工作目录名称,只显示最后一个目录名
# :下达的第几个命令
$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
#颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色
PS1=’[\e[32;40m] [[\u@\h \w \t]$ [\e[0m]’
PS1="[\e[37;40m][[\e[32;40m]\u[\e[37;40m]@\h [\e[36;40m]\w[\e[0m]]\$ "
PS1="[\e[37;40m][[\e[32;40m]\u[\e[37;40m]@[\e[35;40m]\h[\e[0m] [\e[36;40m]\w[\e[0m]]\$ "
shell基础语法
命令行bash shell,为用户提供输入,执行命令的界面
#命令 选项 参数
command [-options] [arguments]
[root@tzc ~]# ls //命令
[root@tzc ~]# ls -l //命令+选项
[root@tzc ~]# ls -l /home/ //命令+选项+参数
#命令:整条shell命令的主体
#选项:用于调节命令的具体功能
#以’-‘引导段个事选项(单个字符),例如”-a“
#以’–'引导长格式选项(多个字符),例如”–all“
#多个短格式选项可以卸载一起,只用一个”-“引导,例如”-la“
#参数:命令操作与偶的对象,如文件、目录名等
#命令必须开头,选项和参数位置可以发生变化
Bash的基本特性
命令补全
tab
命令补全
选项补全
参数补全
如果无法补全选项,那么需要安装一个扩展包
[root@server ~]# yum install -y bash-completion
http://vault.centos.org/
命令快捷键
命令的快捷键可以帮助我们大大提升工作效率
Ctrl + a(home) #光标跳转至正在输入的命令行的首部
Ctrl + e(end) #光标跳转至正在输入的命令行的尾部
Ctrl + w #按照空格来删除bash内容
Ctrl + c #终止前台运行的程序
Ctrl + d #在shell中,ctrl-d表示退出当前shell。(logout、exit)
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字
Ctrl + s #锁屏
Ctrl + q #解锁
Ctrl + 左右 #按照单词快速跳转光标(Xshell提供的)
ESC + . #获取最后的指令
#在命令行前加面加 “#” 则该命令不会被执行
历史命令
历史命令的作用:追溯之前的发生情况,在企业中,十分重要,涉及到运维的责任,记录历史命令对于运维人员来说,也有一个专业名词:审计
-w:保存命令历史到文件 write
-c:清空命令历史记录,不会清空文件 clear
-d:删除命令历史的第N行 delete
#查看历史记录
[root@tzc ~]# history
279 cd /etc/yum.repos.d/
280 ls
281 cat ./cdrom.repo
282 date
283 # ip address
284 ip address
285 route -n
286 cat /etc/resolv.conf
287 systemctl restart network
288 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
289 [root@tzc ~]# yum makecache
290 history
#清空历史记录
[root@tzc ~]# history -c
#指定一条历史记录删除
[root@tzc ~]# history -d 110
#保存历史命令
[root@tzc ~]# history -w
#执行上一条命令
[root@tzc ~]# !!
#执行上一条ls相关命令
[root@tzc ~]# !ls
ls /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth0
[root@tzc ~]# !ls
ls
1.txt 3.txt 6.txt a.aa c e passwd test.txt
2.txt 4.txt a anaconda-ks.cfg d nginx.log secure.log 丽丽安.lnk
#执行历史命令中的第74条命令
[root@tzc ~]# !74
命令的别名
命令别名讲用户经常使用的复杂命令简单化,创建出属于自己的命令别名。
创建语法:alias 别名="命令"
取消语法:unalias 别名
#定义临时别名,只对当前shell生效
4.Linux的基础命令
目录结构
/etc 系统重要配置文件, 以及常用服务配置文件
/var 存放系统引导启动时产生的可变文件,文件通常动态更改的,例如: 缓存目录,日志文件
/run 系统启动后, 运行的程序产生的运行时数据, 包括进程的pid文件,锁文件等
/home 普通用户的主目录, 普通用户的家目录默认为/HOME/USERNAME
/root 超级管理员的主目录, 普通用户无权操作
/tmp 存放临时文件, 一般存放超过10天以上都会自动删除,可以更改删除临时文件的期限
/boot 存放系统引导时候需要的文件
/dev 存放设备文件
/usr 安装的软件, 共享库, 重要的子目录有
/usr/bin 用户命令目录
/usr/sbin 管理员命令目录
/usr/local 本地自定义安装的软件
//注意:在Linux7系统中, /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下,例如:
/bin --> /usr/bin
/sbin --> /usr/sbin
lib -> usr/lib
lib64 -> usr/lib64
绝对路径 唯一定位
windwos C:\Users\Administrator\Desktop\架构实验.ppt
Linux /etc/sysconfig/network-scripts/ifcfg-ens33
相对路径 根据所在环境定义
目录管理命令
在CentOS7,用颜色区分不同类型的文件
普通文件是黑色
目录文件是蓝色
cd
change directory
pwd
print working directory
mkdir
make directory
创建空目录
常用选项
-p 创建递归目录结构
[root@tzc ~]# mkdir -p aa/bb/cc
需求1:公司需要创建三个站点www,bbs,blog,三个站点页面需要放在同一个主目录下的不同子目录里
[root@tzc ~]# mkdir -p /code/html/{www,bbs,blog}
需求2:公司需要创建两个站点,每个站点各有三个业务
jd.com
taobao.com
www,ms,yhj
[root@tzc ~]# mkdir -p /code/{jd,taobao}/{www,ms,yhj}
rmdir
remove directory
删除空目录
tree
列出目录树
[root@tzc ~]# tree
.
├── 1.txt
├── 2.txt
├── 3.txt
├── 4.txt
├── 6.txt
├── a
├── a.aa
│ └── passwd
├── anaconda-ks.cfg
├── c
├── d
├── e
├── nginx.log
├── passwd
├── secure.log
├── test.txt
└── \344\270\275\344\270\275\345\256\211.lnk
[root@tzc ~]# yum install -y tree
[root@tzc ~]# tree /code
/code/
├── html
│ ├── bbs
│ ├── blog
│ └── www
├── jd
│ ├── ms
│ ├── www
│ └── yhj
└── taobao
├── ms
├── www
└── yhj
# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── code
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
5.Linux Web架构