0

盘点一些常用的Linux小技巧

 2 years ago
source link: https://os.51cto.com/article/701794.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1、查看文件校验值

在文件进行拷贝或者进行传输的时候,可能有损坏或者被修改的可能,这时候可以查看校验值来确认一下。比如我们平时工作需要用到其它组给我们提供的一些对接的程序,每次程序运行不符合他们的预期的时候,我们都会对一下两边的md5校验值。

生成文件的校验值的方法有很多种,常用的有md5sum校验、crc校验、sum校验等。

命令分别为:

md5sum file_name
cksum file_name
sum 算法参数 file_name

我们以一个test.txt文件为例:

  • md5sum校验
md5sum test.txt

e6c1fbb9512be7e5cdd571773b0f78d34749fe.png

  • crc校验
cksum test.txt

69e4a9456945c09756904747e7605a5dc8cf78.png

  • sum校验

sum校验有两种算法,我们可以通过参数进行配置:

-r:表示使用system v算法。

-s:表示使用BSD算法。

我们不进行配置时,默认用的是system v算法。

sum -r test.txt
sum -s test.txt

41f2e30034dee525375617ab7e3df293bbd5c7.png

2、查找文件位置

(1)locate

查找文件大家一般都习惯用find吧,但我觉得有时候locate更快一些,所以我一般都会先使用locate。

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。locate 的速度比 find 快,它并不是真的查找,而是查数据库。

有些系统可能不带有locate,需要自己安装。比如,Ubuntu可以输入如下命令进行安装:

apt-get update
apt-get install mlocate

locate查找文件的命令很简单:

lcoate file_name

12241b5683d290f5ab6464ab4c54600719079d.png

(2)find

find命令可以用名字、类型、所属人、大小等来进行搜索。

搜索文件基本语法:

find path -option file_name

如使用名字来搜索stdio.h文件:

find / -name stdio.h

993a640269fa102c08d96138e52617300d91a1.png

3、命令行编辑技巧

我们在终端里误输入了一些比较长的内容:

LinuxZn@LinuxZn:~$ dsfdsfdddddddddddddddddddddddddddddddddddfsgadgdsgasdgsdhfdkshfkjdshflksdhfkldshfkj

b2ace70517c5f7370be692d3cdf2243bb81777.png

怎么比较快的删除掉呢?疯狂地按退格键当然可以达到目的。但是有更快速的方法:

输入快捷键 ctrl+u 即可把光标前面的内容全删掉。除此之外,还有如下几个实用且常用的快捷键:

  • ctrl+k:把光标后面的内容全删掉。
  • ctrl+a:光标移到开头处。
  • ctrl+e:光标移动到末尾处。

除此之外,命令行还有很多实用常用、实用不常用的快捷方式,感兴趣的小伙伴可以自己去学习。

4、查看某个进程的pid

pidof process_name

86dda2080e700dce61025174def9801cc381a6.png

5、查看某些进程的一些运行情况

top命令可以查看进程的一些信息,但是系统运行的进程过多,不利于我们查看某些进程的运行情况,如:

56a9d70195875820a40773d9528001a85deb8d.png

这时候我们可以通过如下命令查看指定进程的运行情况,例如:

查看kcalc进程的情况,命令:

top -p `pidof kcalc`

626b10b849ad57e4595433e611b0e31decc3ca.png

这就简洁多了。

这里的 `号 并不是单引号!!!

这里的 `号 并不是单引号!!!

