工作中常用的linux命令小结

基本学习方式

系统查询

//查看系统信息
[root@izbp1ezkmfgg9tbm7bpj4sz admin]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.4.1708 (Core) 
Release:        7.4.1708
Codename:       Core

[root@izbp1ezkmfgg9tbm7bpj4sz admin]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

命令行快捷键

control + a        光标转移到行首, a有ahead之意
control + e        光标转移到行首, e有end之意
control + u        删除光标之前的字符
control + k        删除光标之后的字符
control + r         反向搜索执行过的命令,如果不符合期望,可以重复执行此命令

远程连接ssh

ssh root@192.168.0.1    连接远程服务器,在提示下输入密码

文件相关操作

scp

拷贝本地文件夹 /home/search 到目标机器 home目录下
scp -r /home/search root@192.168.10.132:/home      -- 文件递归拷贝,加**-r**参数

find

find . -name  "search"   -- 在当前目录及其子目录下寻找名字为search的文件或文件夹
find . -iname "admi*"    --在当前目录及其子目录下寻找名字以admi开头的文件或文件夹,忽略大小写

https://man.linuxde.net/find

文件排序

1,按照时间升序

命令:ls -lrt
详细解释:

-l     use a long listing format  以长列表方式显示(详细信息方式)
-t     sort by modification time 按修改时间排序(最新的在最前面)
-r     reverse order while sorting (反序)

2,按照时间降序(最新修改的排在前面)

命令:ls -lt
详细解释:

-l     use a long listing format  以长列表方式显示(详细信息方式)
-t     sort by modification time 按修改时间排序(最新的在最前面)

https://www.cnblogs.com/wangkongming/p/3994962.html

查找文件内容

说明命令
查找关键字,选取第四、七列、最后5千行,定位输出到文件中`grep “GET /rest/search” access.log
以逗号分隔日志,打印第8,9列awk -F',' '{print $8}' so.access.log

文本排序

awk -F',' '{print $8}' so.access.log|awk -F'"' '{print $4}'|sort | uniq -c | sort -nr |head -n 20

先自然排序,再统计行出现频率,再按出现频率进行倒排。

文件全路径

ls pwd/hdc_me*

查看当前路径下文件名以hdc_me开头的所有文件的全路径

递归创建新目录

mkdir -p   A/B/C

如果目录C已经存在,则此执行此命令无意义;若C之上的任意一级目录不存在,都会递归创建后才创建C目录。

下载gz文件并解压到指定位置

curl "http://xxx.tao.tgz" | tar xz -C /home/admin/abc/ 

tail

tail -n 200 file.txt 查看文件的最后200行
tail -n +200 file.txt 从第200行开始查看文件

sed

sed ‘s/^/taobao,&/’ file
在每行的行头增加taobao, 字符串


sed ‘s/$/ ABC/’ file1
追加 ABC到每行末尾
$为末尾符号,s代表替换末尾为 ABC


sed ‘s/原字符串/替换字符串/g’


sed ‘s/^M//g’ file1.txt > file2.txt
注意: ^M的输入方式是 Ctrl + v ,然后Ctrl + M
替换文本中的^M不可见字符
/g表示全局替换,详见以下链接

awk

在这里插入图片描述


echo “string1 (string2) string3” | awk -F ‘[()]’ ‘{print $2}’
以( 和) 作为分隔符
echo “string1 {string2} string3” | awk -F ‘[{}]’ ‘{print $2}’
以{和}作为分隔符


awk -v OFS=“-”
指定输出分隔符为-

  • 提取奇数行记录

awk ‘NR%2 !=0’ a.txt

  • 提取行号末尾数字为0-3的行记录

awk ‘{ if(NR%10<3) {print}}’ file.txt

sort

-u //去重并排序
-r //倒排
-n //按照数值的大小排序


基础训练

遍历+是否为空

遍历一个文件每一行,分析其是否在另外一个文件出现过,出现过则打印出来

#!/bin/bash

for line in `cat test.txt`
do
   tep=`grep $line flight.txt`
   # echo ${tep}
   if [ -n "${tep}" ];then
     echo $line
   fi
done

grep xargs 遍历

遍历一个文件每一行,分析其是否在另外一个文件出现过。

cat test.txt |xargs -I {} grep {} flight.txt

参考 https://www.runoob.com/linux/linux-comm-xargs.html

shell删除文本比较长的行

https://blog.csdn.net/Jerry_1126/article/details/77871972

系统管理

top

P 键 按照cpu使用率排序
M 键 按照内存使用率排序
l 键 切换显示平均负载和启动时间信息
m 键 切换显示内存信息
t 键 切换显示进程和cpu状态信息
c 键 切换显示命令名称和完成命令行信息

mac下

先输入 o 键 ,再输入 cpu 则按cpu使用量排序,输入 rsize 按内存使用量排序。

字段含义

top - 09:32:58|up 61 days, 11:18|1 user|load average: 0.04, 0.05, 0.09

当前系统时间|系统已运行时间|在线用户,包含系统用户|系统负载。分别是1,5,15分钟前到潜在的平均值

Tasks|227 total|  1 running|225 sleeping|1 stopped|0 zombie

-|总进程数|正在运行的进程数|正在睡眠的进程数|停止的进程数|僵死进程数

%Cpu(s)|0.8 us| 1.0 sy| 0.0 ni| 98.2 id|0.0 wa| 0.0 hi| 0.0 si|0.0 st

-|cpu占用率(%),用户进程占用cpu百分率|系统占用cpu百分率|用户进程空间内改变过优先级的进程占用CPU百分比|cpu空闲率|等待IO的CPU时间百分比|硬中断(Hardware IRQ)占用CPU的百分比|软中断(Software Interrupts)占用CPU的百分比|虚拟机占用百分比


KiB Mem|8175028 total|635844 free|3024460 used|4514724 buff/cache
-|内存总量|内存空闲量|内存使用量|缓存的内存量

KiB Swap|15624016 total|15606756 free|17260 used| 4678020 avail Mem

-|交换区总量|交换区空闲量|交换区使用量|缓冲交换区总量


PID|USER|PR|NI|VIRT|RES|SHR|S|%CPU|%MEM|TIME+|COMMAND

进程号|进程创建者|进程优先级|nice值|进程使用的虚拟内存总量|进程使用的、未被换出的物理内存大小|共享内存大小|进程状态|进程占用cpu百分比|进程占用内存百分比|进程运行时间|进程名称


NI nice值。越小优先级越高,最小-20,最大20(用户设置最大19)
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

top -H -p pid 查找进程下占用cpu最高的线程 (-H -p 可简化为-Hp)

找到cpu最高的线程,用printf ‘%x\n’ pid 转换为16进制

文件管理

cat

查看不可见字符

cat -v {file}
在这里插入图片描述
行末的^M为不可见字符,换行符, 可
cat -v ${fileName} | sed ‘s/^M//g’ > ${fileName}.final 进行替换

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值