随笔 - 55  文章 - 0  评论 - 0  阅读 - 1047

21_常用命令04

1. uniq 去重
[root@kvm ~]# cat 1.txt
10
20
30
40
30
30
50
70
70
70
80
[root@kvm ~]# cat 1.txt | uniq
10
20
30
40
30
50
70
80
[root@kvm ~]#
[root@kvm ~]# cat 1.txt | uniq -c
      1 10
      1 20
      1 30
      1 40
      2 30
      1 50
      3 70
      1 80
2. sort 排序
[root@kvm ~]# cat 1.txt
cc
aa
bb
ff
dd
ab
cd
[root@kvm ~]# cat 1.txt | sort
aa
ab
bb
cc
cd
dd
ff
[root@kvm ~]# cat 1.txt | sort -u
aa
ab
bb
cc
cd
dd
ff
3. 查看进程详细信息 ps
# 常用搭配 ps -aux
[root@kvm ~]# ps -aux | more
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0 170328 14192 ?        Ss   16:08   0:02 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root           2  0.0  0.0      0     0 ?        S    16:08   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   16:08   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   16:08   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   16:08   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I<   16:08   0:00 [netns]

# 常用搭配  ps -ef
[root@kvm ~]# ps -ef | more
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 16:08 ?        00:00:02 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root           2       0  0 16:08 ?        00:00:00 [kthreadd]
root           3       2  0 16:08 ?        00:00:00 [rcu_gp]
root           4       2  0 16:08 ?        00:00:00 [rcu_par_gp]
root           5       2  0 16:08 ?        00:00:00 [slub_flushwq]
root           6       2  0 16:08 ?        00:00:00 [netns]

# 启动后台进程与杀后台进程
[root@kvm ckh]# ls
tmp.log  tmp.sh
[root@kvm ckh]# cat tmp.sh
#!/bin/bash

for i in {1..999};do
        sleep 1
        echo $i >>tmp.log
done
[root@kvm ckh]# bash tmp.sh &       # 启动一个后台脚本 => 后台进程
[1] 94838
[root@kvm ckh]# ps -aux | grep tmp  # 查进程
root         111  0.0  0.0      0     0 ?        S    16:08   0:00 [kdevtmpfs]
root       94838  0.0  0.0   7520  3928 pts/0    S    21:32   0:00 bash tmp.sh
root       95533  0.0  0.0   6408  2172 pts/1    S+   21:33   0:00 grep --color=auto tmp
[root@kvm ckh]#
[root@kvm ckh]# kill -9 94838       # 杀进程
[root@kvm ckh]#
[root@kvm ckh]# ps -aux | grep tmp
root         111  0.0  0.0      0     0 ?        S    16:08   0:00 [kdevtmpfs]
root       95658  0.0  0.0   6408  2172 pts/1    S+   21:33   0:00 grep --color=auto tmp
[root@kvm ckh]#                      # 会有提示
[1]+  Killed                  bash tmp.sh
4. 随机字符串
# 方法1
[root@kvm ckh]# tr -dc '_A-Za-z0-9' </dev/urandom | head -c10;echo
g1nRuvklHn
[root@kvm ckh]#
[root@kvm ckh]# tr -dc '@*%$_A-Za-z0-9' </dev/urandom | head -c10;echo
Y*7v64AXgm
[root@kvm ckh]# tr -dc '@*%$_A-Za-z0-9' </dev/urandom | head -c10;echo
cBxF%jddth
[root@kvm ckh]# tr -dc '@*%$_A-Za-z0-9' </dev/urandom | head -c10;echo
5eV_yFM2MH

# 求字符串长度,遍历字符串,也可以根据字符串下标随意指定长度生成字符串
[root@kvm ckh]# key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
[root@kvm ckh]# num=${#key}
[root@kvm ckh]# echo $num
62
[root@kvm ckh]# index=$[RANDOM%num]
[root@kvm ckh]#
[root@kvm ckh]# echo $index
52
[root@kvm ckh]# index=$[RANDOM%num]
[root@kvm ckh]# echo $index
9
[root@kvm ckh]#
[root@kvm ckh]# echo ${key:$index:1}
9
[root@kvm ckh]# echo ${key:$index:2}
9a
[root@kvm ckh]# echo ${key:$index:3}
9ab
[root@kvm ckh]#
[root@kvm ckh]# for i in `seq $((${#key} - 1))`
> do
> echo ${key:$i:1}
> done
1
2
...
Y
Z

# 方法2
[root@kvm ckh]# uuidgen
b5f491f7-84c4-409f-9ff0-2b5f8dd54491
[root@kvm ckh]#
[root@kvm ckh]# uuidgen
71c89471-e803-49ad-bdfe-339e4769abb2
[root@kvm ckh]# str=`uuidgen`
[root@kvm ckh]#
[root@kvm ckh]# echo $str
0f823d45-3cde-4f68-90ea-ebba8c3d899e
5. cut 分隔符
# 方法1
[root@kvm ckh]# cat /etc/passwd | grep halt
halt:x:7:0:halt:/sbin:/sbin/halt
[root@kvm ckh]# cat /etc/passwd | grep halt | cut -d: -f3
7
[root@kvm ckh]# cat /etc/passwd | grep halt | cut -d: -f4
0
[root@kvm ckh]# cat /etc/passwd | grep halt | cut -d: -f5
halt

# 方法2
[root@kvm ckh]# echo "11a22a33" | cut -da -f2
22
[root@kvm ckh]# echo "11a22a33" | cut -d"a" -f2
22
6. 关机与重启
# 重启
[root@stream9 ~]# reboot


# 关机
[root@stream9 ~]# poweroff
[root@stream9 ~]# Connection to 10.10.10.199 closed by remote host.
Connection to 10.10.10.199 closed.
[root@kvm ckh]#
[root@kvm ckh]# virsh list --all
 Id   Name   State
-----------------------
 -    vm2    shut off
7.判断用户输入
#!/bin/bash
read -p "请输入一个字符:" KEY
case "$KEY" in
[a-z]|[A-Z])
     echo "字母" ;;
[0-9])
     echo "数字" ;;
*)
     echo "空格、功能键或其他控制字符"
esac
posted on   鸟叔书  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示