Tips

原文作者:Víctor López Ferrando

原文地址:30 interesting commands for the Linux shell

这些是我收集了多年的Linux shell的30个有趣的命令和提示。

1. 监控命令(每2秒运行一次)

watch "ls -larth"

2. 使用一个端口杀死程序

sudo fuser -k 8000/tcp

3. 限制以下命令的内存使用

ulimit -Sv 1000       # 1000 KBs = 1 MB
ulimit -Sv unlimited # Remove limit

4. 使用正则表达式重命名所选文件

rename 's/\.bak$/.txt/' *.bak

5. 获得完整的文件路径

readlink -f file.txt

6. 列出tar.gz文件的内容,并只提取一个文件

tar tf file.tgz
tar xf file.tgz filename

7. 按照文件大小列出文件

ls -lS

8. 跟踪路由

mtr google.com

9. 查找文件的提示

find . -size 20c             # By file size (20 bytes)
find . -name "*.gz" -delete # Delete files
find . -exec echo {} \; # One file by line
./file1
./file2
./file3
find . -exec echo {} \+ # All in the same line
./file1 ./file2 ./file3

10. 打印无限循环的文本

yes
yes hello

11. 当前登录用户

w

12. 输出结果前置行号

ls | nl

13. Grep使用Perl风格的语法(允许像\t这样的字符)

grep -P "\t"

14. Cat命令反向输出(从末端开始)

tac file

15. 检查每个目录中的文件的的权限

检测权限错误是很有用的,例如在配置web服务器时。

namei -l /path/to/file.txt

16. 每次修改文件时都会执行命令

while inotifywait -e close_write document.tex
do
make
done

17. 复制到剪贴板

cat file.txt | xclip -selection clipboard

18. Latex的拼写和语法检查

detex file.tex | diction -bs

你可能需要安装以下内容:sudo apt-get install diction texlive-extra-utils

19. 检查资源的使用情况

/usr/bin/time -v ls

20. 文件的随机行

cat file.txt | sort -R
cat file.txt | sort -R | head # Pick a random sambple # Even better (suggested by xearl in Hacker news):
shuf file.txt

21. 在离开SSH会话后保持程序运行

如果程序不需要任何交互:

nohup ./script.sh &

如果你需要手动输入一些内容,然后离开:

./script.sh
<Type any input you want>
<Ctrl-Z> # send process to sleep
jobs -l # find out the job id
disown -h jobid # disown job
bg # continue running in the background

当然,也可以使用screentmux来完成此目的。

22. 在有限的时间内运行命令

timeout 10s ./script.sh

# Restart every 30 minutes
while true; do timeout 30m ./script.sh; done

23. 从两个排序文件中合并行

comm file1 file2

打印这三列:

  1. file1独有。
  2. file2独有。
  3. 在行file1和行file2中都有。

使用选项-1-2-3,可以删除这些列。

24. 在文件中分割长文件,使用相同数量的行

split -l LINES -d file.txt output_prefix

25. 刷新交换分区

如果一个程序消耗了太多的内存,交换分区就会被剩余的内存填满,当你回到正常的时候,一切都是缓慢的。只需重新启动交换分区来修复它:

sudo swapoff -a
sudo swapon -a

26. 修复ext4文件系统的superblock问题

sudo fsck.ext4 -f -y /dev/sda1
sudo fsck.ext4 -v /dev/sda1
sudo mke2fs -n /dev/sda1
sudo e2fsck -n <first block number of previous list> /dev/sda1

27. 创建给定大小的空文件

fallocate -l 1G test.img

28. 从命令行操作PDF文件

joinshuffleselect等命令相比,pdftk是个更好用的命令:

pdftk *.pdf cat output all.pdf        # Join PDFs together
pdftk A=in.pdf cat A5 output out.pdf # Extract page from PDF

还可以使用cpdf操作内容:

cpdf -draft in.pdf -o out.pdf      # Remove images
cpdf -blacktext in.pdf -o out.pdf # Convert all text to black color

29. 根据生成的输出监视进度

