我最常用的linux命令

杂记

1
find -name "xxx.xxx"
1
grep "xxxcontext" -rn ./
1
2
3
$export PATH=$PATH:/home/xxx/xxx/xxx可执行文件目录
$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/xxx/lib依赖库的路径
1
tar -czvf 123.tar.gz ./*
1
tar -xzvf xxx.tar.gz

bz2为-j

1
sz xxx.so
1
rz -bye
1
netstat
  • tail -f
  • sudo tcpdump -n -iany port 10098
  • diff file1 file2
  • md5sum 文件名

ldd

  • ldd

    作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。

示例:查看test程序运行所依赖的库:

1
2
3
4
5
6
/opt/app/todeav1/test$ldd test
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003996400000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003995800000)
/lib64/ld-linux-x86-64.so.2 (0x0000003995400000)
  • 第一列:程序需要依赖什么库
  • 第二列: 系统提供的与程序需要的库所对应的库
  • 第三列:库加载的开始地址

通过上面的信息,我们可以得到以下几个信息:

  1. 通过对比第一列和第二列,我们可以分析程序需要依赖的库和系统实际提供的,是否相匹配
  2. 通过观察第三列,我们可以知道在当前的库中的符号在对应的进程的地址空间中的开始位置

如果依赖的某个库找不到,通过这个命令可以迅速定位问题所在;

注解

原理: ldd不是个可执行程式,而只是个shell脚本; ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程式工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。

查看链接库

ldd -r libxxxx.so

split

Linux split命令用于将一个文件分割成数个。

该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

语法

1
split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

参数说明

  • -<行数> : 指定每多少行切成一个小文件
  • -b<字节> : 指定每多少字节切成一个小文件
  • –help : 在线帮助
  • –version : 显示版本信息
  • -C<字节> : 与参数”-b”相似,但是在切 割时将尽量维持每行的完整性
  • [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

实例

使用指令”split”将文件”README”每6行切割成一个文件,输入如下命令:

1
$ split -6 README #将README文件每六行分割成一个文件

wc

全称

wc是一个用于统计的工具,全拼为:Word Count(单词统计)

实例:

\1. 统计行数

1
$wc –l file

\2. 统计单词数

1
$wc –w file

\3. 统计字符数

1
$wc –c file

\4. 统计流中的字符数

1
$echo –n 1234 | wc –c

其它

输出日期:

输出今天

1
date -d "today" "+%Y%m%d"

20180717

输出前一天

1
date -d "1 day ago" "+%Y%m%d"

1.整数比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
1
2
3
4
5
6
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

本文标题:我最常用的linux命令

文章作者:Yang Shuai

发布时间:2019年06月10日 - 10:06

最后更新:2019年06月10日 - 11:06

原始链接:https://ysbbswork.github.io/2019/06/10/我最常用的linux命令/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!