1、bash的基本特性
1.命令历史
作用:查看之前使用的命令
关于命令历史的文件
每个用户家目录下面的.bash_history
在关机的时候,会自动写入一次 history -r(将内存中的历史命令写入文件)
关于命令历史的变量(环境变量)
查看环境变量:env
set//查看更加详细的环境变量
HISTSIZE = 1000 数量
HISCONTROT = ignoredups

1.命令历史
作用:查看之前使用的命令
关于命令历史的文件
每个用户家目录下面的.bash_history
在关机的时候,会自动写入一次 history -r(将内存中的历史命令写入文件)
关于命令历史的变量(环境变量)
查看环境变量:env
set//查看更加详细的环境变量
HISTSIZE = 1000 数量
HISCONTROT = ignoredups


History的常见的操作
查看命令历史
!# #表示数值,执行#行的命令
!string 匹配最近一次的字符串
!! 上一条命令
*!$* 上一条命令的最后一个参数
ls /etc
ls !$
ESC+. (快捷键)
常见的选项:

2.命令补全
TAB键:制表符 代表四个空格键
1.提示
2.自动补全
3.目录补全
TAB键:制表符 代表四个空格键
1.提示
2.自动补全
4.命令展开
Linux目录需要遵循的规则-----FSH目录规则
{}
创建实例

属性1 属性2
a 1
b 2
mkdir -pv /var/{a,b}-{1,2}
data 基于date命令来创建目录
%F CCYY-mm-dd
%T hh:MM:ss
%D mm/dd/YY
%H hh
%M MM
%S ss
%Y CCYY

实例:通过for语句循环创建一个月的日志文件;.log 2019-08-6.http.log
for i in {1..30};do
touch`date +%Y-%m-$i`.http.log
done
%F CCYY-mm-dd
%T hh:MM:ss
%D mm/dd/YY
%H hh
%M MM
%S ss
%Y CCYY

实例:通过for语句循环创建一个月的日志文件;.log 2019-08-6.http.log
for i in {1..30};do
touch`date +%Y-%m-$i`.http.log
done

Tar 归档命令(压缩与解压缩)
tar的常见参数【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c creat
-x extract 解压//可以不用指定解压的工具
-f 指定文件名
-v 显示详细信息verbose
-t 不解压查看内容同zcat
压缩与解压缩实例

压缩工具【只能对文件操作,不能对目录操作】
gzip
bzip2
xz
zcat 查看压缩文件且不解压
-----------------------------------

crontab -e --- 20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
#
tar cJvf /var/`date +%F`.xz /etc/
:wq
chmod +x xxx.sh
tar的常见参数【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c creat
-x extract 解压//可以不用指定解压的工具
-f 指定文件名
-v 显示详细信息verbose
-t 不解压查看内容同zcat
压缩与解压缩实例

压缩工具【只能对文件操作,不能对目录操作】
gzip
bzip2
xz
zcat 查看压缩文件且不解压
-----------------------------------

crontab -e --- 20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
#
tar cJvf /var/`date +%F`.xz /etc/
:wq
chmod +x xxx.sh
-------
目录:白色
压缩文件:红色
执行文件:绿色
-------
clock / hwclock :查看硬件时钟 如何同步硬件时钟与系统时钟?
cal 日历
5.命令的执行状态
6.命令的快捷键
-----------常用
ctrl + l //清屏
ctrl + c //
ctrl + u //删除光标前的字符
ctrl + k //删除光标后的字符
ctrl + a //
ctrl + e //
ctrl + w //以空格为分隔符,去删除文件
ctrl + r //进入一个交互界面,搜索最近一次使用的命令(要输入string)
----------------
目录:白色
压缩文件:红色
执行文件:绿色
-------
clock / hwclock :查看硬件时钟 如何同步硬件时钟与系统时钟?
cal 日历
5.命令的执行状态

