GNU、Bash shell的特性、提示符介绍
什么是GNU?
GNU: 不是Unix
gpl 通用许可协议,只要软件被打上这个协议,修改后必须再次公开源代码.
GUN和Linux的关系?
GNU提供是程序 依赖库文件 Linux 内核 ==GNU/LINUX
什么是Bash Shell?
是一个命令解释器, 将用户输入的命令,翻译给内核程序.
将用户输入的指令翻译给内核程序,内核处理完成之后将结果返回给bash
如何打开一个bash窗口:
通过Xshell连接,就算打开一个Bash程序的窗口.
Bash Shell登陆后的提示符是什么意思?
[root@oldboy ~]#
root: 当前登录系统的用户
oldboy: 主机名称
~: 当前所在的位置 ~表示当前用户所在的家目录
#: 通常情况下表示的是超级管理员
[jack@oldboy ~]$
jack 当前登录系统的用户
$: 当前是一个普通用户
Bash Shell的常用特性?
1.补全tab
命令补全 路径补全 选项补全
输入命令: 按下tab键 会自动补全,但是如果无法补全
路径补全: 保证唯一就能实现补全功能,但如果输入错误则不会补全成功.
选项补全: yum install bash-completion
PS:输入错误,tab键不好使/
2.命令快捷键
ctrl+c 终止当前正在运行的程序
ctrl+l 清屏 === clear命令
ctrl+w 按单词或者空格进行向前删除
ctrl+a 光标跳转至行首
ctrl+e 光标跳转至行尾
ctrl+z 暂时放入后台 几乎不用
ctrl+u 删除光标以前的所有内容
ctrl+k 删除光标以后的所有内容
ctrl+r 搜索的此前执行过的命令
3.历史命令History, 追溯之前发生情况 (查找执行的命令历史记录)
-w 保存命令历史到历史文件
-c 清空命令历史记录, 不会清空已保存的文件
-d 删除命令历史的第 N 条行
4.命令别名 alias unalias
目录介绍
image.png
image.png
1.存放命令相关的目录
/bin, 普通用户使用的命令 /bin/ls, /bin/date
/sbin,管理员使用的命令 /sbin/service
2.存放用户相关数据的家目录,比如:windows不同的用户登陆系统显示的桌面背景不一样
/home,普通用户的家目录, 默认为/home/username /home/test 环境变量的设定
/root,超级管理员root的家目录, 普通用户无权操作
3.系统文件目录
/usr,相当于C:\Windows
/usr/local,软件安装的目录,相当于C:\Program File
/usr/bin/,普通用户使用的应用程序(重要)
/usr/sbin,管理员使用的应用程序(重要)
/usr/lib, 库文件Glibc 32bit
/usr/lib64,库文件Glibc 64bit
4.启动目录
/boot 存放的系统启动相关的文件,例如:kernel,grub(引导装载程序)
5.配置文件目录
/etc,——极其重要,后续所有服务的配置都在这个目录中
/etc/sysconfig/network-script/ifcfg- ——网络配置文件
/etc/hostname ——系统主机名配置文件
/etc/resolv.conf ——dns客户端配置文件
/etc/hosts ——本地域名解析配置文件 C:\Windows\System32\drivers\etc
6.可变的目录与临时目录
/var—存放一些变化文件,比如/var/log/下的日志文件
/var/tmp —进程产生的临时文件
/Tmp —系统临时目录(类似于公共厕所)
7.设备目录文件
/dev —存放设备文件,比如硬盘,硬盘分区,光驱,等等
/dev/sd —sda sdb sdc4
/dev/null, —黑洞设备,只进不出。类似于垃圾回收站
/dev/random —生成随机数的设备.
/dev/zero —能源源不断的产生数据,类似于取款机,随时随地取钱
/proc—反映当前系统正在运行进程的实时状态
/run—存放程序运行后所产生的pid文件
/mnt 提供挂载的一个目录
/opt 早期第三方厂商的软件存放目录
/srv物理设备产生的一些文件
文件路径定位
/etc/hostname 文件位置+文件名称=路径 换句话说: 路径则是对文件定 义的一种方式.
绝对路径: 只要以/ 开始的路径,.都算绝对路径
相对路径: 相对于当前目录来说的路径 . 当前目录 .. 当前目录的上 一级目录
常用命令 cp、grep、cat 、less、more、head、tail
1.cp 文件拷贝
-p 保持源文件属性 -v 显示cp执行过程 -r 递归复制,通常用来复制目录
2.grep 文件过滤
-n 显示行号
-E 同时筛选多个目标
-A
-B
-C 显示上下行 [root@ZhaoJianHao-1 ~]# grep -C5 "hh" aa.txt 查找上下五行
-i 忽略大小写 例如 grep -E "w|l" text 在text文件中查找带有w或带有l的行
-v 取反
^ 匹配关键字,以什么开头
$ 匹配关键字,以什么结尾
. 任意单个字符 [a-z] [A-Z] [0-9] dsa
- 表示所有
. * 表示任意字符(所有的任意字符)
^$ 表示过滤空格
3.cat 查看文件内容
-n 显示行号
-A 查看文件特殊符号
向文件追加内容
cat >> test.txt <<EOF
test
EOF ## 格式为以EOF开头、结尾
4.less more 都是查看大文件使用
less 查看时使用方向键和回车键滚动查看,回车键向下逐行查看,空格键翻页
more 可以显示查看文章的进度, ctrl+f 下翻 ctrl+b 上翻
按回车可以向下逐行显示, 按空格可以翻页显示 按q退出
5.head 查看文件头部内容,默认前10行
-n 指定查看前几行
6.tail 查看文件尾部,默认显示后十行
-n tail 加选项n可以调节显示文件多少行
tailf 可以动态查看文件的内容,例如可以查看动态日志文件的变化
tail -f作用相同 可以动态查看尾部内容
awk、sed 、wc
awk 用于文件内容的截取
格式: awk ‘/+内容/’+文件目录
-F 指定输入分隔符
查看行
awk 'NR == 2' /etc/passwd NR 表示行
sed 用于文件内容的替换
sed 's#12#23#g' 将文件中的12替换为23
sed '1p' 文件名 可以截取文件的第几行
| 管道符 上一个命令的输出作为下一个命令的输入
文件内容排序,去重,统计,截取
sort 命令用于文章内容的排序
选项
-n 以数字格式排序
-t 指定以什么为间隔
sort -t "." -k3.1,3.1n -k4.1,4.3n 后面加文件路径,表示以.为间隔符,将第三列的第一个字符,第四列的第一个字符至第三个字符按照数字排序
-k 指定排序第几行 k1.2,1.3 意思是排序第一列的第二个字符和第三个字符
-r 将文件内容倒序排序
uniq 用于文件内容的去重统计命令 必须先排序在去重
-c 用于统计重复的内容有多少
sort -t "." -k3.1,3.1n -k4.1,4.3n 1.txt|uniq -c #将改采排序的列进行去重并统计内容个数。
cut 用于文件内容的截取
cut 用于截取文件的某一行的第几列内容(不推荐使用)
-d 设定间隔
-f 提取第几列
wc 用于统计文章的多少
-l 用于统计文件有多少行
wc -l /etc/passwd 统计etc下passwd文件有多少行
文件下载 | wget、curl、 文件上传 | rz、sz
wget
这个命令不是下载下来自带的,是后期安装。 yum -y install wget
wget 不加参数,后面直接跟下载地址,默认下载到当前目录
选项 -O 后面指定下载路径
格式是 wget -O /etc/21 后面加网址 是指定下载到/etc目录下,并且命名为21
PS:如果不需要改名字,则需要在网址后面加上文件的原名
curl
是虚拟机最小化安装就带的命令
不加任何参数,curl 后面跟上网址,意思是访问该网址,在终端上会显示该网页的源代码
curl -o 后面加指定下载路径,指定下载到哪个目录
格式为: curl -o /etc/32 + 网址。#意思是将该网址的文件下载下来,保存到/etc下,并且命名为32,如果没有,则会保存到当前目录
文件上传 rz、下载 sz
这里的文件上传指的是linux 和本地的上传和下载
这个命令的安装包为lrzsz yum install lrzsz
1)上传命令是 rz
2)从linux下载到本地命令是sz
命令查找
命令查找指的是查找命令的绝对路径
1)which 这个命令用于查找命令的绝对路径 不仅会显示命令的绝对路径,还会显示命令的别名
which ls 可以查看出ls的绝对路径和别名
2)whereis 这个命令也会查找命令的绝对路径
whereis ls 不仅会显示命令的绝对路径,还会显示文件的帮助手册的绝对路径
选项 -b
whereis -b 只会显示该命令的绝对路径
3)type 命令不仅多了一个功能是可以检查shell内核自带的关键字
例如for,while 循环等
选项 -a
type -a 在查找普通命令时候会只显示命令的别名,-a选项也可以显示命令的绝对路径
文件内容排序(sort)、去重(uniq)、统计(wc -l)、截取(cut)
1)sort (命令用于文章内容的排序)
选项
-n 以数字格式排序
-t 指定以什么为间隔
-k 指定排序第几行 k1.2,1.3 意思是排序第一列的第二个字符和第三个字符
-r 将文件内容倒序排序
例: sort -t "." -k3.1,3.1n -k4.1,4.3n + 文件路径
表示以.为间隔符,将第三列的第一个字符,第四列的第一个字符至第三个字符按照数字排序
2)uniq 用于文件内容的去重统计命令 必须先排序在去重
-c 用于统计重复的内容有多少
例: sort -t "." -k3.1,3.1n -k4.1,4.3n 1.txt|uniq -c
意思是将改采排序的列进行去重并统计有多少
3)cut 文件内容的截取
cut 用于截取文件的某一行的第几列内容(不推荐使用)
-d 设定间隔
-f 提取第几列
cut -d "." -f3,5 + 文件路径 #表示以 . 为分隔符,截取第三列和第五列
4)wc 用于统计文章的多少
-l 用于统计文件有多少行
wc -l /etc/passwd 会统计etc下passwd文件有多少行
软链接与硬链接的区别?
1.软连接就是一个快捷方式,删除软连接不会影响源文件.
2.硬链接,类似于一个文件副本,删除硬链接不影响原文件,只有删 除所有的硬链接及其源文件,这个文件才算彻底被删除.
命令执行流程
1.当我们执行一个命令, 整个命令执行流程如下:
- 判断命令是否通过绝对路径执行
- 判断命令是否存在alias别名
- 判断用户输入的是内置命令还是外置命令
- Bash内部命令直接执行,外部命令检测是否存在缓存
- 通过$PATH变量查找命令,有执行,无报错 command not found
绝对路径-->alias--->hash缓存-->$PATH变量路径--->有执行--->没有 command not found
网友评论