文章目录
转义符–反斜杠\
转义符用于对某些字符进行特殊处理或防止它们被解释为特殊字符。
反斜杠是最常见的转义符,用于转义下一个字符,使其失去原有的特殊意义。例如:
\n:换行符。
\t:制表符。
\\:表示一个反斜杠本身。
\n:换行符。
echo用法
echo 是 Linux 中一个非常常用的命令,主要用于在终端输出文本或变量的值,也就是echo命令可以将后面跟的字符进行输出,类似于Java里的System.out.print()。
功能:显示字符,echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号
常用选项
echo [-neE] [字符串]
选项:
-E 禁用反斜杠\转义 (默认)
-e 启用反斜杠\转义
-n 不在最后添加换行符
转义序列
如果使用 -e 选项,可以使用以下转义序列:
\a:发出警报声(响铃)。
\b:退格。
\c:不输出最后的换行符。
\e 或 \E:转义字符。
\f:换页(form feed)。
\n:换行。
\r:回车。
\t:水平制表符。
\v:垂直制表符。
\\:反斜杠。
\nnn:表示一个八进制值。
\xHH:表示一个十六进制值。
ECHO(1) User Commands ECHO(1)
NAME
echo - display a line of text
SYNOPSIS
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
DESCRIPTION
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
--help display this help and exit
--version
output version information and exit
If -e is in effect, the following sequences are recognized:
\\ backslash
\a alert (BEL)
\b backspace
\c produce no further output
\e escape
\f form feed
\n new line
\r carriage return
\t horizontal tab
......
变量引用符$
美元符号用于引用变量
命令行扩展:``和$()
双引号"",单引号’',反向单引号``三者区别
结论:
单引号: 强引用,六亲不认,变量和命令都不识别,都当成了普通的字符串,"最傻";
双引号: 弱引用,不能识别命令,可以识别变量,"半傻不精";
反向单引号: 里面的内容必须是能执行的命令并且有输出信息,变量和命令都识别,
并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续,"最聪明"。
$()和``
[root@leiRocky ~]# ll `echo `date +%F`.txt`
-bash: .txt: command not found
ls: cannot access 'date': No such file or directory
ls: cannot access '+%F': No such file or directory
[root@leiRocky ~]# ll $(echo $(date +%F).txt)
-rw-r--r--. 1 root root 0 Aug 1 15:09 2024-08-01.txt
[root@leiRocky ~]# ll `echo $(date +%F).txt`
-rw-r--r--. 1 root root 0 Aug 1 15:09 2024-08-01.txt
[root@leiRocky ~]# ll $(echo `date +%F`.txt)
-rw-r--r--. 1 root root 0 Aug 1 15:09 2024-08-01.txt
括号扩展:{}
{}可以实现打印重复字符串的简化形式
[root@leiRocky data]# echo file{1,3,5}
file1 file3 file5
[root@leiRocky data]# rm -f file{1,3,5}
[root@leiRocky data]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@leiRocky data]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@leiRocky data]# echo {000..20..2}
000 002 004 006 008 010 012 014 016 018 020
[root@leiRocky data]# echo {a..z} {A..Z}
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H
I J K L M N O P Q R S T U V W X Y Z
[root@leiRocky data]# echo {a..z}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 e1 e2 e3 f1 f2 f3 g1 g2 g3 h1 h2 h3 i1 i2 i3
j1 j2 j3 k1 k2 k3 l1 l2 l3 m1 m2 m3 n1 n2 n3 o1 o2 o3 p1 p2 p3 q1 q2 q3 r1 r2 r3
s1 s2 s3 t1 t2 t3 u1 u2 u3 v1 v2 v3 w1 w2 w3 x1 x2 x3 y1 y2 y3 z1 z2 z3
tab键补全
tab键可以实现命令及路径等补全,提高输入效率避免出错。
命令补全
命令补全
内部命令:
外部命令: bash根据PATH环境变量定义的路径。自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
命令的子命令补全,需要安装bash-completion
yum -y install bash-completion
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名如果惟一:则直接补全
否则:再次Tab给出列表
双击Tab键
1.command 2Tab 所有子命令或文件补全 (2Tab是两个Tab键的意思)
2.string2Tab 以string开头命令
3./2Tab 显示所有根目录下一级目录,包括隐藏目录
4../2Tab 当前目录下子目录,包括隐藏目录
5.*2Tab 当前目录下子目录,不包括隐藏目录
6.~2Tab 所有用户列表
7.$2Tab 所有变量
8.@2Tab /etc/hosts记录 (centos7不支持)
9.=2Tab 相当于ls -A =(centos7不支持)
命令行历史
当执行命令后,系统默认会在内存记录执行过的命令。
当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history登录shell时,会读取命令历史文件中记录下的命令加载到内存中。
登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加"至命令历史文件中
利用命令历史。可以用它来重复执行命令,提高输入效率命令: history
保存历史命令的文件.bash_history,正常退出终端时才会被保存至该文件中,但也不是无限制的保存所有,可以使用$HISTSIZE查看限制的保存数量
执行某个历史命令
常用选项
-c: 清空命令历史
-d offset:删除历史中指定的第offset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文伴
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列夜中
-s: 展开历史参数成一行,附加在历史后
bash快捷键
ctrl +l 清屏,相当于clear命令
ctrl + o 执行当前命令,并重新显示本命令
ctrl + s 阻止屏幕输出,锁定
ctrl + q 允许屏幕输出,解锁
ctrl + c 终止命令
ctrl + z 挂起命令
ctrl + a 光标移到命令行首,相当于Home
ctrl + e 光标移到命令行尾,相当于End
ctrl + f 光标向右移动一个字符
ctrl + b 光标向左移动一个字符
ctrl + xx 光标在命令行首和光标之间移动
ctrl+ > 光标向右移动一个单词尾,相当于Alt +f
ctrl+ < 光标向左移动一个单词首,相当于Alt + b
ctrl + u 从光标处删除至命令行首
ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Alt + Backspace 删除左边单词
ctrl + d 删除光标处的一个字符