6.命令的快捷键
-----------常用
ctrl + l //清屏
ctrl + c //
ctrl + u //删除光标前的字符
ctrl + k //删除光标后的字符
ctrl + a //
ctrl + e //
ctrl + w //以空格为分隔符,去删除文件
ctrl + r //进入一个交互界面,搜索最近一次使用的命令(要输入string)
----------------
Linux命令行编辑快捷键: history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 Ctrl+s 与Ctrl+r类似,只是正向检索 Alt+< 历史列表第一项 Alt+> 历史列表最后一项 Ctrl+f 光标向前移动一个字符,相当与-> Ctrl+b 光标向后移动一个字符,相当与<- Alt+f 光标向前移动一个单词 Alt+b 光标向后移动一个单词 ls !$ 执行命令ls,并以上一条命令的参数为其参数 Ctrl+a 移动到当前行的开头 Ctrl+e 移动到当前行的结尾 Esc+b 移动到当前单词的开头 Esc+f 移动到当前单词的结尾 Ctrl+l 清屏 Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身) Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身) Ctrl+d 删除光标所在处字符 Ctrl+h 删除光标所在处前一个字符 Ctrl+y 粘贴刚才所删除的字符 Ctrl+w 剪切光标所在处之前的一个词(以空格、标点等为分隔符) Alt+d 剪切光标之后的词 Esc+w 删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符) Ctrl+t 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符 Alt+t 交换当前与以前单词的位置 Alt+u 把当前词转化为大写 Alt+l 把当前词转化为小写 Alt+c 把当前词汇变成首字符大写 Ctrl+v 插入特殊字符,如Ctrl+v+Tab加入Tab字符键 Esc+t 颠倒光标所在处及其相邻单词的位置 Ctrl+c 删除整行 Ctrl+(x u) 按住Ctrl的同时再先后按x和u,撤销刚才的操作 Ctrl+s 挂起当前shell Ctrl+q 重新启用挂起的shell [Ctrl] + [Alt] + [Backspace] = 杀死你当前的 X 会话。杀死图形化桌面会话,把你返回到登录屏幕。如果正常退出步骤不起作用,你可以使用这种方法。 [Ctrl] + [Alt] + [Delete] = 关机和重新引导 Red Hat Linux。关闭你当前的会话然后重新引导 OS。只有在正常关机步骤不起作用时才使用这种方法。 [Ctrl] + [Alt] + [Fn] = 切换屏幕。 [Ctrl] + [Alt] + 功能键之一会显示一个新屏幕。根据默认设置,从 [F1] 到 [F6] 是 shell 提示屏幕, [F7] 是图形化屏幕。 [Alt] + [Tab] = 在图形化桌面环境中切换任务。如果你同时打开了不止一个应用程序,你可以使用 [Alt] + [Tab] 来在打开的任务和应用程序间切换。 [Ctrl] + [a] = 把光标移到行首。它在多数文本编辑器和 Mozilla 的 URL 字段内可以使用。 [Ctrl] + [d] = 从 shell 提示中注销(并关闭)。使用该快捷键,你就不必键入 exit 或 logout 。 [Ctrl] + [e] = 把光标移到行尾。它在多数文本编辑器和 Mozilla 的 URL 字段内都可使用。 [Ctrl] + [l] = 清除终端。该快捷操作与在命令行键入 clear 作用相同。 [Ctrl] + = 清除当前行。如果你在终端下工作,使用这一快捷操作可以清除从光标处到行首的字符。 [鼠标中间键] = 粘贴突出显示的文本。使用鼠标左键来突出显示文本。把光标指向你想粘贴文本的地方。点击鼠标中间键来粘贴它。在两键鼠标系统中,如果你把鼠标配置成模拟第三键,你可以同时点击鼠标的左右两键来执行粘贴。 [Tab] =命令行自动补全。使用 shell 提示时可使用这一命令。键入命令或文件名的前几个字符,然后按 [Tab] 键,它会自动补全命令或显示匹配你键入字符的所有命令。 [向上] 和 [向下] 箭头 = 显示命令历史。当你使用 shell 提示时,按 [向上] 或 [向下] 箭头来前后查看你在当前目录下键入的命令历史。当你看到你想使用的命令时,按 [Enter] 键。 clear = 清除 shell 提示屏幕。在命令行下键入它会清除所有这个 shell 提示屏幕中显示的数据。 exit = 注销。在 shell 提示中键入它会注销当前的用户或根用户帐号。 history = 显示命令历史。在 shell 提示中键入它来显示你所键入的被编号的前 1000 个命令。要显示较短的命令历史,键入 history f之后,空一格,在键入一个数字。例如: history 20 。 reset = 刷新 shell 提示屏幕。如果字符不清晰或乱码的话,在 shell 提示下键入这个命令会刷新屏幕。 # Ctrl-U: 擦除一行光标前面的部分。 # Ctrl-H: 擦除光标前面的一个字符。 # Ctrl-D: 终止输入。(退出 shell,如果您正在使用 shell 的话)。 # Ctrl-C: 终止当前正在运行的程序。 # Ctrl-Z: 暂停程序。 # Ctrl-S: 停止向屏幕输出。 # Ctrl-Q: 重新激活向屏幕输出。 默认的 shell,`bash’, 有历史编辑和 tab 补齐功能。 # up-arrow: 开始历史命令搜索。 # Ctrl-R: 开始增量历史命令搜索,可以按照关键字查查自己用过哪些命令。 # TAB: 完整的把文件名输入到命令行。 # Ctrl-V TAB: 输入 TAB 而不是扩展命令行。 # Ctrl + P - 上一条命令 # Ctrl + N - 下一条命令 # Ctrl-U: 擦除一行光标前面的部分。 # Ctrl + Y - 粘贴前一Ctrl+U类命令删除的字符 ,是粘贴不是撤销啊! 下面的应用可能稍稍高级一点点 # !! - 上一条命令 # !-n - 倒数第N条历史命令 # !-n:p - 打印上一条命令(不执行) # !?string?- 最新一条含有“string”的命令 # !-n:gs/str1/str2/ - 将倒数第N条命令的str1替换为str2,并执行(若不加g,则仅替换第一个) 其他一些有用的Linux命令行按键组合。 Ctrl-Alt-Del:挂起或者重新启动系统,这三个Linux命令行按键在Linux下可以轻松地修改成关机的操作,这对于单用户的朋友还是很方便的 # Ctrl + l - 清屏 # Ctrl + A - 光标移到行首 # Ctrl + E - 光标移到行尾 # Ctrl + W - 清除光标之前一个单词 # Ctrl + K - 清除光标到行尾的字符 # Ctrl + T - 交换光标前两个字符 # Ctrl + V - 输入控制字符 如Ctrl+v ,会输入^M # Ctrl + F - 光标后移一个字符 # Ctrl + B - 光标前移一个字符 # Ctrl + H - 删除光标前一个字符 # N++F - 光标后移N个单词,N为1时可省略 # N++B - 光标前移N个单词,N为1时可省略 # Left-click-and-drag mouse: 选择并且拷贝到剪贴板。 # Click middle mouse button: 使用剪贴板的内容粘贴。 # Meta-key (Emacs terminology) 传统的是使用 Left-Alt-key 以上是Linux命令行编辑快捷键的方法。
7.alias别名
系统启动时读取一些特殊文件的顺序

