[TOC]
Linux最常用命令:简单易学,但能解决95%以上的问题
https://www.toutiao.com/a6763990899924926989/
终端录制工具
输出文件格式asciicast format (.cast)
# exit退出录制
asciinema rec demo.cast
# 要一致回车进行回放
asciinema play demo.cast
# 分享, 会生成临时分享地址
asciinema upload demo.cast
asciinema auth
windows 下载地址
使用 wget 命令下载文件wget http://www.lxlinux.net
默认情况下,下载的文件将保存到当前工作目录中的同名文件中。
如果你不想将下载的文件保存在本地,而只是想将其显示在标准输出(stdout)里,可以使用 --output-document
选项,同时后面再跟上一个 -
号。
wget http://www.lxlinux.net --output-document - | head -n4
如果你想给下载的文件重新命名,那么可以使用 --output-document
选项(或者更简便,直接使用 -o
即可):wget http://www.lxlinux.net --output-document newfile.html
断点续传:就可以使用 --continue
选项(或者 -c
)实现断点续传。
wget --continue https://www.lxlinux.net/linux-distro.iso
下载一系列文件. 比如:file_1.txt,file_2.txt,file_3.txt,等等
wget http://www.lxlinux.net/file_{1..4}.txt
镜像(下载)整个站点
如果你想对某个网站进行整站下载,包括其目录结构,那么你就需要使用 --mirror
选项。
这个选项等同于 --recursive --level inf --timestamping --no-remove-listing
,这意味着它是无限递归的,因此你可以下载到指定域上的所有内容。
如果你使用 wget
存档站点,那么这些选项 --no-cookies --page-requisites --convert-links
也可用于确保每个页面都是最新的、最完整的。
修改 HTML 请求标头
可以使用 --debug
选项查看 wget 每次请求发送的标头信息:wget --debug www.lxlinux.net
你可以使用 --header
选项修改请求标头。
wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://www.lxlinux.net
除此之外,你还可以伪装成特定的移动设备(比如 iPhone ):
$ wget --debug \
--header = "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari /604.1" \
HTTP:// www.lxlinux.net
查看响应标头
同样地,你可以使用 --debug
选项查看响应标头
响应 301 响应
熟悉网络协议的都知道,200 响应码意味着一切都按预期进行。而 301 响应则意味着 URL 已经指向不同的网站。
这种情况下,如果你需要下载文件,那么就需要使用 wget 的重定向功能。所以,如果你遇到 301 响应时,就需要使用 --max-redirect
选项。
如果你不想要重定向,那么可以将 --max-redirect
设置为 0 。
wget --max-redirect 0 http://www.lxlinux.net
展开短链接
这里依然使用 --max-redirect
选项:输出的倒数第二行,在 Location 部分,后面你就看到了短链展开之后的真面目。
使用SQL查询你的 Linux 操作系统信息
像查询数据库一样查询你的 Linux 操作系统信息
yum install -y bash-completion
安装成功后,得到文件为 /usr/share/bash-completion/bash_completion,如果没有这个文件,则说明系统上没有安装这个工具。
source /usr/share/bash-completion/bash_completion
docker:
source /usr/share/bash-completion/completions/docker
kubectl:
source <(kubectl completion bash)
比grep、ack更快的递归搜索文件内容。
https://github.com/ggreer/the_silver_searcher
yum install the_silver_searcher
choco install ag
choco install ack
字符模式下交互查看git项目,可以替代git命令。
https://github.com/jonas/tig
mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。
https://github.com/dbcli/mycli
json文件处理以及格式化显示,支持高亮,可以替换python -m json.tool。
shell脚本静态检查工具,能够识别语法错误以及不规范的写法。
https://github.com/koalaman/shellcheck
Google开发的python代码格式规范化工具,支持pep8以及Google代码风格。
https://github.com/google/yapf
基于UDP的终端连接,可以替代ssh,连接更稳定,即使IP变了,也能自动重连。
https://mosh.org/#getting
命令行下模糊搜索工具,能够交互式智能搜索并选取文件或者内容,配合终端ctrl-r历史命令搜索简直完美。
https://github.com/junegunn/fzf
choco install fzf
在命令行输出中自动识别目录和文件,支持交互式,配合git非常有用。
https://github.com/facebook/PathPicker
运行以下命令:
git diff HEAD~8 --stat | fpp
提供更美观、更方便的进程监控工具,替代top命令。
https://hisham.hm/htop/
https://www.atoptool.nl/index.php
https://github.com/aristocratos/bashtop
https://github.com/aksakalli/gtop
glances 是htop的补充工具。除了列出所有进程及其 CPU 和内存使用情况之外,它还可以显示有关系统的其他信息,比如:
https://nicolargo.github.io/glances/
https://github.com/raboof/nethogs
下载:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download
[root@localhost ~]#yum-y install libpcap-develncurses-devel
[root@localhost ~]# tar zxvf nethogs-0.8.0.tar.gz
[root@localhost ~]# cd nethogs
[root@localhost nethogs]# make && make install
[root@localhost nethogs]# nethogs eth0
https://nmon.sourceforge.net/pmwiki.php?n=Main.HomePage&ref=itsfoss.com
下载:http://www.iozone.org/src/current/
[root]# tar xvf iozone3_420.tar
[root]# cd iozone3_420/src/current/
[root]# make linux
[root]# ./iozone -a -n 512m -g 16g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls
-a使用全自动模式
-n为自动模式设置最小文件大小(Kbytes)。
-g设置自动模式可使用的最大文件大小Kbytes。
-i用来指定运行哪个测试。
-f指定测试文件的名字完成后自动删除
-R产生Excel到标准输出
-b指定输出到指定文件上
ncdu 下载地址:https://dev.yorhel.nl/ncdu
下载:http://www.ex-parrot.com/~pdw/iftop/
[root@localhost ~]# tar zxvf iftop-0.17.tar.gz
[root@localhost ~]# cd iftop-0.17
[root@localhost iftop-0.17]# ./configure
[root@localhost iftop-0.17]# make && make install
[root@localhost iftop-0.17]# iftop
[root@localhost iftop-0.17]# iftop -i eth0 #指定监控网卡接口
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
MultiTail是在控制台打开多个窗口用来实现同时监控多个日志文档、类似tail命令的功能的软件。
下载:http://code.google.com/p/httperf/downloads/list
[root]# tar zxvf httperf-0.9.0.tar.gz
[root]# cd httperf-0.9.0
[root]# ./configure
[root]# make && make install
[root]# httperf --hog --server=192.168.0.202 --uri=/index.html --num-conns= 10000 --wsess=10,10,0.1
参数说明:
--hog:让httperf尽可能多产生连接,httperf会根据硬件配置,有规律的产生访问连接
--num-conns:连接数量,总发起10000请求
--wsess:用户打开网页时间规律模拟,第一个10表示产生10个会话连接,第二个10表示每个会话连接进行10次请求,0.1表示每个会话连接请求之间的间隔时间/s
多线程下载工具,下载文件时可以替代curl、wget。
axel -n 20 http://centos.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
https://github.com/reorx/httpstat
httpstat以一种美丽和清晰的方式可视化curl统计数据。
Ping,但有个图表
https://github.com/orf/gping
交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。
yum install lrzsz -y
代码统计工具,能够统计代码的空行数、注释行、编程语言。
https://github.com/AlDanial/cloc
http://cloc.sourceforge.net/
yum install cloc
choco install cloc # Windows with Chocolatey
scoop install cloc # Windows with Scoop
a file
cloc hello.c
or a directory
cloc gcc-5.2.0/gcc/c
or an archive
cloc master.zip
or a git repository, using a specific commit
cloc 6be804e07a5db
or each subdirectory of a particular directory
for d in ./*/ ; do (cd "\(d" && echo "\)d" && cloc --vcs git); done
高速C/C++编译缓存工具,反复编译内核非常有用。使用起来也非常方便:
https://ccache.dev/
gcc foo.c
改成:
ccache gcc foo.c
终端复用工具,替代screen、nohup。
替代vim
https://neovim.io/
终端会话录制。
script -t 2>time.txt session.typescript # 录制开始
# your commands
exit # 录制结束
# 回放:
scriptreplay -t time.txt session.typescript
非常强大的媒体下载工具,支持youtube、google+、优酷、芒果TV、腾讯视频、秒拍等视频下载。
多重 tail
https://www.vanheusden.com/multitail/
wrk : https://github.com/wg/wrk 38k c
ab : apachebench,Apache 网站服务器自带的
hey : https://github.com/rakyll/hey 18.2k golang
vegeta: https://github.com/tsenart/vegeta 23.6k golang
ali: https://github.com/nakabonne/ali 2.8k golang (这款工具基于 vegeta,但使用起来更傻瓜式,而且实时进行分析,图形化展示。)
plow: https://github.com/six-ddc/plow 2.3k golang 内部采用了性能出色的fasthttp而不是 Go 的默认net/http, 支持实时WebUI数据展示
https://starship.rs/
它可以做到:
z 可以让你快速地在文件目录之间跳转
https://github.com/rupa/z
fzf — fuzzy finder,即模糊查找器。它是一种通用工具,可让你使用模糊搜索来查找文件、历史命令、进程、git 提交等。你键入一些字母,它会尝试匹配结果列表中任何位置的字母。输入的字母越多,结果也就越准确。
https://github.com/junegunn/fzf
类似于系统自带的 find 命令,但使用起来更简单,查找速度更快,并且具有良好的默认设置。
https://github.com/sharkdp/fd
ripgrep是grep命令的替代方法, 不过ripgrep的执行速度更快,而且具有健全的默认配置以及丰富的彩色输出。
https://github.com/BurntSushi/ripgrep
Virtualenv 是用于在 Python 中创建虚拟环境的工具。
VirtualFish 则是 Fish Shell 的虚拟环境管理器。它提供了许多命令来执行快速创建、列出或删除虚拟环境等操作。
virtualenv 下载地址:https://pypi.org/project/virtualenv/
virtualfish 下载地址:https://github.com/justinmayer/virtualfish
pyenv 可以轻松实现 Python 版本的切换。
Pyenv、nodenv 和 rubyenv 是用于管理计算机上不同版本的 Python、Node 和 Ruby 的工具。
pyenv 下载地址:https://github.com/pyenv/pyenv
nodenv 下载地址:https://github.com/nodenv/nodenv
rbenv 下载地址:https://github.com/rbenv/rbenv
bat 下载地址:https://github.com/sharkdp/bat
这是SQLite 和 PostgreSQL CLI 的解决方案。借助自动提示和语法突出显示,它们比默认的sqlite3和psql工具要好用很多。
litecli 下载地址:https://litecli.com/
pgcli 下载地址:https://www.pgcli.com/
https://github.com/draios/sysdig
可以看网络,CPU,磁盘I/O,进程等
Falco 容器安全系统
https://github.com/falcosecurity
说明: l:listening n:num t:tcp u:udp p:process
BusyBox 是一个集成了一百多个最常用 linux 命令和工具的软件。BusyBox 包含了一些简单的工具,例如 ls、cat 和echo 等等,
还包含了一些更大、更复杂的工具,例 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。
简单的说 BusyBox 就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Android 系统的自带的shell。
比如:busybox ls
COMMANDS
[, [[, acpid, addgroup, adduser, adjtimex, ar, arp, arping, ash,
awk, basename, beep, blkid, brctl, bunzip2, bzcat, bzip2, cal, cat,
catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot,
chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab,
cryptpw, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod,
devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname,
dos2unix, dpkg, du, dumpkmap, dumpleases, echo, ed, egrep, eject,
env, envdir, envuidgid, expand, expr, fakeidentd, false, fbset,
fbsplash, fdflush, fdformat, fdisk, fgrep, find, findfs, flash_lock,
flash_unlock, fold, free, freeramdisk, fsck, fsck.minix, fsync,
ftpd, ftpget, ftpput, fuser, getopt, getty, grep, gunzip, gzip, hd,
hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id,
ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, inotifyd,
insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd,
last, length, less, linux32, linux64, linuxrc, ln, loadfont,
loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr,
ls, lsattr, lsmod, lzmacat, lzop, lzopcat, makemime, man, md5sum,
mdev, mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat,
mknod, mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint,
mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, od,
openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,
pivot_root, pkill, popmaildir, printenv, printf, ps, pscan, pwd,
raidautorun, rdate, rdev, readlink, readprofile, realpath,
reformime, renice, reset, resize, rm, rmdir, rmmod, route, rpm,
rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum,
sha512sum, showkey, slattach, sleep, softlimit, sort, split,
start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv,
svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac,
tail, tar, taskset, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd,
time, timeout, top, touch, tr, traceroute, true, tty, ttysize,
udhcpc, udhcpd, udpsvd, umount, uname, uncompress, unexpand, uniq,
unix2dos, unlzma, unlzop, unzip, uptime, usleep, uudecode, uuencode,
vconfig, vi, vlock, volname, watch, watchdog, wc, wget, which, who,
whoami, xargs, yes, zcat, zcip
docker
https://hub.docker.com/_/busybox
github
https://github.com/mirror/busybox
官网
https://www.busybox.net/
查看bash
bash --version
升级到4.4以上
wget http://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz
解压缩:
tar zxvf bash-5.0.tar.gz
进入目录:
cd bash-5.0
开始编译:
./configure&&make&&make install
编译完成后,重启CentOS后,新版Bash生效。
虽然通过/bin/bash --version命令可以显示已经更新到最新版了,但是$BASH_VERSION变量依旧还是老版本,我们还需要加入下面的软链接:
mv /bin/bash /bin/bash.bak
ln -s /usr/local/bin/bash /bin/bash
再次重启系统
reboot
完成后echo $BASH_VERSION即可以显示为最新Bash版本了。
需要安装 yum install -y coreutils procps lm_sensors-libs
查看是否安装
rpm -qa|grep sensors
bashtop 是一个 Linux 资源监视器,显示处理器、内存、磁盘、网络和进程的使用情况和状态。特征:
易于使用,带有受游戏启发的菜单系统
快速响应的 UI,带有 UP,DOWN 键可进行过程选择
显示所选进程的详细统计信息
可过滤流程
在排序选项之间轻松切换
将 SIGTERM,SIGKILL,SIGINT 发送到选定的进程
可更改所有配置文件选项的 UI 菜单
自动缩放图显示网络使用情况
菜单直接显示是否有新版本可用
GitHub 地址→https://github.com/aristocratos/bashtop
web管理页面 连接linux
web服务器管理控制面板
https://github.com/webmin/webmin
运行安卓应用
xDev提供与xDroid、xWin等适配接口,基于xDev开发的安卓应用、Window应用无需借助模拟器或虚拟机即可直接运行在异构国产平台上
https://github.com/xtermjs/xterm.js
https://github.com/p-e-w/hegemon
cargo install hegemon
macOS status monitoring app written in SwiftUI.
https://github.com/gao-sun/eul
https://github.com/nicolargo/glances
Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具。
dstat命令是一个用来替换vmstat、iostat、netstat、nfsstat和ifstat这些命令的工具,是一个全能系统信息统计工具。
https://github.com/crash-utility/crash
crash是redhat的工程师开发的,主要用来离线分析linux内核转存文件,它整合了gdb工具,功能非常强大。可以查看堆栈,dmesg日志,内核数据结构,反汇编等等。
crash支持多种工具生成的转存文件格式,如kdump,LKCD,netdump和diskdump,而且还可以分析虚拟机Xen和Kvm上生成的内核转存文件。
同时crash还可以调试运行时系统,直接运行crash即可,ubuntu下内核映象存放在/proc/kcore。
crash和linux内核是紧密耦合的,会随着内核的变化持续更新,它向前兼容的,新的crash工具可以分析老内核的转存文件
运行windows APP
https://github.com/Fmstrat/winapps
sudo apt-get install aview imagemagick
asciiview kobe.jpg # 将图片转化成字符输出
在终端中显示Linux系统信息
https://github.com/dylanaraps/neofetch
在终端中显示Git存储库摘要
https://github.com/o2sh/onefetch
wget https://github.com/o2sh/onefetch/releases/download/v2.5.0/onefetch-linux.tar.gz
sudo mv onefetch-linux/onefetch /usr/local/bin/
# 使用Onefetch在终端中显示Git存储库摘要
onefetch openjw/open/
# or cd openjw/open/ 然后 onefetch
由于Onefetch的主要部分是在 Rust,它显示了Rust语言的ASCII艺术。 您也可以使用其他语言的ASCII -a
, --ascii-language
。 以下命令显示Onefetch Git存储库摘要以及 蟒蛇 ASCII徽标:onefetch -a python
您还可以使用自定义图片,例如使用 -i
, --image
。如:onefetch -i ~/ostechnix.png
默认情况下,Onefetch仅显示三个作者。 一些作者可能会为Git项目做出贡献。 要显示要显示的作者数量,请使用 -A
, --authors-number
。如:onefetch -A 10