Linux字典

Shell命令的查询网址:https://man.linuxde.net/

sed —— sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

  • sed -i 's/原字符串/新字符串/g' file —— 替换文本文件
  • sed -n '/开始日志/,/结束日志/p' file —— 读取部分时间段的日志
  • sed '1d' —— 删除第一行
  • sed '/字段/d' —— 删除包含某个字段的一行内容
  • -e —— 直接在指令列模式上进行sed 的动作编辑
  • -i —— 文件内容进行变更
  • a —— 新增,a的后面可以接字符串,在下一行出现
  • d —— 删除
  • s —— 查找并替换
  • g —— 全部替换
  • 将“meinv”插入h.txt第二行下,打印(文件内容不变)
sed '2a mei nv' test.txt
  • 删除h.txt文件包含w的行
sed '/w/d' test.txt
  • 将h.txt文件中w替换成@ 
sed 's/w/@/g' test.txt
  • 将h.txt文件中的第二行删除并将@替换成w
sed -e '2d' -e 's/@/w/g' test.txt

 

pass —— 远程批量执行命令(远程并发链接)

Pssh –h ip.txt –p “uptime”

  • -l —— 远程机器的用户名
  • -p —— 一次最大允许多少连接
  • -o —— 输出内容重定向到一个文件
  • -e —— 执行错误重定向到一个文件
  • -t —— 设置命令执行的超时时间
  • -A —— 提示输入密码并且把密码传递给ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以,可以结合sshpass-p password使用)
  • -O —— 设置ssh参数的具体配置,参照ssh_config配置文件
  • -x —— 传递多个SSH 命令,多个命令用空格分开,用引号括起来
  • -X —— 同-x 但是一次只能传递一个命令
  • -i —— 显示标准输出和标准错误在每台host执行完毕后
  • -I —— 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入
  • 远程免密操作
  • 1)一种借助expect脚本
    • sshpass -p password 以password为代码远程登录服务器
  • 2) 一种借助sshpass来实现.
    • $ ssh -o “StrictHostKeyChecking no” username@password 免密执行登录
  • 案例
    • local ssh="$SSHPASS -p $PASSWD ssh -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no" ssh="$ssh -o ConnectTimeout=30 -o ServerAliveInterval=60 -o ServerAliveCountMax=5"
      • StrictHostKeyChecking——主机秘钥检查
      • GSSAPIAuthentication——GSSAPI身份认证失败
      • ConnectTimeout——链接超时
      • ServerAliveInterval——服务器间隔

 

 scp -r —— 远程拷贝命令

  • scp -r root@机器ip:file 本地file 机器——>本地
  • scp -r 本地file root@机器ip:file 本地——>机器

&/dev/null —— 黑洞、空文件

rm —— 删除

  • rm –i file —— 删除已有文件/目录前进行询问
  • rm -f file —— 删除时候不进行提示,强势删除
  • rm -r dir —— 删除目录下所有文件及子目录(删除目录)

ifconfig —— 查看机器(查看配置网络设备)

ssh admin@机器ip —— 链接机器

exit —— 断开链接

grep 查询内容 file —— 搜索数据

  • grep "查找内容" —— 查找含有“查找内容”字段的行
  • grep -v "排除的内容" —— 查找不含有“排除内容”字段的行

help —— 查看函数、模块的用途

ps -ef —— 查看进程信息

  • ps -aux —— BSD格式显示进程信息

top —— 实时监控进程(查看CPU使用情况)

free —— 查看CPU的使用率

kill —— 结束进程(支持通配符)

  • -s——强制结束进程
  • killall——结束全部基进程

wget —— 用来从指定的url下载文件

  • wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
  • wget XXX -O file——把文档写到FILE文件中
  • wget ftp://mfs.jd.com/mnt/mfs/tools/sshpass -O sshpass &>/dev/null

echo $PATH —— 查看PATH环境变量

sh FileName —— 执行shell脚本

  • sh -n FileName——选项进行shell脚本的语法检查
  • sh -x FileName ——shell脚本逐条语句跟踪

man —— 查看命令用法

ls —— 显示当前目录下最基本的目录及文件

  • ll——ls -l——显示长列表

cp —— 复制文件(覆盖文件原有内容)

mv —— 移动文件/文件夹(重命名文件/文件夹)

mkdir —— 创建目录

  • mkdir -p:确保目录名称存在,不存在就创建一个

file —— 查看文件类型

cat —— 显示文本文件所有内容

  • -n——显示所有行号(包含空行)
  • -b——显示所有行号(不包含空行)

more —— 分页显示文件内容

tail —— 显示文件最后几行内容(10)

tailf —— tail -f —— 跟踪日志

head —— 查看开头日志

mount —— 输出当前系统上挂载的设备列表

umount —— 卸载设备

df —— 查看设备磁盘空间

du —— 显示某个特定目录的磁盘使用情况