# Write random data, encode it in base64 and monitor how fast it
# is being sent to /dev/null
cat /dev/urandom | base64 | pv -lbri2 > /dev/null # pv options:
# -l, lines
# -b, total counter
# -r, show rate
# -i2, refresh every 2 seconds

30. 在Ubuntu中找到一个文件的包

apt-file update
apt-file search dir/file.h

Tips

“本译文仅供个人研习、欣赏语言之用,谢绝任何转载及用于任何商业用途。本译文所涉法律后果均由本人承担。本人同意简书平台在接获有关著作权人的通知后,删除文章。”

Linux shell下30个有趣的命令的更多相关文章

  1. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  2. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  3. Linux系统下文件压缩与打包命令

    Linux系统下文件压缩与打包命令 常用的压缩文件拓展名 * .Z * .zip * .gz * .bz2 * .xz * .tar * .tar.gz * .tar.bz2 * .tar.xz 压缩 ...

  4. Linux shell 下简单的进度条实现

    Linux shell 下简单的进度条实现 [root@db145 ~]# cat print_process.sh function Proceess(){ spa='' i= ] do print ...

  5. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  6. Linux系统下远程文件拷贝scp命令

    在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...

  7. Linux系统下常用的磁盘管理命令——du / df / fdisk / mount / xxd

    之前使用虚拟机体验Linux操作系统的使用,一般使用默认的磁盘分区设置,也很少涉及磁盘管理操作,且总有删除重装作为后盾.在安装Ubuntu双系统后,在使用过程中遇到了磁盘分区不合理导致的/boot分区 ...

  8. Linux Shell 下的输出重定向

    linux 环境中支持输入输出重定向,用符号<和>来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出, 可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表 ...

  9. linux shell下除了某个文件外的其他文件全部删除的命令

    Linux反选删除文件 最简单的方法是 # shopt -s extglob      (打开extglob模式) # rm -fr !(file1)  如果是多个要排除的,可以这样: # rm -r ...

随机推荐

  1. js 时间加减

    //js格式化时间 "yyyy-MM-dd hh:mm:ss" Date.prototype.Format = function (fmt) { var o = { "M ...

  2. jQuery动画animate方法使用介绍

    用于创建自定义动画的函数. 返回值:jQuery animate(params, [duration], [easing], [callback]) 如果使用的是“hide”.“show”或“togg ...

  3. ObservableCollection<T> 类

    命名空间: System.Collections.ObjectModel程序集: System(在 System.dll 中)XAML 的 XMLNS: 未映射到 xmlns. 添加:using Sy ...

  4. Android Studio 之 打包项目生成APK

    本文以使用Android Studio打包第一个apk的角度说明,打包APK分为两步:1生成 jks 密钥:2打包生成APK. 选择“ Build ”→选择“ Generate Signed APK. ...

  5. 1050: 贝贝的ISBN号码(isbn)

    #include <iostream> #include <iomanip> #include <cstdlib> #include <string> ...

  6. Hadoop创建新用户

    HDFS本身并没有提供用户名.组等的创建和管理,在客户端操作Hadoop时,Hadoop自动识别执行命令所在的进程的用户名和用户组,然后检查是否具有权限.启动Hadoop的用户即为超级用户,可以进行所 ...

  7. HDFS之FileStatus

    任何文件系统的一个重要特性都是提供其目录结构浏览和检索它所存文件和目录相关信息的功能.FileStatus对象封装了文件系统中文件和目录的元数据,包括文件的长度.块大小.备份数.修改时间.所有者以及权 ...

  8. 你所了解到的Web攻击技术

    (1)XSS(Cross-Site Scripting,跨站脚本攻击):指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或者JavaScript进行的一种攻击.(2)SQL注入攻 ...

  9. ios网络学习------9 播放网络视频

    IOS提供了叫做MPMoviePlayerController  MPMoviePlayerViewController两个类.能够轻松用来实现视频播放. MPMoviePlayerViewContr ...

  10. 【Java多线程】线程同步方法概览

    一:使用syncrhoized内置锁实现同步 使用互斥来实现线程间的同步,保证共享数据在同一时刻只被一个线程使用.Java中最基本的互斥手段就是syncrhoized关键字. syncrhoized的 ...