在之前的博客《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下的有用命令的更多相关文章

  1. Linux下的find命令2

    :续linux下的find命令 Linux/Unix下非常有用的find命令的用法 功能简述:find(查找)主要沿着文件层次(目录)结构依次向下遍历,匹配符合条件的文件,可以附带执行相应的操作选项, ...

  2. linux下显示dd命令的进度:

    linux下显示dd命令的进度: dd if=/dev/zero of=/tmp/zero.img bs=10M count=100000 想要查看上面的dd命令的执行进度,可以使用下面几种方法: 比 ...

  3. [转] 关于linux下通过shell命令(自动)修改用户密码

    关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...

  4. linux下安装7z命令及7z命令的使用

    本文主要介绍了在linux下安装7z命令的方法,同时介绍了7z命令的使用.7z压缩格式拥有众多优点,具有极高的压缩比率,如果你还不了解,请看文章:7z格式.LZMA压缩算法和7-Zip详细介绍. re ...

  5. 将linux下的rm命令改造成移动文件至回收站【转】

    转自:http://blog.csdn.net/a3470194/article/details/16863803 [-] 将linux下的rm命令改造成移动文件至回收站 将AIX下的rm命令改造成移 ...

  6. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  7. linux下常用FTP命令

    linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...

  8. Linux下的管道命令有这些:

    Linux下的管道命令有这些: 选取命令:cat grep 排序命令:sort wc uniq 双向重定向:tee 字符转换命令: tr, col, join, paste, expand 切割命令: ...

  9. Linux下使用ps命令来查看Oracle相关的进程

    Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...

随机推荐

  1. React-Native(二):React Native开发工具vs code配置

    从网上翻阅了一些开发react-native的开发工具时,发现其实可选的工具还是比较多的Sublime Text,WebStrom,Atom+Nuclide,vs code 等.因为我用.net生态环 ...

  2. 基于OpenCV单目相机的快速标定--源码、工程、实现过程

    相机的标定是所有人走进视觉世界需要做的第一件事,辣么多的视觉标定原理解释你可以随便在网上找到,这里只讲到底如何去实现,也算是给刚入门的朋友做个简单的分享. 1.单目相机标定的工程源码 首先请到同性交友 ...

  3. 存储过程学习笔记(SQL数据库

    一.   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...

  4. maven引入本地jar 打jar包

    没搭建私服的情况下引入本地的jar,并把本地jar打包进项目的run jar 以打包引入hadoop-common-2.7.5.jar为例 引用 复制jar包所在的路径 打开cmd命令提示符 切换路径 ...

  5. [LeetCode] Find Mode in Binary Search Tree 找二分搜索数的众数

    Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred ...

  6. ios、移动端 input type=date无法点击的问题解决方法

    正常用input type = "text",获取焦点的时候,将type 改成 date即可. <div class="form-item"> &l ...

  7. tarjan——cogs 1298 通讯问题

    1298. 通讯问题 ★   输入文件:jdltt.in   输出文件:jdltt.out   简单对比 时间限制:1 s   内存限制:128 MB [题目描述] 一个篮球队有n个篮球队员,每个队员 ...

  8. SQL注入 手注与联合注入

    SQL注入,吧sql命令插入到WEB表单,或输入域名或页面亲求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令:            得到数据库用户名和密码 1:在以,{ .asp?id=32( ...

  9. [TJOI 2016&HEOI 2016]排序

    Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这 ...

  10. [SDOI2009]虔诚的墓主人

    题目描述 小W是一片新造公墓的管理人.公墓可以看成一块N×M的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块还没有归属的墓地. 当地的居民都是非常虔诚的基督徒,他们愿意提前为自己找一块合适墓地. ...