day15:修改字符集、特殊符号以及通配符

主要内容:

  • 修改字符集

  • 特殊符号

  • 通配符

一、修改字符集:

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)$

去变量的内容 LANGPATH
$() ==``

(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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容