我不常用的Linux命令

1. dd

磁盘写入1G数据用的时间和写入速率

time dd if=/dev/zero of=txt of=1M count=1000

2. RPM(Redhat Package Manager)命令

查询指定软件的安装路径与文件列表

rpm -ql <Package>

查询指定软件的配置文件

rpm -qc <Package>

查询指定软件有那个软件所安装

rpm -qf <Package>

查询指定软件的依赖软件(指定软件是基于那个软件安装的)

rpm -qpi <Package>

追踪软件状态(软件是否被篡改),根据返回状态查看具体的更改,如果没有返回内容则未被篡改

rpm -V <Package>
    
返回状态:

        5: MD5状态被改变

        S: 文件大小被改变

        L: 链接文件的源被改变

        T: 文件的最后修改时间被改变

        D: 设备改变

        U:  用户被改变

        G: 用户组被改变

        M: 包括权限和类型在内的模式已改变

        ?: 不可读文件

rpm的数据库  放在/var/lib/rpm下,修复损坏的数据库资料

rpm --rebuilddb

3.  yum(Yellow Dog Update Modify)命令

查看yum源中所有可用的升级,

yum check-update

查看软件包信息

yum info <Package>

yum配置内置变量,Euler系统可以尝试更改下Centos的源获取部分依赖

releasever————系统发行版本号
arch————CPU架构
basearch————系统架构
YUM0-9————shell对应的0-9个变量替换

4. vim

快捷键

多窗口编辑 

 5.  编译安装

make的作用——将软件源代码编译成计算机可以直接识别的机器语言。

6. 一次性计划任务

at 命令的全量格式

at 12:00 2022-10-17

7.  df命令

查看文件系统类型

df -T

查看磁盘inode

df -i

        inode的个数决定了分区可以创建文件的数量,该分区有多少个inode就可以创建多少个文件

8. top命令

命令行显示程序名及运行参数

top -c 
输出示例:
top - 22:42:42 up 17:46,  4 users,  load average: 0.55, 0.59, 0.46
Tasks: 197 total,   1 running, 196 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.8 us,  2.6 sy,  0.0 ni, 92.4 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem :  3861256 total,   968252 free,  1068432 used,  1824572 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  2497564 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 24068 root      20   0 1164484 321768  42128 S  23.6  8.3  23:19.39 kube-apiserver --advertise-address=16.188.100.6 --allow-privileged=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=+

指定刷新间隔(默认3秒)

top -d <Time>

显示活跃进程

top -i

显示指定数量的进程

top -n <Number>

显示指定PID的进程

top -p <PID>

显示指定用户的进程

top -u <User>

CPU占用us的含义:用户空间占用CPU时间百分比,在默认刷新3s的间隔下,us=cpu占用时间/3s        #(/表示除以)

top命令输入:

        M: 按照内存使用率排序

        N: 根据进程号排序

        z: 高亮显示

        1(阿拉伯数字1):查看CPU个数,显示各逻辑CPU状态

        f: 查看全称信息,输出示例:

	Fields Management for window 1:Def, whose current sort field is %CPU
	   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
	   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

	* PID     = Process Id
	* USER    = Effective User Name
	* PR      = Priority
	* NI      = Nice Value
	* VIRT    = Virtual Image (KiB)
	* RES     = Resident Size (KiB)
	* SHR     = Shared Memory (KiB)
	* S       = Process Status
	  %CPU    = CPU Usage
	* %MEM    = Memory Usage (RES)
	* TIME+   = CPU Time, hundredths
	* COMMAND = Command Name/Line
	  PPID    = Parent Process pid
	  UID     = Effective User Id
	  RUID    = Real User Id
	  RUSER   = Real User Name
	  SUID    = Saved User Id
	  SUSER   = Saved User Name
	  GID     = Group Id
	  GROUP   = Group Name
	  PGRP    = Process Group Id
	  TTY     = Controlling Tty
	  TPGID   = Tty Process Grp Id
	  SID     = Session Id
	  nTH     = Number of Threads
	  P       = Last Used Cpu (SMP)
	  TIME    = CPU Time
	  SWAP    = Swapped Size (KiB)
	  CODE    = Code Size (KiB)
	  DATA    = Data+Stack (KiB)
	  nMaj    = Major Page Faults
	  nMin    = Minor Page Faults
	  nDRT    = Dirty Pages Count
	  WCHAN   = Sleeping in Function
	  Flags   = Task Flags <sched.h>
	  CGROUPS = Control Groups
	  SUPGIDS = Supp Groups IDs
	  SUPGRPS = Supp Groups Names
	  TGID    = Thread Group Id
	  ENVIRON = Environment vars
	  vMj     = Major Faults delta
	  vMn     = Minor Faults delta
	  USED    = Res+Swap Size (KiB)
	  nsIPC   = IPC namespace Inode
	  nsMNT   = MNT namespace Inode
	  nsNET   = NET namespace Inode
	  nsPID   = PID namespace Inode
	  nsUSER  = USER namespace Inode
	  nsUTS   = UTS namespace Inode

        d: 块状显示高亮行

9. 路由命令

查看路由表

route -n
输出示例:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         16.188.100.2    0.0.0.0         UG    0      0        0 ens33
10.244.219.64   0.0.0.0         255.255.255.192 U     0      0        0 *
10.244.219.71   0.0.0.0         255.255.255.255 UH    0      0        0 cali9b2a359ac01
10.244.219.72   0.0.0.0         255.255.255.255 UH    0      0        0 calid43fa40202c
10.244.219.73   0.0.0.0         255.255.255.255 UH    0      0        0 caliba7c6861cce
16.188.100.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 ens33
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

