Linux59期day15

2019-04-16  本文已影响0人  A宽宽

Linux下面修改字符集

什么是字符集?

文字符号在计算机中标识方法
常见字符集:GBK国标 UFT万国码
修改字符集:LANG(language)

[root@oldboy59 ~]# echo $LANG
en_US.UTF-8

临时修改(重新登录之后失效)

[root@oldboy59 ~]# export LANG='zh_CN.UTF-8'
[root@oldboy59 ~]# vimtutor

永久修改(写入文件/etc/locale.conf)
生效source /etc/locale.conf

一条命令设置字符集
localectl set-locale LANG=en_CN.utf8 然后重新链接生效

故障案例:Linux下面显示中文乱码排查流程

原因:Linux系统的字符集与远程连接工具(xshell)字符集不同
排查:查看shell字符集和系统字符集是否一致
解决:

方法一:修改xshell字符集(不通用)
方法二:
修改Linux字符集localectl set-locale LANG=en_US.utf 重新连接

特殊符号与正则表达式

引号系列:单引号 所见即所得

[root@oldboy59 ~]# echo '$LANG'
$LANG

双引号 与单引号类似 双引号里面的特殊符号会被解析(运行)

[root@oldboy59 ~]# echo "$LANG"
zh_CN.UTF-8

不加引号 与双引号类似 支持花括号(通配符)

[root@oldboy59 ~]# echo $LANG {1..5}
zh_CN.UTF-8 1 2 3 4 5

反引号 `` 相当于$() 有限执行里面的命令,把里面的结果留下

[root@oldboy59 ~]# ls -l `which mkdir`
-rwxr-xr-x. 1 root root 79864 10月 31 03:16 /usr/bin/mkdir
[root@oldboy59 ~]# ls -l $(which mkdir)
-rwxr-xr-x. 1 root root 79864 10月 31 03:16 /usr/bin/mkdir
[root@oldboy59 ~]# 

重定向符号系列
改变数据的流向 箭头的方向就是水流方向
'>'标准输出重定向 先清空文件内容,在写入新的内容
'>>'标准追加输出重定向 追加到文件结尾
'2>'或'2>>'标准追加错误信息重定向,错误输出,数字2 命令的错误提示写入到文件
同时把错误信息或正确都记录到文件中

[root@oldboyedu59 ~]# echo alex oldboy  >>oldboy.txt    2>&1
[root@oldboyedu59 ~]# cat oldboy.txt 

'<' 标准输入重定向 用来指引命令从哪里读取数据 tr xargs
'<<' 标准追加输入重定向 只用来和cat配合 向文件中追加多行内容

管道 把前一个命令的结果通过管道传递给后面命令

[root@oldboy59 ~]# rpm -qa |grep ncat
nmap-ncat-6.40-16.el7.x86_64

管道 | 默认传递的是文字符号
find与|xargs配合

|xargs 把管道传递的内容从文字符号转变成文件名(参数)
|xargs后面不支持别名

找出/oldboy下面以.txt结尾的文件把他们删除(ls -l)

方法1 反引号

[root@oldboyedu59 ~]# ls -l   $(find /oldboy -type f -name '*.txt')
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/lidao/alex01.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/lidao/alex02.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/lidao/alex03.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/lidao/alex04.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/lidao/alex05.txt
-rw-r--r-- 1 root root  0 Apr 16 10:58 /oldboy/lidao/oldboy01.txt
-rw-r--r-- 1 root root  0 Apr 16 10:58 /oldboy/lidao/oldboy02.txt
-rw-r--r-- 1 root root  0 Apr 16 10:58 /oldboy/lidao/oldboy03.txt
-rw-r--r-- 1 root root  0 Apr 16 10:58 /oldboy/lidao/oldboy04.txt
-rw-r--r-- 1 root root  0 Apr 16 10:58 /oldboy/lidao/oldboy05.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/oldboy01.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/oldboy02.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/oldboy03.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/oldboy04.txt
-rw-r--r-- 1 root root  0 Apr 16 10:59 /oldboy/oldboy05.txt
-rw-r--r-- 1 root root 29 Apr 16 10:29 /oldboy/oldboy.txt

方法2 管道

find /oldboy -type f -name '*.txt'|xargs ls -l

方法3 find命令参数 -exec 熟悉

[root@oldboy59 ~]# find /oldboy -type f -name '*.txt' -exec ls -l {} \;

{}表示找出的文件 ;结束

表示位置

~ 当前目录 以.开头的文件隐藏
.. 当前目录的上级目录
-(cd- su-)

表示简单判断

&& 前一个命令执行成功 再执行后面的命令
ifdown eth0 && ifup eth0
|| 前一个命令执行失败 再执行后面的命令

其他

'#'注释 root用户的命令提示符
取变量的内容LANG PATH()==``
;命令结束
! !ls找出最近一次使用过 以ls开头的命令 并执行

Ctrl +r 进入搜索模式(查找用过的命令history|grep)

通配符 方便我们查找想要的文件或目录

所有 任何 *
文件名中包含

[root@oldboy59 ~]# find / -type f -name '*ip*'

{}生成序列

[root@oldboyedu59 ~]# echo A{,C}
A AC
[root@oldboyedu59 ~]# echo A{B,C}
AB AC

进行备份

[root@oldboy59 ~]# touch oldboy.txt
[root@oldboy59 ~]# cp oldboy.txt{,.bak}

? 任意一个字符(单个字符)
[]
[^]

上一篇下一篇

猜你喜欢

热点阅读