Linux shell下30个有趣的命令
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
当然,也可以使用screen或tmux来完成此目的。
22. 在有限的时间内运行命令
timeout 10s ./script.sh
# Restart every 30 minutes
while true; do timeout 30m ./script.sh; done
23. 从两个排序文件中合并行
comm file1 file2
打印这三列:
- 行
file1独有。 - 行
file2独有。 - 在行
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文件
与join,shuffle,select等命令相比,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个有趣的命令的更多相关文章
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- Linux系统下文件压缩与打包命令
Linux系统下文件压缩与打包命令 常用的压缩文件拓展名 * .Z * .zip * .gz * .bz2 * .xz * .tar * .tar.gz * .tar.bz2 * .tar.xz 压缩 ...
- Linux shell 下简单的进度条实现
Linux shell 下简单的进度条实现 [root@db145 ~]# cat print_process.sh function Proceess(){ spa='' i= ] do print ...
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- Linux系统下远程文件拷贝scp命令
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
- Linux系统下常用的磁盘管理命令——du / df / fdisk / mount / xxd
之前使用虚拟机体验Linux操作系统的使用,一般使用默认的磁盘分区设置,也很少涉及磁盘管理操作,且总有删除重装作为后盾.在安装Ubuntu双系统后,在使用过程中遇到了磁盘分区不合理导致的/boot分区 ...
- Linux Shell 下的输出重定向
linux 环境中支持输入输出重定向,用符号<和>来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出, 可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表 ...
- linux shell下除了某个文件外的其他文件全部删除的命令
Linux反选删除文件 最简单的方法是 # shopt -s extglob (打开extglob模式) # rm -fr !(file1) 如果是多个要排除的,可以这样: # rm -r ...
随机推荐
- C#.NET常见问题(FAQ)-如何使用DataGridView跟Excel数据交互
1 从工具箱中拖进来一个DataGridView 2 就像Excel表头,可以添加一个表头(即一列的抬头,比如叫做A) 3 一次添加ABCDE等项目,也可以修改该类目的类型为Button或者C ...
- iOS开发点滴 - 关闭键盘
有时候系统显示的键盘会挡住视图中某些重要的控件,这个时候当用户按下换行键,就应该取消UITextField对象的第一响应(First Responder)状态而关闭键盘. 1. 首先,视图控制器必须遵 ...
- css背景全屏-视差
<!DOCTYPE html> <html> <head> <title></title> <style> *{margin:0 ...
- 在Ubuntu系统上搭建Hadoop 2.x(2.6.2)
官方的中文版的Hadoop快速入门教程已经是很老的版本了,新版的Hadoop目录结构发生了变化,因此一些配置文件的位置也略微调整了,例如新版的hadoop中找不到快速入门中提到的conf目录,另外,网 ...
- 【树莓派】树莓派新版系统SSH连接被拒绝问题处理
安装好新的版本树莓派(NOOBS_v2_4_0.zip)之后,直连显示器并接上网线,可以看到已经获取到动态IP地址了. 但是,此时使用xshell远程连接时,却一直连接不成功: [d:\~]$ Con ...
- Windows服务安装与控制
Windows服务安装与控制 1.建立服务 (1)定义一个ServiceInstaller using System; using System.Collections.Generic; using ...
- 忘记MySQL root密码重置MySQL root密码
(1)停止mysql# /etc/init.d/mysql stop(2)以不检查权限的方式启动# mysqld --skip-grant-tables &(3)登录mysql修改root用户 ...
- 转:nginx基础概念(connection)
在nginx中connection就是对tcp连接的封装,其中包括连接的socket,读事件,写事件.利用nginx封装的connection,我们可以很方便的使用nginx来处理与连接相关的事情,比 ...
- 算法笔记_232:提取拼音首字母(Java)
目录 1 问题描述 2 解决方案 1 问题描述 在很多软件中,输入拼音的首写字母就可以快速定位到某个词条.比如,在铁路售票软件中,输入: “bj”就可以定位到“北京”.怎样在自己的软件中实现这个功 ...
- H5 新增内容 新增属性
1.视频 video 2.音频 audio 3.拖放 Drag 和 drop 4.画布 canvas 5.SVG 6.地理定位 navigator.geolocation.getCurrentPosi ...