添加默认网关为16.188.100.254

route add default gw 16.188.100.254

添加网段

route add -net 16.188.100.0/24 gw  16.188.100.254

添加路由记录,指定eth0网卡传输到16.188.100.0网段

route add  -net 16.188.100.0 netmask 255.255.255.0  dev eth0

删除默认网关

route del default gw 16.188.100.254

删除指定网段的网关记录

route del -net 16.188.100.0/24

配置文件设置路由参数

[root@master ~]# vim /etc/sysconfig/network-scripts/route-eth0
16.188.100.0/24 via 172.16.8.88
[root@master ~]# systemctl restart network

路由追踪

traceroute -n <IP>
traceroute -I <DomainName>

另外,查询DNS记录

nslookup <Domain>
dig <Domain>

10. 内核模块

查询已加载的内核模块

lsmod

查看已加载的模块信息

modinfo <ModuleName>

加载内核模块

modprobe <MouleName>

卸载内核模块

modprobe -r <ModuleName>

开机加载文件: /etc/rc.sysinit

echo "modprobe <ModuleName>" > /etc/rc.sysinit

内核参数配置文件:/etc/sysctl.conf,使参数生效

sysctl -p

11. history

Ctrl+r         打开history搜索,输入关键字可在历史命令中搜索相关命令,按Enter即可输入命令

history显示日期和时间

export HISTTIMEFORMAT='%F-%T '

12. 控制台快捷键

快捷键功能快捷键功能
Ctrl+a /Home移至行首Ctrl+u删除光标至行首的字符
Ctrl+e /End移至行尾Ctrl+k删除光标至行尾的字符
Ctrl+f右移一个字符Ctrl+w删除光标前一个单词
Ctrl+b左移一个字符Alt+d删除光标后一个单词

13. Bash环境

变量属性设置

typeset

预定义变量

declare

位置变量$*和$@的区别:

        两者都代表脚本所有参数的内容,区别在于$*会将所有的参数看做一个整体,$@将所有的参数作为个体看待。

变量的展开替换

${var:-word}    if var exist and not null,return var;else return word
${var:+word}    if var exist and not null,return word;else return null
${var:=word}    if var exist and not null,return var;else set var=word    
${var:?word}    if var exist and not null,return var;else print 'var:word'

修改变量的值后输出

[root@master scripts]# cat vartest.sh
#!/bin/bash
Content=`head -1 /etc/passwd`
echo ${Content}
echo ''
echo ${Content#*:}              #从头删除,执行最短匹配
echo ${Content##*:}             #从头删除,执行最长匹配
echo ${Content%:*}              #从尾删除,执行最短匹配
echo ${Content%%:*}             #从尾删除,执行最长匹配
echo ''
echo ${Content/root/admin}      #替换第一个匹配的root为admin
echo ${Content//root/admin}     #替换所有匹配的root为admin

[root@master scripts]# ./vartest.sh
root:x:0:0:root:/root:/bin/bash

x:0:0:root:/root:/bin/bash
/bin/bash
root:x:0:0:root:/root
root

admin:x:0:0:root:/root:/bin/bash
admin:x:0:0:admin:/admin:/bin/bash

数组

        数组索引是从0开始的整数,无大小限制

创建数组
listname[index]=value
listname=(value1 value2 ...)

定义空数组(类似Python的变量占位)
declare -a <listname>

数组调用
${listname[index]}
${listname[@]}         #调用所有数组成员
${listname[*]}         #调用所有数组成员   
${#listname[index]}    #返回${listname[index]}的长度
${#listname[@]}        #返回数组中的元素个数
${#listname[*]}        #返回数组中的元素个数

数值计算

语法格式: $((expression))
$((x+y))  #变量相加
-    减
*    乘
/    除
%    取余
++    自加1
--    自减1
**    幂运算

expr 工具:
expr arg1 + arg2    #加
-    减
\*   乘
/    除
%    取余

内容测试

        需要注意,“[”之后,“]”之前必须要有空格

[ -s FILE ]    文件存在且不为空
[ -e FILE ]    文件存在
[ -n STRING ]  字符串长度不为0  
[ -z STRING ]  字符串长度为0

14. sed命令

-f: 从文件中读取脚本指令

sed -f sed.sh test.txt

sed 替换执行多个指令的3种方式

使用";"隔离
sed -i 's/yes/no/;s/landpage/LandingPage/' /usr/local/land/BOOT/classes/aplication.proprities

使用-e选项
sed -i -e 's/yes/no/' -e 's/landpage/LandingPage/' /usr/local/land/BOOT/classes/aplication.proprities

分行写
sed -i '
> s/yes/no/
> s/landpage/LandingPage/' /usr/local/land/BOOT/classes/aplication.proprities

first~step: 从first开始打印,步长为step

sed -n '1~2p' test.txt	#打印奇数行

替换匹配到的第n个内容

替换第二个body为/body
sed -i 's#body#/body#2' /usr/local/nginx/index.html

15. awk

输出字段个数

awk '{print NF}'

输出最后一个字段

awk '{print $NF}'

打印倒数第3行

awk '{print $(NF-3)}' destfile

打印空白行个数

awk '/^$/ (x+=1) END {print x}' destfile

16. shell

几种不同的运行脚本的方式:

        1. 添加执行权限后使用 ./scripts.sh,用户当前shell下开启一个新的子进程,并在子进程的环境中运行脚本程序;

        2. 使用bash或者sh运行脚本,系统不再关心脚本 #! 后面的解释器,直接使用bash或者sh为解释器解释并运行程序;

        3. 使用  .  scripts.sh 或者source  scripts.sh,脚本将在用户当前的shell中运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值