Linux 小技巧总结

概述

这里列举了我常用的一些Linux命令行下的技巧,希望对大家有帮助。

1. 按行合并2个文件

即第一个文件的第一行接第二个文件的第一行,然后是第一个文件的第二行和第二个文件的第二行,举例: a.txt

1
2
3

b.txt

a
b
c

期望的结果:

1
a
2
b
3
c

命令:

paste -d '\n' a.txt b.txt > c.txt

2. 删除行尾多余的\r

一般在Windows平台创建的文件行尾有多余的\r,在Linux命令行操作的时候会报错。 命令:

# method 1:
tr -d '\r' < infile > outfile

# method 2:
cat infile |sed 's/\r$//g' >> outfile

3. 批量创建目录

例如我想创建dir1,dir2, … dir100的目录。 命令:

mkdir dir{1..100} # 创建目录dir1, dir2, dir3, ... dir100
mkdir {1..100} # 创建目录1,2,3,... 100

4. 删除特定目录的所有空文件或空目录

命令:

# 删除空目录
find /path/to/target/dir -type d -empty -exec rmdir {} \;
# 删除空文件
find /path/to/target/dir -type f -empty -exec rm {} \;

5. 删除名字中包含特殊字符的文件或目录

在rm后面加--,然后对文件名加双引号。 命令:

rm -- "--abc"
rm -- ")abc"

6. 查找目录下所有文件中包含特定字符串的文件

如要搜索当前目录中包含include的所有文件。 命令:

grep -RIn "include" * # R:递归搜索,I:区分大小写,n:显示行号

7. ls命令只列出目录/文件

命令:

# 只列出目录
ls  -l /path/to/dir |grep '^d' 
# 只列出文件
ls  -l /path/to/dir |grep '^-'

8. 统计目录下的文件和目录数

命令:

ls /pat/to/dir |wc -l

9. 按数字顺序对文件每行排序

如文件a.txt如下:

10
12
13
1
2
15
16

期望得到的结果文件b.txt:

1
2
10
12
13
15
16

命令:

sort -n a.txt > b.txt

10. 显示当前系统安装的lib文件的版本

命令:

ldconfig -v |grep libname

11. 显示系统所有安装的软件包

apt list --installed # 不加--installed 选项则会列出源里面的所有包名

12. 查看硬盘读写情况

iostat

13. 动态地查看某个命令的输出结果

watch -n 1 nvidia-smi # -n 后面的参数表示刷新的秒数

14. 删除某个文件中所有不包含某个字段的行

如文件a.txt如下:

ustc-123
ustc-222
ustc-bcd
fdu-222
pku-222

现在要删除不包含ustc的所有行,得到b.txt如下:

ustc-123
ustc-222
ustc-bcd

命令:

sed '/ustc/!d' a.txt > b.txt

15. 删除某个文件中包含特定字段的所有行

sed '/ustc/d' a.txt > b.txt

16. 查找局域网里面所有的联网机器的IP

sudo nmap -sP 192.168.110.0/24

17. 不同机器间同步数据

rsync -aPhv src  --exclude "excluded_dir" user@host:~/dst

rsync命令的详细用法可以参考这里

18. 通过ssh在远端执行命令

例如我想在本地屏幕上显示在远程服务器上执行某条命令的结果。

ssh user@host command

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Attentional Pooling for Action Recognition 论文阅读笔记

    这是2017年NIPS上的一篇做动作识别的论文,作者提出了second-order pooling的低秩近似attentional pooling,用其来代替C...

    王云峰
  • Linux服务器增加硬盘操作记录

    最近我们实验室的GPU服务器数据空间不够用了,老师让我联系公司来增加硬盘。我这里记录一下对Amax公司生产的GPU服务器增加硬盘的步骤。 机器的参数:

    王云峰
  • Caffe中的Siamese网络

    Siamese原意是”泰国的,泰国人”,而与之相关的一个比较常见的词是”Siamese twin”, 意思是是”连体双胞胎”,所以Siamemse Networ...

    王云峰
  • Linux终端命令——cp

    cp(Copy file):将源文件复制至目标文件,或将多个源文件复制至目标目录。

    瑞新
  • mirdeep2识别novel miRNA

    得益于NGS测序技术和生物信息学的发展,我们可以通过NGS测序数据识别新的miRNA,大大加快了miRNA的研究进程。

    生信修炼手册
  • 无人驾驶汽车困难重重,原来是道德问题

    Google的无人驾驶汽车已经发生了很多事故,前几天,Google披露在7月1日的一次测试中,一辆经过Google改装的雷克萨斯SUV在加州山景城遭到追尾,车上...

    机器人网
  • APP 申请微信支付时提示:"你输入的APPID认证主体名称与实际认证主体不一致。。。 "

    泥豆芽儿 MT
  • 原来你竟然是这样的txt?

    经常有同学问我,老师为啥同样的格式的两个文件我用同样的方法导入到Python里面,一个可以正常导入,一个却会报错,这是为什么呢?你应该也有遇到过这种情况,就是表...

    张俊红
  • 13-6 编辑多个文件和保存

    见贤思齊
  • centos中如何创建一个txt文件 原

    (adsbygoogle = window.adsbygoogle || []).push({});

    拓荒者

扫码关注云+社区

领取腾讯云代金券