主要内容:
-
修改字符集
-
特殊符号
-
通配符
一、修改字符集:
1.什么是字符集:
文字符号在计算机中的标识;
2.常见的字符集:
GBK 国标
UTF 万国码
3.修改字符集:
(1)查看Linux系统字符集:LANG
[root@oldboyedu59 ~]# echo $LANG
en_US.UTF-8
(2)修改-临时:重新连接后失效
[root@oldboyedu59 ~]# echo $LANG
en_US.UTF-8
[root@oldboyedu59 ~]# export LANG='zh_CN.UTF-8'
[root@oldboyedu59 ~]# echo $LANG
zh_CN.UTF-8
(2)修改-永久:写入到文件
/etc/locale.conf(CentOS 7)
/etc/sysconfig/i18n(CentOS 6)
[root@oldboyedu59 ~]# vim /etc/locale.conf
LANG="en_US.UTF-8"
[root@oldboyedu59 ~]# source /etc/locale.conf
(3)一条命令设置字符集:localectl set-locale LANG=en_US.utf8
二、故障案例:Linux下面显示中文乱码排错流程
1.原因
linux下的字符集和xshell字符集不一致
2.排查
(1).查看xshell字符集
(2).查看系统字符集
3.解决
方法一
修改xshell字符集(不通用)
方法二
修改Linux字符集
三、特殊符号
1.引号系列:
(1)单引号 = ' ' :所见即所得
[root@oldboyedu59 ~]# echo '$LANG {1..5}'
$LANG {1..5}
(2)双引号 =" ":与单引号类似,双引号里面的特殊符号会被解析(运行)
[root@oldboyedu59 ~]# echo "$LANG {1..5}"
en_US.UTF-8 {1..5}
(3)不加引号:与双引号类似 支持花括号(通配符)
[root@oldboyedu59 ~]# echo $LANG {1..5}
en_US.UTF-8 1 2 3 4 5
(4)反引号=:相当于$()
优先执行里面的命令 留下结果
[root@oldboyedu59 ~]# ls -l `which mkdir`
-rwxr-xr-x. 1 root root 79864 Oct 31 03:16 /usr/bin/mkdir
[root@oldboyedu59 ~]# ls -l $(which mkdir)
-rwxr-xr-x. 1 root root 79864 Oct 31 03:16 /usr/bin/mkdir
2.重定向符号系列
(1)什么是重定向?
改变数据的流向
箭头的方向就是水流的方向
(2)>或1>
标准输出重定向
先清空文件内容再写入
[root@oldboyedu59 ~]# echo 123 >oldboy01.log
[root@oldboyedu59 ~]# cat oldboy01.log
123
(2)>>或1>>
标准追加输出重定向
追加到文件的最后一行
[root@oldboyedu59 ~]# echo 12345 >>oldboy01.log
[root@oldboyedu59 ~]# cat oldboy01.log
123
12345
(3)2>
标准错误输出重定向
[root@oldboyedu59 ~]# cho 12345 2>oldboy01.log
[root@oldboyedu59 ~]# cat oldboy01.log
-bash: cho: command not found
(4)2>>
标准追加错误输出重定向
[root@oldboyedu59 ~]# cat oldboy01.log
12345
[root@oldboyedu59 ~]# cho 12345 2>>oldboy01.log
[root@oldboyedu59 ~]# cho 12345 2>>oldboy01.log
[root@oldboyedu59 ~]# cho 12345 2>>oldboy01.log
[root@oldboyedu59 ~]# cho 12345 2>>oldboy01.log
[root@oldboyedu59 ~]# cho 12345 2>>oldboy01.log
[root@oldboyedu59 ~]# cho 12345 2>>oldboy01.log
[root@oldboyedu59 ~]# cat oldboy01.log
12345
-bash: cho: command not found
-bash: cho: command not found
-bash: cho: command not found
-bash: cho: command not found
-bash: cho: command not found
-bash: cho: command not found
(5)同时把错误信息和正确的都记录到文件中:
[root@oldboyedu59 ~]# alex >>oldboy.txt 2>&1
[root@oldboyedu59 ~]# cat oldboy.txt
-bash: alex: command not found
[root@oldboyedu59 ~]#
(6)<或0<
标准输入重定向
用来指引命令从哪里读取数据
经常与tr、xargs搭配使用
[root@oldedu59 oldboy]# echo {1..10} >/oldboy/sf.txt
[root@oldedu59 oldboy]# cat /oldboy/sf.txt
1 2 3 4 5 6 7 8 9 10
[root@oldedu59 oldboy]# xargs -n2 </oldboy/sf.txt
1 2
3 4
5 6
7 8
9 10
[root@oldedu59 tmp]# tr 'o' '0' < /tmp/oldboy.txt
0ldb0y
alex
0ldb0y0ldb0y
alex0ldb0y
Oldb0y 0Ldb0y
OLDBOY
(7)<<或0<<
标准追加输入重定向
只用来和cat配合 向文件中追加一行或多行内容
[root@oldboyedu59 ~]# cat >>oldboy.txt <<EOF
> 123
> oldboy
> Linux
> EOF
[root@oldboyedu59 ~]# cat oldboy.txt
-bash: alex: command not found
123
oldboy
Linux
3.管道
(1)基础含义
把管道前一个命令的结果通过管道传递给后面的命令
管道默认传递的是文字符号
(2)find与|xargs的配合
|xargs 把管道传递的内容从文字符号--->文件名(参数)
(3)例题:找出/oldboy下面以.txt结尾的文件,查看他的详细信息(ls -l)
方法一:反引号
[root@oldboyedu59 ~]# ls -l `find /oldboy/ -type f -name '*.txt'`
-rw-r--r-- 1 root root 0 Apr 16 15:18 /oldboy/oldboyA.txt
-rw-r--r-- 1 root root 0 Apr 16 15:18 /oldboy/oldboyB.txt
方法二:|xargs ls -l
[root@oldboyedu59 ~]# find /oldboy/ -type f -name '*.txt' |xargs ls -l
-rw-r--r-- 1 root root 0 Apr 16 15:18 /oldboy/oldboyA.txt
-rw-r--r-- 1 root root 0 Apr 16 15:18 /oldboy/oldboyB.txt
方法三:find的参数 -exec
[root@oldboyedu59 ~]# find /oldboy/ -type f -name '*.txt' -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Apr 16 15:18 /oldboy/oldboyA.txt
-rw-r--r-- 1 root root 0 Apr 16 15:18 /oldboy/oldboyB.txt
4. 表示位置
(1)~
当前用户家目录
(2).
当前目录
以.开头的隐藏文件
(3)..
当前目录的上级目录
(4)-
cd -
su -
5.表示简单判断
(1)&&
前一个命令执行成功 在执行后面的命令
ifdown eth0 && ifup eth0
(2)||
前一个命令执行失败 在执行后面的命令
6.其他
(1)#
注释
root用户的命令提示符
(2)$
去变量的内容 PATH
$() ==``
(3);
命令到分号出结束
(4)!
!ls
找出最近一次使用过以ls开头的命令并执行:history |grep ls
Ctrl + r=history |grep
四、通配符
(1)作用
方便查找想要的文件或目录
通==通用 Linux下面大部分命令都可以使用
(2)符号
- :所有 任何;文件命中包含
[root@oldboyedu59 ~]# rm -f /oldboy/*.txt
[root@oldboyedu59 ~]# ll /oldboy/
total 0
-rw-r--r-- 1 root root 0 Apr 16 15:03 01.log
-rw-r--r-- 1 root root 0 Apr 16 15:03 02.log
-rw-r--r-- 1 root root 0 Apr 16 15:03 03.log
-rw-r--r-- 1 root root 0 Apr 16 15:03 04.log
-rw-r--r-- 1 root root 0 Apr 16 15:03 05.log
{}:生成序列,生成数字或字母序列;进行备份
[root@oldboyedu59 ~]# echo {01..05}
01 02 03 04 05
?:任意一个字符(单个字符)
[root@oldboyedu59 /]# ls -d /???
/bin /dev /etc /lib /mnt /opt /run /srv /sys /tmp /usr /var
[root@oldboyedu59 /]# ls -d /?????
/lib64 /media