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 ...
随机推荐
- C++ STL基本容器使用
1:关联容器和顺序容器 c++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector.list.deque等.其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的 ...
- 单例模式详解及java常用类
[单例模式] 确保某一个类,只能产生一个实例. 设计思路: ====将构造函数私有化,确保类外部,不能使用new关键字自行创建对象. ====在类内部实例化一个对象,并通过静态方法返回. ( ...
- windows汇编环境配置
原文地址 软件下载 需要的软件已经打包,包括dosbox和MASM.如果没有这两个软件可以在下面的地址下载. http://hjwblog.com/game/汇编环境.zip 点击下载 安装dosbo ...
- [python]使用django快速生成自己的博客小站,含详细部署方法
前言 人生苦短,我用python 这是之前经常听到的一句笑谈.因为新公司很多业务是用的python语言,所以这几天也一直在学习python的一些东西. 作为一个之前一直java后端的开发人员,对比ja ...
- 实验吧_拐弯抹角(url伪静态)&Forms
拐弯抹角 先贴代码 <?php // code by SEC@USTC echo '<html><head><meta http-equiv="chars ...
- [BZOJ 3456]城市规划
Description 题库链接( bzoj 权限题,可以去 cogs 交♂ 题库链接2 求含有 \(n\) 个点有标号的简单无向联通图的个数.方案数对 \(1004535809(479\times ...
- SAC E#1 - 一道中档题 Factorial
题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服 ...
- [NOI2005]寿司晚宴
题目描述 为了庆祝NOI的成功开幕,主办方为大家准备了一场寿司晚宴.小G和小W作为参加NOI的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了n−1种不同的寿司,编号1,2,3,⋯,n-1 ...
- NOIP2014-5-17模拟赛
Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一届的学弟学妹,邪恶的chenzeyu97发现一位学弟与他同名,于是他当起了善良的学长233 "来来来,学 ...
- hdu 5445 多重背包
Food Problem Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)To ...