linux cli
shell
-
1 2
#查看存在的shell cat /etc/shells
-
1 2
#查看正在使用的shell echo $SHELL
-
1 2
#切换shell chsh -s /usr/bin/fish
adduser
adduser 和 useradd 是一个意思的命令,用于增加一个linux系统的用户账号添加 参数如下:
|
|
|
|
bc
通用计算器
-
“+” 加法
-
“-” 减法
-
“*” 乘法
-
“/” 除法
-
“^” 指数
-
“%” 余数
1 2
$ echo "15+5" | bc 20
1 2
$ echo "scale=2;(2.777-1.4744)/1" | bc 1.30 ## scale 设置小数点
1 2
$ echo "obase=2;ibase=10;111" | bc 1101111 #obase=2(输出二进制),ibase=10(输入十进制),110是输入参数
cat
命令用于连接文件并打印到标准输出设备上
|
|
|
|
|
|
|
|
|
|
chgrp
更改文件或者目录的所属群组
|
|
|
|
|
|
chmod
|
|
chown
chown(change owner) 设置文件或文件夹的所有者和关联组,该命令只能root执行
|
|
|
|
|
|
|
|
cut
cut用于截取每行的类容
- -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
- -c :以字符为单位进行分割。
- -d :自定义分隔符,默认为制表符。
- -f :与-d一起使用,指定显示哪个区域。
- -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的 范围之内,该字符将被写出;否则,该字符将被排除
配合grep可提取关键字符串,常用于日志提取,列如下面这个日志我想提取user_id:xxx,routeId:xxx
|
|
可用和grep搭配
|
|
cut -d 表示用自定义分割符 ,
-f 表示哪个域,1表示:以,
分割的第一个子串,2表示分割的第二个子串,例子中第二个子串是user_id:07f438bb-28b5-4f37-a6e7-8312ff90cabc
依次类推
du
(全称:disk usage)
-
参数说明
1 2 3
-a或-all 显示目录下所有的文件,文件夹 -h或--human-readable 用k,m,g显示,人类读取友好 -s或--summarize 仅显示统计
-
例子
1 2 3 4 5
$ du -a -h | grep /.git\$ #22M ./chengxiaowei_blog/.git $ du -s -h 45M .
find
find 指定目录下查找文件或者文件夹
|
|
rm
|
|
|
|
|
|
|
|
ssh
|
|
|
|
|
|
|
|
|
|
修改默认端口
|
|
使用简单防火墙禁用22端口,开放2223
|
|
禁止密码登录,钥匙登录
|
|
流程就是本地ssh服务用~/.ssh/id_rsa
私钥将一个随机字符串加密,发到服务器,服务器将你的公钥解密
ssh use .pem file
|
|
tar
-
压缩
1 2
touch a.c tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
-
解压
1
tar -xzvf test.tar.gz
-
参数
1 2 3 4 5
-c或--create 建立新的备份文件 -z或--gzip 通过gzip指令处理备份文件 -v或--verbose 显示指令执行过程 -f或--file 指定备份文件 -x或--extract或--get 从备份文件还原文件
top 命令
用于实时显示各个进程的状态
-
界面
第一行:
- 系统时间:16:49:59
- 运行时间:up 627 days ,22:54 //627天22小时54分
- 当前登录的用户:1 user //一个用户
- load avage :负载均衡0.61,0.83,0.95 三个数字分别表示1分钟,5分钟,15分钟的负载情况
第二行:进程信息
- Tasks 82 total :总量有82进程在跑
- 5 running :活跃的有5个
- 74 sleeping :74个休眠
- 0 stopped :0个停止
- 3 zombie:3个僵尸进程
第三行:cpu状态
- 8.1 us (user space) –用户空间cpu的百分比
- 16.2 sy (sysctl) – 内核cpu的百分比
- 0.0 ni ()– 改变过优先级的进程cpu的百分比
- 75.8 id (idolt) –空闲cpu的百分比
- 0.0 wa (wait) –IO 等待cpu的百分比
- 0.0 hi (Hardware IRQ) –硬中断cpu的百分比
- 0.0 si (Software Interrupts) –软中断cpu的百分比
第四行: 内存状态(Kib Mem)
- 1882232 total: 总计大约1838M内存
- 303244 free: 大约有296M空闲内存
- 523444 used : 大约用了511M
- 1055544 buff/cache: 1030M 缓冲区
第五行: 交换内存情况(Kib Swap)
第七行:各个进程的状态监控
- PID –进程id
- USER –进程的所有者
- PR –进程优先级
- NI – nice 值。小于0表示高优先级,大于0表示低优先级
- VIRT– 进程使用的虚拟进程总量
- RES –进程使用的,未被换出的物理内存
- SHR –共享内存
- S –进程状态.D =不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
- %CPU – cpu占用量
- %MEM –内存占用量
- TIME+ – 使用cpu时间 单位1/100 秒
- CMMAND–进程名字
-
top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下: s – 改变画面更新频率 l – 关闭或开启第一部分第一行 top 信息的表示 t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示 m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示 N – 以 PID 的大小的顺序排列表示进程列表 P – 以 CPU 占用率大小的顺序排列进程列表 M – 以内存占用率大小的顺序排列进程列表 h – 显示帮助 n – 设置在进程列表所显示进程的数量 q – 退出 top s – 改变画面更新周期
-
根据第七行的各个字段来排序
进入top。默认是cpu占用量排序的,怎么改变其他字段排序?
-
敲击键盘 “b”(打开或关闭加亮效果),效果如下,此时高亮的是running的运行状态的进程,可以键入
y
键关闭或打开运行状态(running)的进程高亮效果: -
键入
x
键(打开或关闭列的排序高亮效果)此时是按照cpu占用量这个列排序,效果如下 -
可以键入
shift + <
右移动高亮列,shift+>
左移动高亮列,效果如下:
-
|
|
uniq
Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。 uniq 可检查文本文件中重复出现的行列。
vim
-
命令
1 2 3 4
vim test.txt :q! :q :wq
1 2
:set nu #设置行号 :set nu! #取消行号
-
快捷键
1 2 3 4
gg //连按两下键盘g到文件顶部 shift+gg //按住shift,连按两次g到文件底部 0 //键盘上的0键,跳到句首 shift+$ //跳到句尾
wc
wc 用于计算文件的byte,字数,或是列数
- wc -c或–byte或–chars 只显示byte
- wc -l 或–lines 显示行数
- wc –help 在线帮助
- wc –version 显示版本信息
|
|
|
|
grep
|
|
过滤大于500ms的sql日志
|
|
SS
|
|
|
|
netstat
|
|
- -t -显示TCP端口
- -u -显示UDP端口
- -n -显示数字地址而不是主机
- -l - 仅显示监听地址端口
- -p - 显示进程的PID和名称,仅当root 或者sudo用户身份,才会显示信息
scp
- -1: 强制scp命令使用协议ssh1
- -2: 强制scp命令使用协议ssh2
- -4: 强制scp命令只使用IPv4寻址
- -6: 强制scp命令只使用IPv6寻址
- -B: 使用批处理模式(传输过程中不询问传输口令或短语)
- -C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
- -p:保留原文件的修改时间,访问时间和访问权限。
- -q: 不显示传输进度条。
- -r: 递归复制整个目录。
- -v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
- -c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
- -F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
- -i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
- -l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
- -o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
- -P port:注意是大写的P, port是指定数据传输用到的端口号
- -S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
本地–>远端
|
|
远端–>本地
|
|
sudo
免密
|
|
lsblk
列出块设备信息
|
|
|
|
apt
全称Advanced Packaging Tool
,Debian
和 Ubuntu
的包管理软件
|
|
rsync
rsync is an open source utility that provides fast incremental file transfer
Rsync是一个开源实用程序,提供快速增量文件传输
|
|
crontab
定时任务
编辑定时任务配置
|
|
重载定时任务配置
|
|
IP
更改目标地址112.16.229.104
走ens3
网卡
|
|