Linux下的有用命令
在之前的博客《Linux下常用命令与使用技巧》中,介绍了Linux的常用命令,在今天的博客中,给大家介绍其他的有用命令。
1.文本转换命令
在Linux下工作,我们不可避免地要和文件格式做斗争,相信大家也深刻地体会过格式的复杂性。今天给大家介绍几个在实际中经常用到的和格式相关的命令。
1.1 export命令
在linux命令行中输入汉字的时候有时候会显示乱码,这时我们就需要设置一下系统的编码方式。可以先用locale命令查看当前的编码方式,如果不是zh_CN.utf8,我们就可以通过export命令进行设置,设置命令如下:
export LC_ALL=zh_CN.utf-8
通过上面的命令就可以将系统格式设置成utf8,当然也可以设置成其他格式。但是utf8是Linux下默认的编码方式,建议设置成utf8。
1.2 convmv命令
有时候,我们在将windows下的文件拷贝到linux下的时候,会出现文件名乱码。这是因为windows下默认的编码方式是gbk,而linux下是utf8,编码方式不一致导致gbk的文件名无法正常显示。这时可以通过convmv命令进行文件名的转码,常用选项如下:
选项 | 说明 |
---|---|
-f enc | 原文件名的编码方式 |
-t enc | 新的编码方式 |
-r | 递归处理整个目录下的所有文件 |
-notest | 实际做转码,否则只是列出哪些文件需要转码 |
例如我们将windows某个目录下的所有文件拷贝到linux下,然后对其进行转码:
convmv –f gbk –t utf8 –notest –r dir/*
1.3 iconv命令
很多情况下,我们并不只有文件名是gbk编码,文件内容也是gbk的,这时我们就需要对文件内容进行转码,这个可以通过iconv命令实现,常用选项如下:
选项 | 说明 |
---|---|
-f,–from-code=名称 | 原始文本编码 |
-t,–to-code=名称 | 输出编码 |
-o,–output=FILE | 输出文件 |
注意一点,这个命令不会直接修改文件,如果没有指定输出文件会输出到命令行中,一般会重定向到新文件中:
iconv –f gbk –t utf8 input_file > output_file
1.4 dos2unix/unix2dos命令
有时候,虽然windows下的文件是utf8编码,但是放到linux下还是有点问题。DOS下的文本文件是以\r\n作为断行标志的,而linux下的文本文件是以\n作为断行标志的,用vim打开时有时会在行尾显示^M符号。为了去除这个符号,我们可以利用dos2unix命令。在使用的过程中,在该命令后面直接添加要转换的一个或多个文件即可,该命令就会直接在源文件里进行转换。如果不想覆盖源文件,可以利用-n选项。unix2dos命令的使用方式与dos2unix命令的类似。
2. 进程相关
在Linux下,有时我们想知道某个进程的id,我们可以通过pidof获得。如果一次启动了多个相同的进程,我们可以通过killall一次性杀掉所有相同的进程。这两个命令的参数都是进程的名字。
3. 磁盘相关
在linux下工作,我们有时候会出现磁盘满的情况,可以通过df命令查看各个盘的剩余空间,-h可以让显示更易懂。
除了df命令,还有一个du命令也非常有用。有时我们想统计某个目录占用的空间大小,就可以用du命令。不加任何参数的du命令会递归打印目录下所有文件的大小,我们可以通过参数—max-depth=1来设置只打印给定目录下可见文件和目录的大小,从而避免打印过多。-h也可以让显示更易懂。
4. 文件传输
在linux下,我们可以通过scp命令实现不同机器之间的文件传输,既可以从本地传到远端,也可以从远端传到本地。向远端发送文件的命令格式如下:
scp send_file root@10.136.128.48:/root
但是有时要传递的文件非常大或者文件个数很多,当scp命令没执行完断掉之后下次再进行scp会重新执行全部的复制,这就会导致做了很多无用功。避免此种情况的方法是用rsync命令,rsync也可以实现文件传输,同时针对已经发送的文件不再重复发送。
5. 文件操作
5.1 split命令
当一个文件很大时,可能需要将文件进行切分生成多个小文件,split命令可以实现这个功能。它既可以用来处理文本文件,也可以用来处理二进制文件。既可以按照行数切分,也可以按照字节数切分。
这个命令和shuf命令组合使用就可以达到随机打乱文本加切割的目的。
5.2 basename和dirname命令
这两个命令的作用是对一个包含完整路径的文件名进行切分,切分出该文件名的不包含路径的文件名和单纯的路径名。例如,basename /home/work/test.wav会返回test.wav,dirname /home/work/test.wav会返回/home/work。这个命令在脚本中用的比较多。
5.3 单纯文件名和包含路径文件名
用ls命令可以生成一个目录下所有文件的文件名,但是文件名不包含路径,如果想让文件名包含路径,则可以用find命令实现。例如想获得/home/work/下所有wav文件的文件名,则可以利用下面的命令:
find /home/work –name *.wav >list
生成的文件名列表可以用来遍历这些文件。
5.4 xxd命令
xxd命令为给定的标准输入或者文件做一次十六进制的输出,它也可以将十六进制输出转换为原来的二进制格式。这个命令有什么用呢?举个例子。utf8文件包含两种不同的格式:无bom和有bom。用常规的编辑器打开可能无法区分,但是利用这个命令就可以。用xxd查看文件的开头是否包含EF BB BF这几个字节即可。
6. 代码调试
在调试安卓代码的时候,经常会遇到段错误,提示“Fatal signal 11 (SIGSEGV), code 2, fault addr 0x7faa993968 in tid 27841”,遇到这种错误会让人头大。有一种调试方法可以比较容易定位出错的位置。在上面提示中给出了一个地址,我们可以用arm-linux-androideabi-addr2line命令将地址反编译成出错的函数和行数。
Linux下的有用命令的更多相关文章
- Linux下的find命令2
:续linux下的find命令 Linux/Unix下非常有用的find命令的用法 功能简述:find(查找)主要沿着文件层次(目录)结构依次向下遍历,匹配符合条件的文件,可以附带执行相应的操作选项, ...
- linux下显示dd命令的进度:
linux下显示dd命令的进度: dd if=/dev/zero of=/tmp/zero.img bs=10M count=100000 想要查看上面的dd命令的执行进度,可以使用下面几种方法: 比 ...
- [转] 关于linux下通过shell命令(自动)修改用户密码
关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...
- linux下安装7z命令及7z命令的使用
本文主要介绍了在linux下安装7z命令的方法,同时介绍了7z命令的使用.7z压缩格式拥有众多优点,具有极高的压缩比率,如果你还不了解,请看文章:7z格式.LZMA压缩算法和7-Zip详细介绍. re ...
- 将linux下的rm命令改造成移动文件至回收站【转】
转自:http://blog.csdn.net/a3470194/article/details/16863803 [-] 将linux下的rm命令改造成移动文件至回收站 将AIX下的rm命令改造成移 ...
- Linux下使用mail命令发送邮件
因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...
- linux下常用FTP命令
linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...
- Linux下的管道命令有这些:
Linux下的管道命令有这些: 选取命令:cat grep 排序命令:sort wc uniq 双向重定向:tee 字符转换命令: tr, col, join, paste, expand 切割命令: ...
- Linux下使用ps命令来查看Oracle相关的进程
Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...
随机推荐
- spark算子:combineByKey
假设我们有一组个人信息,我们针对人的性别进行分组统计,并进行统计每个分组中的记录数. scala> val people = List(("male", "Mobi ...
- MySQL 如何使用 PV 和 PVC?- 每天5分钟玩转 Docker 容器技术(154)
本节演示如何为 MySQL 数据库提供持久化存储,步骤为: 创建 PV 和 PVC. 部署 MySQL. 向 MySQL 添加数据. 模拟节点宕机故障,Kubernetes 将 MySQL 自动迁移到 ...
- js实现两种实用的排序算法——冒泡、快速排序
分类:js (4443) (0) 零:数据准备,给定数组arr=[2,5,4,1,7,3,8,6,9,0]; 一:冒牌排序 1思想:冒泡排序思想:每一次对比相邻两个数据的大小,小的排在前面,如果前 ...
- css水平垂直居中的方法与 vertical-align 的用法
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 1. 已知元素宽度 方法一:已知宽高,可以用position定位 + margin负值的方法 : 绝对定位 ...
- 3.3.4 配置Tomcat的<Context>元素 (转)
本章3.3.2节已经介绍了在Tomcat中发布JavaWeb应用的最快捷的方式,即只需把JavaWeb应用的所有文件复制到<CATALINA_HOME>/webapps目录下即可,Tomc ...
- Go/Python/Erlang编程语言对比分析及示例
本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴 ...
- WKWebView和WebView与JS的交互方式
UIWebView与JS的交互方式 一,OC调用JS直接调用苹果提供的API - (nullable NSString *)stringByEvaluatingJavaScriptFromString ...
- [SCOI 2016]幸运数字
Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一 ...
- LOJ #6031 字符串
Description Solution 当 \(k\) 值较小时,发现询问串比较多,串长比较小 然后对 \(Q\) 个询问区间离线跑莫队,一次考虑每一个区间的贡献 假设一个区间 \([i,j]\) ...
- 【BZOJ3573】【HNOI2014】米特运输
Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. D星上有N个城市,我们将其顺序编号为1到N,1号城市 ...