关键词:
Bash
Linux系统终端概述
图形化
服务器终端切换:Ctrl + Alt + F1 _ F6
虚拟机终端切换:Ctrl + Shift +Alt + F1 _ F6
字符终端
服务器终端切换:Alt + F1 _ F6
pkill -9 -t tty2
-t:终端名称
-9:强制
2.Linux系统和Bash管理
Linux提供的用户界面
字符界面
shell
bash(默认)
[root@oldboy ~]# echo $SHELL #查看当前系统使用的shell版本(默认是bash)
/bin/bash
[root@oldboy ~]# cat /etc/shells #查看Linux当前系统支持的shell版本有哪些
sh -->bash的软(符号)链接
bash
nologin
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
图形化界面
gnome
kde
date
查看时间
一般使用+格式的方式来显示我们所需要的时间格式
[root@oldboy ~]# date +%F_%R
2019-10-15_14:37
[root@oldboy ~]# date +%F-%R
2019-10-15-14:38
[root@oldboy ~]# date +"%F %R"
2019-10-15 14:39
touch log_`date +%F_%R`.bak
touch log_$(date +%F_%R).bak
whoami 查看当前位置
Bash特性:命令补全
通过上下方向键来调取过往执行过的Linux命令;
命令或参数仅需输入前几位的可以用Tab键补全
Bash特性:命令快捷键
终端快捷键的使用可以帮助我们大大提升效率
Ctrl + a #光标跳转至正在输入的命令行的首部 home
Ctrl + e #光标跳转至正在输入的命令行的尾部 end
Ctrl + c #终止前台运行的程序
Ctrl + d #在shell中,ctrl-d表示推出当前shell。
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字
//在命令行前加“#”,则该命令不会被执行
History查看系统命令历史,追溯之前发生情况
[root@oldboy ~]# echo $HISTSIZE
1000
[root@oldboy ~]# HISTSIZE=200
[root@oldboy ~]# echo $HISTSIZE
200
命令选项:
-w 保存命令历史到历史文件
-c 清空命令历史记录,不会情况文件
-d 删除命令历史的第N条行
!可以调用之前的命令
!num
调用第num行的命令历史
!!
执行上一条命令
!cmd
调用离当前最近以该cmd开头的命令
!$/按住ESC,松开按.
执行上条命令的参数
命令别名
alias
alias cmd=‘cmd ‘
unalias cmd
注意:
1.使用alias命令就可以查看当前生效的别名有哪些
2.使用unalias 接别名名称 取消
3.alias只对当前环境临时生效
4.如需永久生效,需将定义别名的命令写入登录配置问价
~/.bash_profile 只对当前用户生效,局部配置文件
~/.bashrc 只对当前用户生效,局部配置文件
/etc/profile 对所有用户生效,全局配置文件
/etc/bashrc 对所有用户生效,全局配置文件
[root@oldboy ~]# alias ifconfig=‘ifconfig ens33‘
命令流程
当我们执行一个命令,整个命令执行流程如下 :
1.判断命令是否通过绝对路径执行
2.判断命令是否存在别名
3.判断用户输入的是内部命令还是外部命令
内部命令:shell程序自带的命令
外部命令:在系统PATH变量的某个路径下的可执行程序
使用type命令检测用户输入的命令属于内部命令还是外部命令
4.内部命令直接执行,外部命令检测是否存在缓存
5.检测PATH路径,有执行,无报错
//表缓存命令所在位置
[root@oldboy ~]# hash
命中 命令
3 /usr/bin/locate
1 /usr/bin/ls
1 /usr/bin/find
//已缓存命令,如果移动位置会导致无法找到该命令
[root@oldboy ~]# mv /usr/bin/find /tmp/
[root@oldboy ~]# find
-bash: /usr/bin/find: 没有那个文件或目录
//删除缓存过的find命令,即可执行
[root@oldboy ~]# hash -d find
[root@oldboy ~]# find
//当然可以清空缓存表
[root@oldboy ~]# hash -r
//命令缓存hash需要注意如下情况
1.如果执行外部命令1次就会对该命令进行缓存
2.如果将命令移动了位置
a.使用绝对路径执行
b.删除hash表的缓存指令
总结,当我们执行了一个Ping命令之后,整个命令执行的流程步骤如下:
1.检查执行的是否是绝对路劲
2.检查该ping命令是否存在别名
3.检查该ping命令是内部命令还是外部命令
4.如果是内部命令直接执行,如果是外部命令
5.检测该命令是否有缓存,如果没有,查找PATH变量
6.检查PATH路径知道查到该命令然后执行
7.如果没有找到该命令则返回错误。command not found
路径展开
思考:在/tmp路径下创建以下目录
etc/init.date
etc/sysconfig
usr/lib
usr/bin
usr/include
var/spool
var/run
proc
sys
bin
mkdir -pv /tmp/{etc/{init.d,sysconfig},usr/{bin,lib,include},var/{spool,run},proc,sys,bin}
[root@oldboy ~]# tree /tmp/
/tmp/
├── bin
├── etc
│ ├── init.d
│ └── sysconfig
├── proc
├── sys
├── usr
│ ├── bin
│ ├── include
│ └── lib
└── var
├── run
└── spool
转义符
反斜杠():使反斜杠后面的一个变量变为字符串
单引号(‘‘):转义其中所有的变量为单纯字符串
双引号(""):保留其中的变量属性,不进行转义处理
反引号(``): 把其中的命令执行返回结果
//将特殊字符转换为正常字符
[root@oldboy ~]# echo "shop is $500"
shop is 00
[root@oldboy ~]# echo "shop is $500"
shop is $500
//转义其中特殊字符为普通字符串
[root@oldboy ~]# echo ‘shop is $500‘
shop is $500
//使用$()实现命令替换
[root@oldboy ~]# echo "The dir is $(pwd)"
The dir is /root
//使用``实现命令替换
[root@oldboy ~]# echo "The dir is `pwd`"
The dir is /root
//转义其中所有的变量为单纯的字符串
[root@oldboy ~]# touch file-`date +%F-%H-%S`
[root@oldboy ~]# ls
anaconda-ks.cfg file-2019-10-17-22-54 log_2019-10-15_14:47.bak
[root@oldboy ~]# touch ‘file-`date +%F-%H-%S`‘
[root@oldboy ~]# ls
file-`date +%F-%H-%S`
[root@oldboy ~]# cat >>.bashrc <<EOF
> echo "server ip is `ifconfig| awk ‘NR==2{pring $2}‘`"
> EOF
bash特性小结&bash变量
时间就是金钱效率就是生命一、bash编程 |---------------||应用 ||-----------| ||壳|库函数 | | //可以直接针对系统调 查看详情
bash特性
bash的基础特性(1): (1)命令历史history系统中history环境变量:HISTSIZE:命令历史记录的条数;HISTFILE:~/.bash_history;HISTFILESIZE:命令历史文件记录历史的条数; history-dOFFSET(具体删除第几条历史记录)history-c 清空所有... 查看详情
bash基础特性
...的环境变量可以通过ehco$#查看#为环境变量 bash的基础特性:(1)命令历史 history 环境变量: HISTSIZE:命令历史记录的条数 HISTFILE;~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 history-doffset删除某条历史命令 his... 查看详情
bash的特性
bash的特性Bash(GNUBourne-AgainShell)是许多Linux发行版的默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shel... 查看详情
bash基础特性命令引用
...D` 这是反引号:就是ESC键下面的那个反引号bash的引用特性: 引用 强引用:‘‘单引号弱引用:""双引号命令引用:$(COMMADN) bash特性:快捷键 ctrl+a:跳转至命令行首ctrl+e:跳转至命令行行尾ctrl+u:删除行首至光标... 查看详情
bash特性
bash特性一、命令别名:(自定义命令) 用alias命令查看 alias命令可以用来定义和现实命令的别名 但是使用alias命令定义的别名,其生命仅为当前shell的生命期 对于每个用户来说,都有一个私有的bash文件,用于保... 查看详情
bash特性之五
一、bash特性之四,命令别名alias,shell的内建命令,显示当前系统所有的命令别名alias别名="原始命令"ualias别名撤销已经定义的别名。命令使用命令本身,而非命令别名。二、bash特性之五,globbing,统配符 *:匹配任意长度的... 查看详情
bash及其特性
...:Gnome,KDE,XfaceCLI:sh,csh,ksh,bash(兼具sh、csh等各种特性,功能更强大,且遵循开源协议),tcsh,zsh进程:在每个进程看来,当前主机上只存在内核和当前进程进程是程序的副本,进程是程序的执行过程用户工作环境:窗... 查看详情
bash及其特性
bash及其特性: 1.程序只有一个,但可以有多个进程,在每个进程来看,当前主机上只存在内核与当前进程 2.进程是程序的副本,进程是程序的执行实例 ... 查看详情
bash特性及用户和组管理
bash特性及用户和组管理 上篇博文中总结了bash的一些特性,这次做补充: bash变量 变量:一段由名称的连续的内存空间;这段内存空间的名称,就是变量名,在这 段内存空间存储数据 就是变量值;&nb... 查看详情
bash特性
BashLinux系统终端概述图形化 服务器终端切换:Ctrl+Alt+F1_F6 虚拟机终端切换:Ctrl+Shift+Alt+F1_F6 字符终端 服务器终端切换:Alt+F1_F6 pkill-9-ttty2& 查看详情
bash基础特性
对BASH做一下总结一、命令历史特性: historyshell进程会其会话中保存此前用户提交执行过的命令history是shell的内置命令650)this.width=650;"src="http://s5.51cto.com/wyfs02/M00/78/1F/wKiom1Z2ZjWSJrjdAAA9gP4LoMo818.jpg"title="未命名图片.jpg"width="400 查看详情
08-bash基础特性及基础命令
bash的基础特性 (1)命令历史 history HISTSIZE:命令历史记录的条数: HISTSIZE:~/.bash_history HISTFILESIZE:命令历史文件记录的条数: history-dOFFSET -c history#:显示历史最近的#条命令: -a:手动追加当前会话... 查看详情
bash的特性之多命令执行
bash的特性之多命令执行 一上午的时间学习了bash的特性之多命令执行,和对shell脚本编程的初步学习。bash的特性的多命令执行的顺序执行结构就是把几个命令用分号隔开。而选择执行结构有与、或、非三种运算法则。shel... 查看详情
bash的基本特性
Bash基本特性: 首先得从逻辑运算来说起: 与运算 && 两个判断条件都必须为真时,状态才为真,否则都为假,在此1是真,0是假 1&&1=1 1&&0=0 0&&1=0 0&&0=0 或运算|| 两个判断条件中都必须... 查看详情
bash的特性
&n 查看详情
bash相关特性
一、bash的快捷键: C:Ctrl键;M:Alt键;E:ESC键 C-l:清屏,相当于clear命令; C-a:将光标跳转至命令行编辑模式的行首;&nb 查看详情
bash的工作特性及命令状态返回查询
bash的基础特性:命令的执行状态结果 命令执行的状态结果: bash通过状态返回值来输出此结果: &nb 查看详情