/etc/profile :定义环境变量(所有用户) EXPORT HISTCONTROL=XXX
/etc/bashrc :定义本地变量--alias(所有用户)
~/.bash_profile :定义环境变量(指定用户)
~/.bashrc :定义本地变量--alias(指定用户)
sources /etc/profile 或者 ./etc/profile
8.文件通配符--globbing
【文件通配符不是正则表达式】
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
^ [^]指定范围以外的任意一个字符
[^0-9A-Za-z]
[0-9][A-Z][a-z][a-zA-Z]
指定字符类:

^[[:space:]]*$ //有空格键的空行
练习
系统启动时读取一些特殊文件的顺序

/etc/profile :定义环境变量(所有用户) EXPORT HISTCONTROL=XXX
/etc/bashrc :定义本地变量--alias(所有用户)
~/.bash_profile :定义环境变量(指定用户)
~/.bashrc :定义本地变量--alias(指定用户)
sources /etc/profile 或者 ./etc/profile
8.文件通配符--globbing
【文件通配符不是正则表达式】
? 任意单个字符
* 任意长度的任意字符
[] 指定范围内的任意一个字符
^ [^]指定范围以外的任意一个字符
[^0-9A-Za-z]
[0-9][A-Z][a-z][a-zA-Z]
指定字符类:

^[[:space:]]*$ //有空格键的空行
练习
