今日重点
优化补充(修改字符集、Linux下显示中文乱码排查流程)
特殊符号
通配符
一、Linux下面修改字符集
修改字符集(重点)
查看
echo $LANG
修改
临时(重新登录之后生效)
export LANG='zh_CN.UTF-8'
永久
写入文件
/etc/locale.conf(CentOS 7)
/etc/sysconfig/i18n(CentOS 6)
检查
source /etc/locale.conf
更加简单粗暴的方法:
一条命令设置字符集 localectl set-locale LANG=en_US.UTF-8
故障案例:Linux下显示中文乱码排查流程(重点)
出错原因
Linux系统的字符集与远程连接(xshell)字符集不通
检查
查看shell的字符集并查看系统字符集,看这两个是否一致
解决
方法1:修改xshell字符集(不通用)
方法2:修改Linux字符集
二、特殊符号
1、引号系列
单引号:所见所及所得
[root@oldboyedu59 ~]# echo '$LANG'
$LANG
双引号:与单引号类似,双引号里面的特殊符号会被解析(运行)
[root@oldboyedu59 ~]# echo "$LANG {0..5}"
en_US.UTF-8 {0..5}
[root@oldboyedu59 ~]#
不加引号:与双引号类似 支持花括号(通配符)
[root@oldboyedu59 ~]# echo $LANG {0..5}
en_US.UTF-8 0 1 2 3 4 5
[root@oldboyedu59 ~]#
反引号:``相当于$()
优先执行里面的命令,把结果留下
[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
[root@oldboyedu59 ~]#
2、重定向符号系列
什么叫重定向?
改变数据的流向
箭头的方向就是水流的方向
>或1>:标准输出重定向(先清空文件内容再写入)
>>或1>>:标准追加输出重定向(追加到文件的结尾)
标准输出 数字1 把正确的信息写入到文件总
2>:标准错误输出重定向,先清空文件,再把错误的信息输入到文件中
2>>:标准错误追加输出重定向,把错误信息追加到文件的结尾
错误输出 数字2 把错误的信息写入到文件中
2>&1:同时把错误信息和正确信息都记录到文件中(定时任务中会使用)
echo dfdfdfd >>test.txt 2>&1
<或0<:标准输入重定向(用来指引命令从哪里读取数据),目前tr和xargs有用到
<<或0<<:标准追加输入重定向(只用来和cat配合,向文件中追加内容)
输入重定向符号 数字为0 一般用于与特定命令配合
3、管道
基础含义:
把管道前一个命令的结果通过管道传递给后面的命令
管道默认传递的是文字符号
find与|xargs的配合:
|xargs 把管道传递的内容从文字符号转换为文件名(参数)
|xargs 后面不支持别名
例题
找出/oldboy文件下以“*.txt”结尾的文件把他们删除(ls -l)
方法1:反引号
ls -l $(find /oldboy -type f -name '*.txt')
方法2:管道
find /oldboy -type f -name '*.txt'|xargs ls -l
方法3:-exec(execute 执行 运行)
find /oldboy -type f -name '*.txt' -exec ls -l {} \;
4、表示位置
~ -------当前用户家目录
.. ------上级目录
.
当前目录
以.(点)开头的文件隐藏
-
cd -
返回到前一个命令的位置
su -
切换用户
5、表示简单判断
&&-----前1个命令执行成功,再执行后面的命令
||-----前1个命令执行失败,再执行后面的命令
6、其他
#
注释
root用户的命令提示符
$
取变量的内容 $LANG
$()==``
;
命令结束
!
!ls------找出最近使用过的 以ls开头的命令并执行(慎用)
history |grep ls
Ctrl + r
三、通配符
作用
方便我们查找想要的文件或目录
通用 Linux下面大部分命令可以使用
符号
*
所有
文件名中包含
find / -type f -iname '*ip*'
{}
生成序列
echo {01..10}
echo {01..10,2}
数字或字母
进行备份
cp test.txt{,.bak}
?
任意1个字符(单个字符)
网友评论