一、什么是Bash Shell
二、Bash Shell 能做什么?
1 2 3 4 5 6
| 文件管理 软件管理 用户管理 权限管理 网络管理 ........
|
三、平时怎么使用Bash Shell?
1 2 3 4 5 6 7 8 9 10 11 12
| 单条命令: useradd gdx 脚本: [root@oldboy-pythonedu ~]# cat useradd.sh #!/usr/bin/bash
for i in {1..100} do useradd gdx_$i echo "gdx_$i is ok!!" done
|
四、登录Linux Bash提示符
1 2 3 4 5 6 7
| [root@oldboy-pythonedu ~]# root: 表示当前登录Bash Shell窗口的用户是.. oldboy-python: 当前系统的主机名称 ~: 当前用户所处的路径 ~ 表示的是当前用户的家目录 #: 提示符 # 表示超级管理员 $ 表示普通用户
|
五、Bash Shell 基础语法?
1 2 3 4 5 6 7 8
| 命令 选项 参数
ls # 命令 查看当前目录下的所有文件 ls -l # 命令 + 选项 选项 可以改变命令输出结尾呈现的方式 ls -l /tmp # 命令 + 选项 + 参数 具体看哪个路径下的所有文件,默认看当前目录.
ls 打针 -l 轻 | 重 /tmp 往哪打
|
六、Bash Shell 特性
1.tab补全:
2.history: 执行的命令历史
1 2 3
| -c: 清空 -d: 删除指定的一条记录 -w: 将历史记录落到指定的文件中
|
3.alias: 别名
1 2 3 4 5
| # 临时操作 alias cat_network='cat /etc/sysconfig/network-scripts/ifcfg-ens32'
# 永久生效 ( 落到某个文件中 ) [root@oldboy-pythonedu ~]# echo "alias cat_network='cat /etc/sysconfig/network-scripts/ifcfg-ens32'" >> /etc/bashrc
|
4.unalias: 临时取消别名
1
| [root@oldboy-pythonedu ~]# unalias cat_network
|
5.快捷键:
1 2 3 4 5 6 7 8 9 10
| ctrl+ a,e,c,l,d,w,k,u,r
ctrl+a: 命令行光标跳转到行首 ctrl+e: 命令行光标跳转到行尾 ctrl+l: 清屏, clear ctrl+c: 中断bash窗口 前台正在运行的程序 ctrl+u: 删除光标之前的 ctrl+k: 删除光标之后的 ctrl+w: 按照单词删除 ctrl+ <--> 按照单词跳转光标
|
七、文件管理
1 2
| 对文件做什么事情? 创建 删除 压缩 移动 复制 编辑 查看 查找 修改一个主机名称的文件: 在哪?
|
1.目录结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Windows: 多根 c:\ d:\ e:\ Linux: 单根 /
bin: 普通用户可以执行的命令 sbin: 管理用户可以执行的命令 home: 普通用户的家目录: /home/USERNAME root: 管理员用户的家目录 boot: 存放的启动系统时要加载的文件 grub引导菜单,内核文件 dev: 设备 ( 硬盘 光盘 终端 ) /dev/random: 产生随机数 ( 摇钱树) /dev/null: 黑洞 etc: 配置 网卡配置,系统配置,服务配置 /etc/hostname 主机名称 /etc/sysconfig/network-scripts/ #网卡的配置信息 lib lib64 proc 实时反馈当前系统的状态. [ 汽车的仪表盘 ] tmp 临时目录,谁上传只能谁删除 [ ] usr bin sbin local --> C:\Program Files tmp ---> /var/tmp var 可变的目录 log pid: 存放服务进程的ID ---> python ---> 30119 --> /var/pid/python.pid ( 30119 )
|
2.路径定位:
1
| 通过路径对文件进行定位. 一个完整的路径,就包含了文件的路径.
|
八、基础命令
1.在/home下创建一个hello.py文件.
touch:
1 2 3
| [root@oldboy-pythonedu ~]# touch /home/hello.py [root@oldboy-pythonedu ~]# ls -l /home/hello.py -rw-r--r--. 1 root root 0 9月 25 11:48 /home/hello.py
|
2.将/home/hello.py 复制到 /tmp [ 最好能修改一下名称为 /tmp/test.py ]
cp: 复制文件或者目录
1 2 3 4 5
| -v: 显示拷贝的结果. -r: 递归拷贝 -i: 会在复制文件的时候给提示 如果复制的目标文件存在 会给你提示是否要覆盖 [root@oldboy-pythonedu ~]# cp /home/hello.py /tmp/ #直接拷贝 [root@oldboy-pythonedu ~]# cp /home/hello.py /tmp/test.py #拷贝后修改名称
|
3.将/home/hello.py 文件删除
rm: 删除文件或者目录
1 2 3 4
| -f: 强制删除,不提示 -r: 递归删除 [ 删除目录 ] [root@oldboy-pythonedu ~]# rm -f /home/hello.py [root@oldboy-pythonedu ~]# rm -fr /tmp/etc
|
4.查看 /tmp/test.py 中的内容
cat head tail more less
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| cat: 查看文件内容: -A: 查看是否有特殊字符 -n: 查看文件的行号 [root@oldboy-pythonedu ~]# cat /tmp/hello.py
head: 查看文件内容: 仅查看头部10行. [root@oldboy-pythonedu ~]# head /etc/passwd [root@oldboy-pythonedu ~]# head -1 /etc/passwd
tail: 查看文件内容: 仅查看尾部10行. -f: 实时追踪文件尾部的变化 [root@oldboy-pythonedu ~]# tail -f /var/log/messages
less\more 分页查看 [root@oldboy-pythonedu ~]# less /etc/services [root@oldboy-pythonedu ~]# more /etc/services
|
5.将/tmp/hello.py 拷贝到 /opt/python_dir/hello.py
mkdir #创建目录
1 2 3 4
| -p: 递归创建 -v: 显示创建的过程 [root@oldboy-pythonedu ~]# mkdir /opt/python_dir [root@oldboy-pythonedu ~]# mkdir -pv /opt/dir1/dir2/dir3/dir4
|
6.将/tmp/hello.py 移动到/opt目录下
[root@oldboy-pythonedu ~]# mv /tmp/hello.py /opt/
7.命令的全路径???怎么查找
which #查找一个命令的绝对路径
1 2 3 4 5 6 7 8
| [root@oldboy-pythonedu ~]# which cat /usr/bin/cat [root@oldboy-pythonedu ~]# which head /usr/bin/head
whereis [root@oldboy-pythonedu ~]# whereis -b head head: /usr/bin/head
|
8.下载和上传
1 2 3 4 5 6 7 8 9 10 11
| rz 从本地电脑上传文件到server ( 只能上传文件,不能上传目录或文件夹, 最大限制4G ) sz 从server下载文件到本地电脑
[root@oldboy-pythonedu ~]# yum install lrzsz -y 1 wget 获取互联网上的资源至本地
yum install wget -y yum -y install wegt wget http://nginx.org/download/nginx-1.16.1.tar.gz wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
|