DNS
- nslookup github.com
快捷查询dns服务器
- ping github.com
网络连接尝试
- host -v xxx.com
域名详细信息查询
- dig github.com
详细域名信息查询
- 网络链路检测 #快捷命令
mtr ip 或者 traceroute 域名 (mac上mtr需要sudo)
- ssh连接检测 #快捷命令
ssh -T -v git@github.com
虚拟内存
- (https://www.cnblogs.com/tocy/p/linux-swap-cmd-summary.html),(https://www.cnblogs.com/akuo-123/p/8036268.html)
wget
- 打包下载命令
wget -r -p -np -k https://www.lunarvim.org/ #快捷命令 -R 可以指定不下载的类似,比如-R pdf -A 可以指定只接受的类型
[!tip] 参考 https://zhuanlan.zhihu.com/p/380793959
dpkg
- 无root权限安装deb包
- 新建一个目录
dpkg -x example.deb example
#快捷命令
- 有root权限
sudo dpkg -i example.deb
添加用户
useradd --shell /bin/bash -p qwer1234 -d /home/chaiquan chaiquan
#快捷命令
查看系统架构
uname -a
,基本上inter,amd都是x64架构,可以直接使用amd64或者x64
telnet
用法
telnet ip/域名 端口
,就是TCP连接到该端口,此时可以直接在命令行输入发送的内容,回车直接以tcp包发送,响应再按回车后直接输出在控制台- 这个命令只会建立简单的TCP连接,即使是443端口,也不会自动建立https连接
realpath
- 查看文件的真实路径
service和systemd
- Linux系统下的/etc/init.d。/etc/init.d 目录下的脚本文件用于管理服务,这些脚本文件位于 /etc/init.d 目录下,并以服务的名称命名。service命令本质就是通过去
/etc/init.d
目录下执行相关程序实现,实际上service类似一个脚本,找init.d目录下的文件执行 - init 是一个守护进程,它持续运行,直到系统关闭。它是所有其他进程的直接或间接的父进程。
- 启动时间长。init 进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
- 启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。
service nginx start
- systemctl 是一个新的系统服务管理工具,它是 systemd 系统和服务管理器的一部分。systemd 是一个用于 Linux 启动进程的系统和服务管理器。相比之下,systemctl 拥有更加全面的功能,可以用于控制服务的状态,查看服务的状态,重启和重新加载服务,并在服务失败时自动重启服务
- Systemd 这个名字的含义,就是它要守护整个系统。使用了 Systemd,就不需要再用 init 了。Systemd 取代了initd(initd 的PID 是0) ,成为系统的第一个进程(Systemd 的PID 是1),其他进程都是它的子进程。
systemctl start nginx
jq命令
- 用于命令行解析json数据,结果可以通过".key.arr[0].subkey"获取
echo '{"Name":"CloudNativeOps","Owner":"GoOps","WebSite":"https://bgbiao.top/"}' | jq .Name
ln命令
ln -s source_file(已经存在的文件) soft_link_name(需要创建的链接)
time命令
time ls
用于很方便计算命令耗时
rsync
- 同步文件命令,但是支持断点续传(scp不支持)
date
- 获取当前时间 可以通过
date +"%Y%m%d%H%M%S"
调整格式,参考shell编程-date命令详解(超详细)_shell date-CSDN博客
curl
config demo
# demo config for curl
# more infomation,read https://catonmat.net/cookbooks/curl
# and https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
# update by chenxuan 2023-01-08 22:44:17
# use it by: curl -K ./demo.curl
# INPUT
# url :request url
url="chenxuanweb.top"
# request -X: curl method(GET,POST,PUT etc)
request="GET"
# user-agent -A:sign for firefox
# can be change in -H option
# user-agent="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0"
# cookie -b:cookie gor request
# cookie-jar -c:save cookie infile
# cookie="foo1=bar;foo2=bar2"
# cookie=cookie.txt
# cookie-jar=cookie.txt
# head of request -H
header="Content-type: application/json"
header="Accept: text/html,application/xhtml+xml,application/xml;"
header="Connection: keep-alive"
# header="Authorization: test"
# referer -e:referer
# can be change in -H option
# referer="https://google.com?q=example"
# user -u:user pwd and name,make it to Authorization(Basic model)
# user="bob:12345"
# get -G:get request query
# if exist,-d standfor query(https://google.com/search?q=kitties&count=20)
# get
# body for post -d
# data-binary <data> HTTP POST binary data
# data-raw <data> HTTP POST data, '@' allowed
# data-urlencode <data> HTTP POST data url encoded, make <space>encode
# recommand use file to send body,such as json file
# data = @req.json
data='login=emma&password=123'
# upload file -F
# form="file=@photo.png;type=image/png;filename=me.png"
# options
# proxy -x [protocol://]host[:port] Use this proxy(default http)
# proxy="socks5://james:cats@myproxy.com:8080"
# insecure -k:if exist,donnot check https
insecure
# location -L:if exist,follow website redirects
location
# verbose -v:visual model,for debug
# open it can see request
# trace :save msg for debug
# verbose
# trace="a.txt"
# show-error/silent -S/-s: show error/silent
# show-error
# silent
# output
# include -i:if exist,print res header
include
# outputfile -o:make result into file(like wget)
# if open it,close include is better
# output="a.txt"
# vim: ft=cfg et ts=2 sts=2 sw=2
crontab
- 定时任务执行工具
- 使用
select-editor
进行更改默认的编辑器
f1 f2 f3 f4 f5 program
- 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
- 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
- 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
- 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
- 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
0 0 1 * * 每个月的第一天午夜(0 点)执行一次
0 0 * * 0 每周日的午夜(0 点)执行一次
tar
- 一定要去到目录下tar打包,不然会带着路径信息,或者用-C也行
tar -zcvf ~/vim-fast/vim.tar.gz -C ~/.vim/plugged ./*
tmux
核心
- 所有tmux按键以ctrl+b为基础
- d 退出当前会话
- " 上下分屏
- % 左右分屏
- 上下左右 转到窗口
- c-b :set -g mouse on 设置鼠标支持
~/.tmux.conf
默认的配置文件位置
命令行
下面的命令行直接通过 tmux+指令实现
- attach 连接会话
开启TrueColor设置
- 关联Vim技巧的TrueColor设置
- 通过
echo $TERM
查找终端类型 - 编辑
~/.tmux.conf
添加
set -g default-terminal "xterm-256color"
#set -g default-terminal "screen-256color" # 如果使用screen-256color则用这条指令
set-option -ga terminal-overrides ",*256col*:Tc"
- 重启tmux
[!tip] 参考 Vim在tmux中颜色改变/不同的问题
三剑客
grep
- `-C` 后面跟一个数字,表示在匹配行的前后都显示这么多行。如果希望显示所有行,可以使用一个足够大的数字
sed
awk
- awk默认分割符是空格,可以通过
-F
自动分隔符-F ':'
, - 格式:
awk [-F field-separator] 'commands' input-file
#快捷命令 - commands中的内容才是真正的awk,通常使用
'{print $1}'
- awk使用的是列处理,sed是行处理的
[!tip] 参考 https://www.cnblogs.com/along21/p/10366886.html