工作中常用的linux命令

885 阅读3分钟

工作中常用的linux命令

主要分享一下自己开发过程中使用的linux命令

alias显示别名,或给命令取别名
# 可以显示所有别名。
alias

$ alias today='date +"%A, %B %-d, %Y"'
$ today
星期一, 一月 6, 2020
ansible常用命令
# 在节点上安装httpd
ansible all -m yum -a "state=present name=httpd"
# 在节点上启动服务,并开机自启动
ansible all -m service -a 'name=httpd state=started enabled=yes'
# 检查主机连接
ansible '*' -m ping
# 执行远程命令
ansible '*' -m command -a 'uptime'
# 执行主控端脚本
ansible '*' -m script -a '/root/test.sh'
# 执行远程主机的脚本
ansible '*' -m shell -a 'ps aux|grep zabbix'
# 类似shell
ansible '*' -m raw -a "ps aux|grep zabbix|awk '{print \$2}'"
# 复制文件到远程服务器
ansible '*' -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"

##### cat查看文件

```sh
# 查看文件内容
cat [filename]
# 把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
# 清空 /etc/test.txt 文档内容
cat /dev/null > /etc/test.txt
curl命令访问url
# 不带有任何参数时,curl 就是发出 GET 请求
curl https://www.example.com

# -A参数指定客户端的用户代理标头,即User-Agent,下面命令将User-Agent改成 Chrome 浏览器
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
curl -A '' https://google.com # 下面命令会移除User-Agent标头。

# -b参数用来向服务器发送 Cookie。生成一个标头Cookie: foo=bar,向服务器发送一个名为foo、值为bar的 Cookie
curl -b 'foo=bar' https://google.com
curl -b 'foo1=bar;foo2=bar2' https://google.com #发送两个 Cookie
curl -b cookies.txt https://www.google.com # 读取本地文件cookies.txt,里面是服务器设置的 Cookie(参见-c参数),将其发送到服务器

# -c参数将服务器设置的 Cookie 写入一个文件。
curl -c cookies.txt https://www.google.com

# -d参数用于发送 POST 请求的数据体。使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST
curl -d'login=emma&password=123'-X POST https://google.com/login
curl -d 'login=emma' -d 'password=123' -X POST  https://google.com/login
curl -d '@data.txt' https://google.com/login # -d参数可以读取本地文本文件的数据,向服务器发送

# --data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。
curl --data-urlencode 'comment=hello world' https://google.com/login

# -e参数用来设置 HTTP 的标头Referer,表示请求的来源。
curl -e 'https://google.com?q=example' https://www.example.com

# -F参数用来向服务器上传二进制文件。会给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传
curl -F 'file=@photo.png' https://google.com/profile
curl -F 'file=@photo.png;type=image/png' https://google.com/profile # -F参数可以指定 MIME 类型
curl -F 'file=@photo.png;filename=me.png' https://google.com/profile # -F参数也可以指定文件名。

# -G参数用来构造 URL 的查询字符串
curl -G -d 'q=kitties' -d 'count=20' https://google.com/search #会发出一个 GET 请求,实际请求的 URL 为https://google.com/search?q=kitties&count=20。如果省略--G,会发出一个 POST 请求
curl -G --data-urlencode 'comment=hello world' https://www.example.com # 如果数据需要 URL 编码,可以结合--data--urlencode参数

# -H参数添加 HTTP 请求的标头。
curl -H 'Accept-Language: en-US' https://google.com
curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com # 添加两个 HTTP 标头
curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login # 添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据

# -i参数打印出服务器回应的 HTTP 标头
curl -i https://www.example.com # 收到服务器回应后,先输出服务器回应的标头,然后空一行,再输出网页的源码

# -I参数向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来
curl -I https://www.example.com # 输出服务器对 HEAD 请求的回应。
curl --head https://www.example.com # --head参数等同于-I

# -k参数指定跳过 SSL 检测。
curl -k https://www.example.com # 不会检查服务器的 SSL 证书是否正确。

# -L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向
curl -L -d 'tweet=hi' https://api.twitter.com/tweet

# --limit-rate用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境
curl --limit-rate 200k https://google.com # 上面命令将带宽限制在每秒 200K 字节

# -o参数将服务器的回应保存成文件,等同于wget命令
curl -o example.html https://www.example.com # 上面命令将www.example.com保存成example.html

# -O参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
curl -O https://www.example.com/foo/bar.html # 将服务器回应保存成文件,文件名为bar.html

# -s参数将不输出错误和进度信息。
curl -s https://www.example.com
curl -s -o /dev/null https://google.com # curl 不产生任何输出

#-S参数指定只输出错误信息,通常与-s一起使用
curl -S https://www.example.com

# -u参数用来设置服务器认证的用户名和密码。
curl -u 'bob:12345' https://google.com/login # 设置用户名为bob,密码为12345,然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1

# -v参数输出通信的整个过程,用于调试
curl -v https://www.example.com

# --trace参数也可以用于调试,还会输出原始的二进制数据。
curl --trace - https://www.example.com


# -x参数指定 HTTP 请求的代理。指定 HTTP 请求通过myproxy.com:8080的 socks5 代理发出
curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com

# -X参数指定 HTTP 请求的方法,POST请求查询
curl -X POST https://www.example.com

curl查看服务器出口ip

curl cip.cc
date命令查看时间
date
df查看linux文件系统使用情况
df -h
echo清理linux缓存
sync
echo 3 >/proc/sys/vm/drop_caches

#上面的echo 3 是清理所有缓存
# echo 0 是不释放缓存
# echo 1 是释放页缓存
# ehco 2 是释放dentries和inodes缓存
# echo 3 是释放 1 和 2 中说道的的所有缓存
echo清空文件
$ : > filename
$ > filename
$ echo "" > filename
# 上面3种方式,能将文件清空,而且文件大小为0
# 而下面两种方式,导致文本都有一个"\0",而使得文件大小为1
$ echo > filename
$ cat /dev/null > filename
export导入环境变量,source生效环境变量
# 导入变量
export PATH=$PATH:~/bin

# 生效
source ~/.bashrc
grep查看日志里指定字符
grep '字符串' [filename]

# 查看前100行
grep -B 100 '字符串' [filename]

# 查看后100行
grep -A 100 '字符串' [filename]
history查看历史记录
# 查看历史记录列表
history
# 搜索指定命令
history | grep '匹配字符串'
# 指定序号的方法
!number
# 设置history展示时间
export HISTTIMEFORMAT='%F %T  '
jps查看当前java进程
jps -l

jps -lv

jps -lvm
jmap进行数据dump
 jmap -dump:format=b,file=heap.hprof [pid]
kill命令
kill -9 pid

# 1 (HUP):重新加载进程。
# 9 (KILL):杀死一个进程。
# 15 (TERM):正常停止一个进程
ll和ls展示目录
# 相当于ls -l
ll
# 展示文件大小
ll -h
# 仅罗列出当前文件名或目录名
ls 
lscpu查看CPU信息
lscpu

# Architecture:          x86_64
# CPU op-mode(s):        32-bit, 64-bit
# Byte Order:            Little Endian
# CPU(s):                4
# On-line CPU(s) list:   0-3
# Thread(s) per core:    2
# Core(s) per socket:    2
# Socket(s):             1
# NUMA node(s):          1
# Vendor ID:             GenuineIntel
# CPU family:            6
# Model:                 85
# Model name:            Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
# Stepping:              4
# CPU MHz:               2499.986
# BogoMIPS:              4999.97
# Hypervisor vendor:     KVM
# Virtualization type:   full
# L1d cache:             32K
# L1i cache:             32K
# L2 cache:              1024K
# L3 cache:              33792K
# NUMA node0 CPU(s):     0-3
mkdir创建文件夹
mkdir [-p] directory
mv移动文件或文件夹或改名
mv source_file(文件) dest_file(文件)
# 改名
mv filename newfilename
mycli连接数据库命令
#连接命令
mycli -h [ip] -u [username] -p [password]
mycli格式化显示查询出来的数据
# \G格式化展示数据
select * from table \G
mysql相关操作
# 展示数据库
show databases;

# 使用数据库
use <数据库名>

# MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等
select now(); #显示时间

# 创建表
create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);

# 插入数据
insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

# 更新
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
   
# 修改表名
rename table 原表名 to 新表名
mysql查看索引
show index from [tablename]

show keys from  [tablename]
mysql添加索引
ALTER TABLE [tablename] ADD INDEX index_name (column_list) 

ALTER TABLE [tablename] ADD UNIQUE (column_list) 

ALTER TABLE [tablename] ADD PRIMARY KEY (column_list)
mysql创建索引
CREATE INDEX index_name ON table_name (column_list)

CREATE UNIQUE INDEX index_name ON table_name (column_list)
mysql查看表结构
desc  [tablename]

show create table  [tablename]

use information_schema;
select * from columns where table_name = [tablename]
mysql查看死锁
# 查看死锁
show engine innodb status 

netstat查看time_wait命令
netstat -ae|grep "TIME_WAIT" |wc -l

netstat -ant |awk 'NR>2{print $6}'|sort|uniq -c|sort -rn 
ps命令
# 查找指定进程格式
ps -ef | grep 进程关键字
# 显示进程信息
ps -A
# 显示指定用户信息
ps -u root
# 显示所有命令,连带命令行
ps -ef 
# 显示所有包含其他使用者的行程
ps -aux
pwd查看当前位置
pwd
redis连接命令
redis-cli -h [ip] -p 6379 -a [password]
# 原生方式显示
redis-cli -h [ip] -p 6379 -a [password] -raw
# 指定库
redis-cli -h [ip] -p 6379 -a [password] -n 13
reids删除指定token的缓存
redis-cli -h 172.31.62.240 -p 6379 -a D4VUuT8YH7 -n 13 keys "src.main.biz.accounts.web.SpCnapsBook:names" | xargs redis-cli -h 172.31.62.240 -p 6379 -a D4VUuT8YH7 -n 13 del
rm删除文件文件夹
# 删文件
rm -f [filename]
# 删文件夹
rm -rf [directory]
rz和sz上传下载文件
# 下载安装
yum install lrzsz -y
# 上传
rz 
# 下载
sz [filename]
ssh切换服务器
ssh root@172.31.62.3
scp服务器之间拷贝资源
# 拷贝文件
scp file root@xxx.xxx.xxx.xxx:/目录
# 拷贝文件夹
scp -r directory root@xxx.xxx.xxx.xxx:/目录
tail查看日志
# 查看实时日志
tail -f nohup.out

# 查看后100行日志
tail -100f nohup.out
top命令查看服务器信息
top
zip压缩文件
# 压缩文件
zip filename.zip 文件

# 压缩目录
zip -r filename.zip 目录(./*)
unzip解压文件
unzip -o -d /home/sunny myfile.zip
# 把myfile.zip文件解压到 /home/sunny/
# -o:不提示的情况下覆盖文件;
# -d:-d /home/sunny指明将文件解压缩到/home/sunny目录下。
zip删除压缩文件中指定文件
zip -d filename.zip file
zip向压缩文件中myfile.zip中添加rpm_info.txt文件
zip -m myfile.zip ./rpm_info.txt
uptime查看系统平均负载
uptime

16:27:43 up 59 days,  7:24,  3 users,  load average: 1.14, 1.96, 2.19
# 系统当前时间	从上次启动开始系统运行的时间	注意这里实际是连接数量 	1分钟5分钟15分钟内系统平均负载
utpdate同步服务器时间
utpdate 时间服务器ip

在这里插入图片描述

以后有时间会同步这个文章