awk [选项参数] 'pattern1 {action1} pattern2 {action2}...' filename —— 文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。

  • pattern —— 表示awk在数据中查找的内容(匹配方式)
  • action —— 在找到匹配内容时所执行的一系列命令
  • -F —— 指定输入文件折分隔符
  • -v —— 赋值一个用户定义变量
  • FILENAME —— 文件名
  • NR —— 已读文件的记录数
  • NF —— 浏览记录的域的个数(切割后,列的个数)
  • awk '{print $1,$3}' file —— 分析数据并生成报告
    • $1 表示打印第一列
    • $NF表示打印最后一列
    • 不写默认打印所有列
  1. 搜索passwd文件以root关键字开头的所有行,并输出该行的第7列
awk -F: '/^root/{print $7}' passwd
  • 搜索passwd文件以root关键字开头的所有行,并输出该行的第1列和第7列中间以“,”分割(只有匹配了pattern的行才会执行action)
awk -F: '/^root/{print $1","$7}' passwd
  • 只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell在最后一行添加"dahaige,/bin/zuishuai"(BEGIN 在所有数据读取行之前执行;END 在所有数据执行之后执行)
awk -F : 'BEGIN{print "user,shell"} {print $1 "," $7} END{print "dahaige,/bin/zuishuai"}' passwd
  • 将passwd文件中的用户id增加数值1并输出
awk -v i=1 -F: '{print $3+i}' passwd
  • 统计passwd文件名,每行的行号,每行的列数
awk -F: '{print "filename:"FILENAME ",linenumber:" NR ",columns:" NF}' passwd
  • 切割IP
ifconfig eth0 | grep "init addr" | awk -F: '{print $2}' |awk -F " " '{print $1}'
  • 查询sed.txt中空行所在的行号
awk '/^$/{print NR}' test.txt

sort —— 查看文件内容并排序

  • -n —— 依照数值的大小排序
  • -r —— 以相反的顺序排序
  • -t —— 设置排序时所用的分割符
  • -k —— 指定需要排序的列
  • 按照“:”分割后的第三列倒序排序
$ sort -t : -rnk 3 sort.sh

source xx.sh —— 在当前bash环境下读取并执行FileName中的命令

cut [选项参数] filename —— 文件中剪切数据的作用,将剪切的字节、字符、字段输出

 

  • -d —— 分隔符,按指定分隔符分割列
  • -f —— 列号,提取第几列

  • 切割第一列,第二列

  • 在文件中切割“开心”

 

  • 选取系统PATH变量值,第二个":"开始后的所有路径

  • 切割ifconfig后打印的IP地址

wc -l —— 统计文件内容行数

  • wc -c filename —— 显示一个文件的字节数
  • wc -m filename —— 显示一个文件的字符数
  • wc -l filename —— 显示一个文件的行数
  • wc -L filename —— 显示一个文件中的最长行的长度
  • wc -w filename —— 显示一个文件的字数

whereis —— 用于查询程序名称

chmod 777 file/chmod ug=rwx,o=x file —— 修改权限

  • 读写执行
    • rwx = 4+2+1 = 7
    • rw- = 4+2 = 6
    • r-x = 4+1 = 5
  • u-拥有者
  • g-同组人
  • o-其他人
  • a-全部人

pwd —— 查看当前目录的绝对路径

gzip file —— 压缩文件

gzcat —— 查看压缩过的文本文件内容

gunzip xx.gz —— 解压文件.gz

tar -zwvf xx.tgz —— 解压文件.tgz

eval()函数 —— 计算某个字符串

sleep —— 延迟操作

ping ip/域名 —— 查看网络连通情况

uniq —— 用于报告或忽略文件中的重复行,一般与sort命令结合使用

lsof —— 根据PID查端口

netstat -lnp | grep 80 —— 查看对应端口占用的进程

  • netstat -atn —— 查看本机所有链接的状态
    • -a —— 所有
    • -t —— 仅显示tcp链接的信息
    • -n —— 数字格式显示

trap —— 捕捉信号

-z $line —— 判断字符串长度是否为0

test —— 检查文件和比较值

  • 判断表达式
    • if test (表达式为真)
    • if test !表达式为假
    • test 表达式1 –a 表达式2 两个表达式都为真
    • test 表达式1 –o 表达式2 两个表达式有一个为真
  • 判断字符串
    • test –n 字符串 字符串的长度非零
    • test –z 字符串 判断字符串的长度是否为零
      • test -z "" && echo true || echo false
    • test 字符串1=字符串2 字符串相等
    • test 字符串1!=字符串2 字符串不等

md5sum —— 生成一个MD5的值

CUR_PATH —— 当前路径

$? —— 判断命令是否正确执行

$# —— shell的输入参数的个数

$$ —— 当前shell的PID

$0、$1、$2

  • $0 —— 脚本本身的名字
  • $1 —— 第一个参数
  • $2 —— 第二个参数

-o —— 或

-a —— 与

