day16-字符集、特殊符号和正则表达式

在这里插入图片描述

Linux下面修改字符集

1. 什么是字符集

字符集:文字符号在计算机中标识方法

2.常见字符集
	GBK 国标
	UTF8 万国码
3.修改字符集
		查看
			查看:$LANG (language语言)
			echo $LANG 
				查看字符集
			en_US.UTF-8    \\语言.字符集  英文
			zh_CN.UTF-8
				中文
修改-临时:
			export LANG='zh_CH.UTF-8'
			重新登录之后失效
		修改-永久:
			vim /etc/locale.conf (CentOS 7)
			vim /etc/sysconfig/i18n(CentOS 6)
		生效
			source /etc/locale.conf
			
修改-临时永久同时修改
			localectl 
			修改
				localectl set-locale LANG=en_US.utf-8
			生效
				source /etc/locale.conf 						
查看
		cat /etc/locale.conf 
		一条命令设置字符集
	

修改永久-生效-查看

[✡root@oldboy ~]# localectl set-locale LANG=en_US.UTF-8
[✡root@oldboy ~]# source /etc/locale.conf 
[✡root@oldboy ~]# cat /etc/locale.conf 
LANG=en_US.UTF-8
故障案例-中文乱码排查流程
		原因
			
		排查
			查看xshell字符集
			查看系统字符集
			是否一致↑↑↑
		解决
			方法1
				修改xshell字符集(不通用)
			方法2
				修改Linux字符集

※特殊符号

引号相关
' '   单引号,所见即所得
	echo '$LANG {1..5}'
" "  双引号,解析命令,但是需要与` `或$( )结合
	echo "$LANG {1..5}"
 	不加引号
	与双引号类似,支持花括号(通配符)
` `    反引号,==$( )与后者作用相同,与双引号类似解析命令
		echo $LANG {1..5}
		优先执行里面的命令
重定向符号

含义
改变数据流向
箭头的方向就是水流方向

	>1>
				标准输出重定向
				先清空文件内容再写入
	>>1>>
				标准输出追加重定向
				追加内容到文件尾部
	2>
				标准错误输出重定向
				先清空文件然后把错误信息写入文件中
	2>>
				标准追加错误输出重定向
				把错误信息追加到文件结尾
	2>&1
				同时把错误信息或正确信息都记录到文件中
				alex >>oldboy.txt  2>>oldboy.txt
	< 或者0<
				标准输入重定向
				用来指引命令从哪里读取数据
				用到小于号的命令 tr  xargs
	<< 或者0<<
				标准追加输入重定向
				只用来和cat配合 向文件中追加多行内容
	cat >>oldboy.txt<<EOF
	
标准输出 数字1    把正确信息写入文件中
错误输出 数字2  命令的错误提示写入到文件,定向任务会用到
 数字0 用于和特定命令配合

我们看一下2>&1↓↓↓↓↓↓

[✡root@oldboy /tmp]# alex   >>oldboy.txt    2>&1
[✡root@oldboy /tmp]# echo alex oldboy  >>oldboy.txt    2>&1
[✡root@oldboy /tmp]# cat oldboy.txt 
-bash: alex: command not found
alex oldboy

| 管道符

含义
把前一个命令的结果通过管道传递给后面命令
管道默认传递的是文字符号

find和|xargs配合 
				|xargs 把管道传递的内容从文字符号---->文件名(参数)
				|xargs 后面不支持别名
例子
				find后的 -exec
				把前面的命令依次执行到后面的命令中
找出/oldboy下以.txt结尾的文件并把他们显示(ls -l)
	方法一:反引号
			ls -l `find /oldboy/ -type f -name '*.txt'`
	方法二:管道
		 	find /oldboy/ -type f -name '*.txt'|xargs ls -l
	方法三: -exec
			find oldboy/ -type f -name '*.txt' -exec ls -l {} \;

测试 --创建环境(三种方法)

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

创建环境 
mkdir -p /oldboy/lidao 
touch /oldboy/oldboy{01..5}.txt  /oldboy/lidao/alex{01..5}.txt 

1.反引号

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

2.管道

[?root@oldboy ~]# find oldboy/ -type f -name '*.txt'|xargs ls -l
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex01.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex02.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex03.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex04.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex05.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy01.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy02.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy03.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy04.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy05.txt

如果管道后不加xargs的话
[✡root@oldboy ~]# find oldboy/ -type f -name '*.txt'|ls -l
total 36
-rw-------.  1 root root 1505 Mar 26 14:05 anaconda-ks.cfg
-rw-r--r--   1 root root  686 Mar 28 19:05 bashrc
-rw-r--r--   1 root root 2523 Apr 15 11:54 Centos-7_(1).repo
drwxr-xr-x   3 root root   18 Apr  6 19:20 data
-rw-r--r--   1 root root  712 Apr  7 22:59 day08vim
drwxr-xr-x  81 root root 8192 Apr 10 12:31 etc
drwxr-xr-x   3 root root  119 Apr 16 11:00 oldboy
-rw-r--r--   1 root root   10 Apr 16 10:33 oldboy.txt
-rw-r--r--   1 root root  970 Apr  4 16:13 passwd.bak

3.-exec

[✡root@oldboy ~]# find oldboy/ -type f -name '*.txt' -exec ls -l {} \;
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex01.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex02.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex03.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex04.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/lidao/alex05.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy01.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy02.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy03.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy04.txt
-rw-r--r-- 1 root root 0 Apr 16 11:00 oldboy/oldboy05.txt
表示位置
	~   用户的家目录
	..	当前目录的上级目录
	.	点开头的隐藏文件  一个点当前目录
	-   切换上一次的目录  cd -  su -
表示简单判断
	&&	 and 并且,当前一个指令执行成功时,执行后一个指令
	||	 or  或者,当前一个指令执行失败后,执行后一个指令
表示判断
	#   
		配置文件注释
		root用户命令提示符
		
 	$  
		变量前需要加的符号
		取变量内容 $LANG $PATH
		
	$( ) ==`` 反引号
	
	;    
		命令结束,连续不同命令的分隔符
		
	!    
		逻辑运算中的“非”(not)
		
	!ls  
		找出最近一次使用过的以ls开头的命令并执行
		
	history |grep ls
		利用管道筛选历史记录
		

※通配符

	作用
		方便我们查找想要的文件或目录
		通==通用 Linux下面大部分命令可以使用
		*.txt  *.log  *.conf
[✡root@oldboy /tmp]# echo A{A,B}
AA AB
[✡root@oldboy /tmp]# echo A{,B}
A AB
[✡root@oldboy /tmp]# cp oldboy.txt oldboy.txt {,.bak}
cp: target ‘.备份’ is not a directory
[✡root@oldboy /tmp]# cp oldboy.txt oldboy.txt{,.bak}
cp: target ‘oldboy.txt.bak’ is not a directory
[✡root@oldboy /tmp]# cp oldboy.txt{,.bak}

符号

	*   	所有任何
	{ }		生成序列 
	?		代表任意一个单个字符,有几个问号代表几个字符
	[ ]
	[^]

小扩展

在这里插入图片描述

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值