这里的 `号 并不是单引号!!!

这个符号在键盘上感叹号!键的左边。

查看多个进程,如:

top -p `pidof kcalc` -p `pidof test_x86`

556f16f396056df98bd038bea9ab361d402e7c.png

6、杀死进程

(1)使用kill

先使用pidof查看进程的pid,然后再使用kill命令:

kill -9 process_pid

41717e00626efcd16a5475cd4cbc4f52b770a6.png

(2)使用killall

使用killall,命令:

killall process_name

1578d8a92bca7feddd1715f4e14d3b57fb9262.png

7、终端输出的log同时保存到文件

有时候我们需要把终端实时输出的log信息保存到文件中,有如下两种方法。这三种方法也在之前的文章里写过,这里再简单提一下:

(1)tee

tee工具 用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是 把数据重定向到给定文件和屏幕上 。

executable_file | tee log_file

演示如下:

950940b0767906bd9d800752ff889bea0d8d2d.png

(2)script

script工具 是一个非常使用的工具,可以把输出到终端的信息记录下来。使用步骤如:

  • 输入 script log.txt 命令开始保存终端输出的信息 ,其中log.txt为需要写入的log文件,可随意命名。
  • 输入 exit 退出保存。

演示如下:

164e6a254bb8e9247165005b9276bbab7af87b.png

(3)使用一些可以保存log的终端工具

一些终端工具具有记录日志的功能,比如T Terminator终端 :

2691d09202eb090f1c79384c7fbcaf86d3f52d.png

8、查看程序依赖的动态库

有些程序依赖一些动态库,可以通过ldd命令查看依赖的动态库。命令:

ldd executable_file

f49c70621758485026c3328d9654a6cc4400bf.png

9、查看ELF文件头

ELF文件有几种,可查看往期文章 ELF文件解析 进行了解。之前刚来的一位应届生,编译了一份程序,编译没报错,但是一直运行不起来。然后在PC上运行有问题,报错如:

无法执行二进制文件: 可执行文件格式错误

原因是他那份工程里设置了使用交叉编译器进行编译,但是他却在PC运行,所以就报错了。

我们可以可执行文件的ELF头,ELF头包含了很多信息,其中就包括有系统架构这一项。命令如:

readelf -h elf_file

55f074515f81165d962115392a8e2f3a120e92.png

b69e20342386f99b336980a10c6264200fb785.png

除此之外,通过file命令也可以查看到文件的一些信息:

93c1f4d41b6e8f1eaf61337e1c2f91ab59eeff.png

10、文本文件查看

文本文件查看我们一般使用cat命令,但除了cat命令之外,还有其它几个实用的命令,下面依次来介绍:

(1)cat命令

cat命令常常用于查看内容较少的文件。很多人把这个命令叫做小猫咪命令,但cat其实是 concatenate(连续) 的缩写,即连续显示文本内容。命令格式为:

cat [参数选项] [文件]
cat -n /etc/profile

657cf4a6902124f884d72356f45bfd2e7dcdc2.png

其中,加上参数 -n 用可以显示行数。cat的更多的参数选项可以输入 man cat 进行查看。以下列举的其他命令的详细介绍也可以输入 man 命令 进行查看。

(2)tac命令

tac命令的正好与cat命令相反,是从文件末尾开始显示。

(3)more命令

more命令适用于查看内容较多的文件。因为他可以实时显示百分比以提示现在已经阅读了多少内容。

命令格式为:

more [参数选项] [文件]

57b065981fcae397ae27448498fd2d2c191dac.jpg

可以使用 空格键 或者 回车键 往下翻页查看后面的内容。

(4)less命令

less也适用于查看内容较多的文件。less比more更为灵活,因为less可以往上、往下翻页。按下键盘上 PgUp 键可以往上翻页,按下 PgDn 可以往下翻页。但是less命令不会实时显示当前阅读的百分比。

命令格式为:

less [参数选项] [文件]

(5)head命令

head命令用于查看文件的前n行。如使用命令

head -n 20 /etc/profile

查看/etc目录下profile文件的前20行内容:

71a46628115fac2b16607326b5063d4a0d9887.jpg

(6)tail命令

tail命令与head命令相反,tail命令用于查看文件后n行内容。如:

1195f9d182a47c106f768159a1ffda7db0e0a0.png

(7)nl命令

nl命令可以显示内容的同时显示行号,与 cat -n 命令的作用差不多:

d1b0c4d3674c9ff39d91319ca5e6a0cbb05125.jpg

11、设置LD_LIBRARY_PATH

LD_LIBRARY_PATH 是Linux / Unix中预定义的环境变量,它设置链接器在链接动态库/共享库时应该查看的路径。有时候需要把当前路径加到LD_LIBRARY_PATH中,如:

export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH

以上就是本次分享的一些实用的小技巧。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK