Linux 下查看文件字符编码和转换编码 如果你需要在 Linux 中操作 windows 下的文件,那么你可能会经常遇 到 文 件 编 码 转 换 的 问 题 。 Windows 中 默 认 的 文 件 格 式 是 GBK(gb2312),而 Linux 一般都是 UTF-8。下面介绍一下,在 Linux 中如何查看文件的编码及如何进行对文件进行编码转换。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网页空间、营销软件、网站建设、龙华网站维护、网站推广。
一,查看文件编码: 在 Linux 中查看文件编码可以通过以下几种方式:
1.在 Vim 中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱 码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样, 就可以让 vim 自动识别文件编码 (可以自动识别 UTF-8或者 GBK 编码的文件) ,其实就是依照 fileencodings 提供的编码列表尝试,如 果没有找到合适的编码,就用 latin-1(ASCII)编码打开。
2. enca (如果你的系统中没有安装这个命令,可以用 sudo yum install -y enca 安装 )查看文件编码 $ enca filename filename: Universal transformation format 8 bits; UTF-8 CRLF line terminators 需要说明一点的是,enca 对某些 GBK 编码的文件识别的不是很好,识 别时会出现: Unrecognized encoding
二,文件编码转换
1.在 Vim 中直接进行转换文件编码,比如将一个文件转换成 utf-8格式 :set fileencoding=utf-8
2. iconv 转换,iconv 的命令格式如下:输入/输出格式规范: -f, --from-code=名称 原始文本编码 -t, --to-code=名称 输出编码 信息: -l, --list 列举所有已知的字符集 输出控制: -c 从输出中忽略无效的字符 -o, --output=FILE 输出文件 Svn8.Com -s, --s ilent 关闭警告 --verbose 打印进度信息 -?, --help 给出该系统求助列表 --usage 给出简要的用法信息 -V, --version 打印程序版本号 例子: iconv -f utf-8 -t gb2312 aaa.txt bbb.txt 这个命令读取 aaa.txt 文件,从 utf-8编码转换为 gb2312编码,其输出定向到 bbb.txt文件。 iconv -f encoding -t encoding inputfile 比如将一个 UTF-8 编码的文件转换成 GBK 编码 iconv -f GBK -t UTF-8 file1 -o file2
3. enconv 转换文件编码 比如要将一个 GBK 编码的文件转换成 UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename
i).在 Vim 中可以直接查看文件编码(shift + :)输入set fileencoding 即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用 Vim 查看文件乱码的问题,那么你可以在 ~/.vimrc 文件中添加以下内容: set
encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 这样, 就可以让 vim 自动识别文件编码
(可以自动识别 UTF-8或者 GBK 编码的文件) ,其实就是依照 fileencodings
提供的编码列表尝试,如果没有找到合适的编码,就用 latin-1(ASCII)编码打开。
ii). enca (需要安装)查看文件编码:$enca filename filename: Universal
transformation format 8 bits; UTF-8 CRLF line terminators 需要说明一点的是,enca
对某些 GBK 编码的文件识别的不是很好,识别时会出现: Unrecognized encoding
iii)还有一种很简单的方式,file 文件名 可以查看非elf文件的编码格式
运维管理命令
netstat -nap 查看系统正在开放的端口
netstat -tnlp | grep 80 查看哪个服务占用了80端口(-t表示只列出tcp协议的连接)
netstat -anptu | grep tcp 查看当前开放的所有tcp端口
rm -r 文件名 删除文件 (-r 递归) (-f 强制)
rm -rf ./* 删除当前目录里的所有文件
mv 文件路径 目标路径 移动文件到指定目录
mv 文件名a 文件名b 将文件名a重命名为文件名b
mv ./* ../ROOT/ 把当前目录下的所有文件移动到上级目录的ROOT文件夹里面
cp 起始路径 目标路径 将一个文件从一个地址复制到另一个地址
cp 文件1 文件2 将文件1复制一份命名为文件2
ssh 远程主机的用户名@远程主机ip 远程登录服务器(如果无法登陆,删除本地.ssh文件里的known_hosts文件里的内容)
scp -r 本地路径 user@ip:服务器路径 将本地文件传到服务器
scp user@ip:服务器路径 本地路径 将服务器文件传到本地
chmod -R 777 文件路径 赋予指定文件所有权限
chmod -R 777 . 以递归的方式修改当前目录下所有文件和子目录的权限
rpm -qa | grep httpd 查询是否安装httpd服务,并列出安装文件
rpm -e 软件名 查询某个软件是否被安装 (只有通过yum安装的才能查询到)
ps -ef | grep java 显示当前进程及参数,并过滤出java程序的进程 { PID表示这个程序的ID,PPID表示这个程序的父程序的ID }
kill PID 立即终止这个进程
crontab -e 编写计划任务(语法格式:分 时 日 月 周 需要执行的命令)
mkdir a 创建一个名称为a的文件夹
touch 文件名.文件格式 创建一个带后缀的文件
du -sh 文件路径 查看指定路径的文件的大小
grep "关键词" 文件名 查找文件中带这个关键词的文件
系统维护命令
service 服务名 start/stop/restart 在deb包管理的系统中开关服务的命令
systemctl start/stop/restart 服务名 在rpm包管理的系统中开关服务的命令
man 命令 解释这个命令
history 数字 显示最近使用的命令
apt-get install 命令符号 安装命令程序
apt-get purge 命令符号 卸载命令程序
which 程序名 搜索某个程序路径
whereis 软件名 搜索某个软件路径
echo $PATH; 查看标准路径目录
dmesg -T 显示系统接入设备日志
sudo nautilus 文件路径 以管理员身份打开文件夹进行删改
df -h 查看磁盘使用情况
fdisk -l 查看分区具体情况
route 检查自己的路由表
traceroute url 检查本机到url的完整路径
git clone github地址 从github下载文件到本地
常用路径的作用
cd /bin 进入根目录下的bin目录
cd bin 进入当前目录下的bin目录
/etc/init.d 系统的启动文件目录,可以使用start启动着里面的文件 如:./bluetooth start 启动蓝牙
/usr/share / 从源安装的软件的文件默认存放地址
windows系
快捷键
Alt + Esc 切换活动窗口
Alt + F4 关闭当前程序
win + D 显示和隐藏桌面
win + I 打开设置
win + M 最小化所有窗口
win + Tab 打开任务视图
Ctrl + win + D 添加虚拟桌面
Ctrl + win + 切换虚拟桌面
Ctrl + win + F4 关闭你正在使用的虚拟桌面
打开服务配置
gpedit.msc 打开组策略
services.msc 打开服务控制
sysdm.cpl 打开系统属性(配置环境变量等操作)
chcp 65001 设置cmd为utf8字符集
c:ProgramDataMicrosoftWindowsStart MenuPrograms windows启动程序路径
在cmd中光标只有在当前行才能 ctrl + v 进行粘贴
windows下的ssh的使用
C:ProgramDatassh sshd_config配置文件所在目录,修改这个文件可以更改ssh连接到win后所在的目录 #ChrootDirectory none 改成 ChrootDirectory C: 然后重启ssh server服务,这样用linux连接到win后就会到 C: 目录下
将linux上的 a.txt文件 复制到windows的 c盘的a文件夹中
scp user@ip:/home/username1/视频/a.txt /c:/a ( -r 递归传送 )
将windows的 c盘的a文件夹中的c.txt文件 复制到linux的中
scp /c:/a/c.txt user@ip:/home/username1/视频/a ( -r 递归传送)
只能在windows系统上操作上面的两条命令,win中的user是用户文件夹里的文件夹名字。
在Mysql安装的目录中找到bin目录,复制此路径到系统属性的‘高级’中的环境变量path里,这样就可以在cmd中运行 mysql -u root -p
Dos命令
1、# echo $LANG2、# env |grep LANG3、# locale以上三个操作,均可查到当前系统所使用的字符集,请看看《linux就该这么学》,linux命令学习方法。
查看字符集 字符集在系统中体现形式是一个环境变量,《Linux就该这么学》,其查看当前终端使用字符集的方式可以有以下几种方式:
1、[root@ ~]# echo $LANG
en_US.UTF-8
2、[root@ ~]# env |grep LANG
LANG=en_US.UTF-8
3、[root@david ~]# export |grep LANG
declare -x LANG="en_US.UTF-8"
4、[root@ ~]# locale -a //查看本地字符集
[root@ ~]# locale -m //查看所有支持的字符集
1、查询
(1) 查看当前服务器字符集: # locale
(2) 查看服务器支持的字符集: # locale -a
2、修改linux系统字符集的方式有如下两种:
(1) 直接设置变量的方式修改,命令如下两条命令:
[root@demo ~]# 或者 export LANG="xxx"
[root@demo ~]# LC_ALL="xxx" 或者 export LC_ALL="xxx"
(备注:xxx为欲修改为的字符集)
查看标准的字符集的方法: locale –a 命令,常用的有: zh_CN.GB2312、
zh_CN.GB18030 或者 zh_CN.UTF-8、en_US.UTF-8等
但是上述修改方式只会在当前shell中生效,新建shell此环境变量消失。
故平时登录系统执行"LANG= "这个命令的时候显示的就没有乱码的缘故,意思就是取消了字符集的显示,