01-关于Bash Shell和基本命令
一、Bash Shell
1、什么是Bash Shell
# 命令的解释,用来翻译用户输入的命令
2、使用Bash Shell
单条命令添加一个用户
# 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
3、登录Linux Bash提示符
[root@pythonedu ~]# root: 表示当前登录Bash Shell窗口的用户是.. python: 当前系统的主机名称 ~: 当前用户所处的路径 ~ 表示的是当前用户的家目录 #: 提示符 # 表示超级管理员 $ 表示普通用户
4、Bash Shell基础语法
命令 选项 参数 ls # 命令 查看当前目录下的所有文件 ls -l # 命令 + 选项 选项 可以改变命令输出结尾呈现的方式 ls -l /tmp # 命令 + 选项 + 参数 具体看哪个路径下的所有文件,默认看当前目录.
5、Bash Shell特性
5.1、tab不全
tab补全:
命令补全
路径补全
5.2、history
history: 执行的命令历史 -c: 清空 -d: 删除指定的一条记录 -w: 将历史记录落到指定的文件中
5.3、alias别名
# 临时操作 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 unalias: 临时取消别名 [root@oldboy-pythonedu ~]# unalias cat_network
5.4、unalias临时取消别名
[root@oldboy-pythonedu ~]# unalias cat_network
5.5、快捷键
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+ <--> 按照单词跳转光标
6、文件管理
目录结构:
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 ) """
二、基本命令
1、touch创建文件
# 在/home下创建一个hello.py文件. [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、cp复制
# 将/home/hello.py 复制到 /tmp [ 最好能修改一下名称为 /tmp/test.py ] cp: 复制文件或者目录 -v: 显示拷贝的结果. -r: 递归拷贝 -i: [root@oldboy-pythonedu ~]# cp /home/hello.py /tmp/ #直接拷贝 [root@oldboy-pythonedu ~]# cp /home/hello.py /tmp/test.py #拷贝后修改名称
3、rm删除
# 将/home/hello.py 文件删除 rm: 删除文件或者目录 -f: 强制删除,不提示 -r: 递归删除 [ 删除目录 ] [root@oldboy-pythonedu ~]# rm -f /home/hello.py [root@oldboy-pythonedu ~]# rm -fr /tmp/etc
4、cat、head、tail、lessmore查看 /tmp/test.py 中的内容
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
lessmore 分页查看 [root@oldboy-pythonedu ~]# less /etc/services [root@oldboy-pythonedu ~]# more /etc/services
5、mkdir创建目录
mkdir #创建目录 -p: 递归创建 -v: 显示创建的过程 [root@oldboy-pythonedu ~]# mkdir /opt/python_dir [root@oldboy-pythonedu ~]# mkdir -pv /opt/dir1/dir2/dir3/dir4
6、mv 移动文件或目录重命名
mv: 移动文件或目录 [root@oldboy-pythonedu ~]# mv /tmp/hello.py /opt/ [root@oldboy-pythonedu ~]# mv /tmp/hello.py /tmp/first.py
7、which查找一个命令的全路径
which #查找一个命令的绝对路径 [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.从服务器下载资源到本地 上传: 从本地上传内容到服务器 rz 从本地电脑上传文件到server ( 只能上传文件,不能上传目录或文件夹, 最大限制4G ) sz 从server下载文件到本地电脑 [root@oldboy-pythonedu ~]# yum install lrzsz -y wget 获取互联网上的资源至本地 yum install wget -y 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
9、压缩与打包
1.什么是压缩包? 压缩包是一个特殊的文件,将多个文件或目录整合在一个文件中. 2.为什么要使用压缩包? 1.便于传输 2.压缩后的体积会变小. 28GB文件 ---> 6GB 3.实现打包与压缩有哪些工具: Windows: zip tar Linux: zip tar.gz 4.压缩包如何实现: gzip: ( 仅针对文件 ) [root@oldboy-pythonedu ~]# gzip /etc/yum.repos.d/CentOS-Base.repo #压缩 ( 源文件不见了 ) [root@oldboy-pythonedu ~]# zcat /etc/yum.repos.d/CentOS-Base.repo.gz #查看 [root@oldboy-pythonedu ~]# gzip -d /etc/yum.repos.d/CentOS-Base.repo.gz #解压 zip: ( 针对文件或目录 ) [root@oldboy-pythonedu ~]# yum install zip unzip -y [root@oldboy-pythonedu ~]# zip -r yum_local.zip /etc/yum.repos.d/ /tmp/ [root@oldboy-pythonedu ~]# unzip yum_local.zip -d /opt/ tar.gz: c: 创建 z: 压缩类型 f: 指定文件名称 x: 自动识别文件类型 创建: [root@oldboy-pythonedu ~]# tar czf etc.tar.gz /etc/ /home/ 解压: [root@oldboy-pythonedu ~]# tar xf etc.tar.gz 指定解压路径: [root@oldboy-pythonedu ~]# tar xf etc.tar.gz -C /mnt/
10、vim Linux编辑工具
2.1) 什么是vim 文本文件的编辑工具, 和windows的notead++一样. 2.2) 为什么要使用vim Linux一切皆为文件,需要修改配置文件,让软件按照我们的期望值运行,所以需要使用编辑工具. !!!! 2.3) VI和VIM的区别 没有什么区别, vim有高亮显示, 其他无区别.. 和 windows 记事本与notepad++区别. vim需要安装 yum install vim -y
2.3) VI/VIM模式 1.命令模式 复制: yy 粘贴: p 撤销: u 删除: dd | D 删除本行光标后的所有内容 剪贴: ( 删除+粘贴 ) 光标: 文件首行: gg | 文件尾部: G = shift+g 翻页: ctrl+f 向下翻页 ctrl+b 向上翻页 行首: ^ | 0 收尾: $ 进入编辑模式: i: 直接进入编辑模式 o: 插入新的行,并且进入编辑模式 A: 光标移动到行尾,并进入编辑模式 a: 光标向后移动一位,并进入编辑模式 快速切换到你想要的行: vim file.py +Number 200gg 快速跳转到200行 :200 快速跳转到200行 2.编辑模式 ( 编写代码 ) 3.末行模式 保存: :w 退出: :q 保存&退出: :wq 搜索: /search n 向下查找 N 向上查找 替换: :%s#over#OOVER#g 替换整个文件中over为 OOVER :1,5s#over##OOVER#g # 号 可以是其他的特殊符号 s@@@g
shift+v: 行模式 复制y 删除 d ctrl+v: 块模式 加注释: shift+i --> 输入#号注释符 ---> 按 ESC 删注释: 选中后, 按下 x 删除一个字符