curl —— 在命令行中利用url进行数据或者文件传输

  • 一款强大的http命令行工具,它支持文件的上传和下载,是综合传输工具,按照传统,习惯称url为下载工具
  • -A/--user-agent <string> 设置用户代理发送给服务器
  • -b/--cookie <name=string/file> cookie字符串或文件读取位置
  • -c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
  • -C/--continue-at <offset> 断点续转
  • -D/--dump-header <file> 把header信息写入到该文件中
  • -e/--referer 来源网址
  • -f/--fail 连接失败时不显示http错误
  • -o/--output 把输出写到该文件中
  • -O/--remote-name 把输出写到该文件中,保留远程文件的文件名
  • -r/--range <range> 检索来自HTTP/1.1或FTP服务器字节范围
  • -s/--silent 静音模式。不输出任何东西
  • -T/--upload-file <file> 上传文件
  • -u/--user <user[:password]> 设置服务器的用户和密码
  • -w/--write-out [format] 什么输出完成后
  • -x/--proxy <host[:port]> 在给定的端口上使用HTTP代理
  • -#/--progress-bar 进度条显示当前的传送状态
  • seq [选项]... [首数] [增量] 尾数
    • 输出序列化
    • -f, --format=格式 使用printf 样式的浮点格式
    • -s, --separator=字符串使用指定字符串分隔数字(默认使用:\n)
    • -w, --equal-width 在列前添加0 使得宽度相同

xargs —— 可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数

  • -I {}批定了替换字符串,表示文件内容,能循环按要求替换相应的参数 使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,
  • 当-I与xargs结合使用,每一个参数命令都会被执行一次:
  • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的
  • -d 自定义定界符

find —— 实施查找

  • -type —— 查找某一类型的文件
    • b —— 块设备文件
    • d —— 目录
    • c —— 字符设备文件
    • p —— 管道文件
    • l —— 符号链接文件
    • f —— 普通文件

w —— 显示已经登录的用户及正在进行的操作

who —— 显示已经登录的用户名、终端名称、登录时间及登录IP

whoami —— 显示当前的用户名

Nginx——反向代理、负载均衡

  • 启动Nginx进程
    • /export/servers/nginx/sbin/nginx
  • 关闭Nginx进程
    • /export/servers/nginx/sbin/nginx -s stop
  • 重启Nginx进程
    • /export/servers/nginx/sbin/nginx -s reload
  • 查看nginx进程是否启动。此命令用在代码判断nginx进程是否启动,如果只用ps aux | grep nginx 即使没有启动也会用内容返回,影响判断
    • ps -ef|grep nginx|grep -v "grep"

echo——输出

  • echo -n —— 不换行输出
  • echo -e —— 处理特殊字符

read —— 输入

  • read -p ——输入命令前有提示字符

  • read -t ——指定读取值时等待的时间

if test ...then...else...fi——if判断

  • []与[[]]的区别

  • 算术比较运算符
    • -eq——等于
    • -lt——小于
    • -gt——大于
    • -le——小于等于
    • -ge——大于等于
    • -ne——不等于
  • 1. 首先,尽管很相似,但是从概念上讲,二者是不同层次的东西。
  • "[[",是关键字,许多shell(如ash bsh)并不支持这种方式。ksh, bash(据说从2.02起引入对[[的支持)等支持。
  • "["是一条命令, 与test等价,大多数shell都支持。在现代的大多数sh实现中,"["与"test"是内部(builtin)命令,换句话说执行"test"/"["时不会调用/some/path/to/test这样的外部命令(如果有这样的命令的话)。
  • 2.[[]]结构比Bash版本的[]更通用。在[[和]]之间的所有的字符都不会被文件扩展或是标记分割,但是会有参数引用和命令替换。
  • 用[[ ... ]]测试结构比用[ ... ]更能防止脚本里的许多逻辑错误。比如说,&&,||,<和>操作符能在一个[[]]测试里通过,但在[]结构会发生错误。
  • 3.(( ))结构扩展并计算一个算术表达式的值。如果表达式值为0,会返回1或假作为退出状态码。一个非零值的表达式返回一个0或真作为退出状态码。这个结构和先前test命令及[]结构的讨论刚好相反。
  • 4.[ ... ]为shell命令,所以在其中的表达式应是它的命令行参数,所以串比较操作符">" 与"<"必须转义,否则就变成IO改向操作符了(请参看上面2中的例子)。在[[中"<"与">"不需转义;
  • 由于"[["是关键字,不会做命令行扩展,因而相对的语法就稍严格些。例如
  • 在[ ... ]中可以用引号括起操作符,因为在做命令行扩展时会去掉这些引号,而在[[ ... ]]则不允许这样做。
  • 5.[[ ... ]]进行算术扩展,而[ ... ]不做

 

let —— 指定算术算法

set —— 查看系统所有变量

rmp —— 是RPM软件包的管理工具

du -sh * —— 查看当前目录下文件大小

  • -s——汇总
  • -h——表示以KB, MB, GB, TB格式进行人性化显示

readlink —— 找出符号链接所指向的位置

  • -f —— 递归跟随给出文件名的所有符号链接以标准化,除最后一个外所有组件必须存在
    • 简言:就是一直跟随符号链接,直到直到非符号链接的文件位置,限制是最后必须存在一个非符号链接的文件
  • readlink -f test.sh

dirname —— 去除文件名中非目录部分,删除最后一个\后面的路径,显示父目录

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值