Unix_Linux_AIX_常用命令总结

2023-11-15

目录

■Java常用知识总结

■前言 (常用链接)

・Shell 自动化 处理相关 需要使用到的命令

■编码思想

■编码规范

■shell脚本

■循环处理

1.循环小火车

2.循环cup性能

■各种命令

0.cd 

1.uname

2.ifconfig

3.who

4.chown

5.chmod

6.cp

7.tail     

8.head

9.grep

10.view

11.1.cat

11.2.less 分页查看文件

11.3.more 查看文件

12.clear

13.reset

14.free

15.df

16.du

17.pwd

18.passwd

19.man

20.tar 

21.ls

22.ps

ps -ef 和 ps -elf 在显示时的区别,举个例子

23.chsec

24.sed

25.locate

26.cal

27.mkdir

28.touch

29.rm

30.vi

31.特殊符号之【`】 不是单引号 (是反单引号)

32.特殊符号之【&】 

33.sudo

34.su

35.log设定(Tera Term)

36.ll (只限Linux中使用)

37.id

38.特殊符号之 【$()】

39.dirname

40.find

4.查找文件夹下,哪些文件,含有某字符

6.find 参数 mtime

41.history

42.1.md5sum fileName

42.2.sum fileName

43.systemctl

44.wc

45.hexdump

46.xargs

47.vmstat

47.umask

48.mv 

49.jq

50.SUID   SGID

51.usermod

52.访问权限说明

53.gpasswd

54.adduser 创建用户

55.grpup  .passwd   .sudoers

   查看所有组, 所有用户,sudo权限

56.kill

57.awk

58.| 管道(|)    (パイプ  管道 pite)

59.echo

60.其他用户修改文件后,对文件所属,组的影响

61.tee

62.查看系统・用户信息

63.chage -l yourUserName

64.ssh

65.function

66.unzip

67.zip

68.diff

69.scp 获取远程文件

70.screenfetch 显示系统信息

71.sl 小火车

72.cmatrix:黑客帝国

73.特殊符号【./】

74.netstat

74.1.netstat、rmsock  (AIX)

75.cron

76./dev/null

77.nohup

78.lsof

79.ln

​编辑80.unlink  解除软连接

81.which

82.特殊符号【"】(双引号)  与【'】单引号

83.符号【&&】、【||】

84.basename

85.gunzip

86.locale // 命令

87.LANG // 系统变量  // Language的缩写

88.安装语言包・查看默认语言设置

89.showmount

90.Linux的shell命令,直接在终端执行。

91.特殊符号【{}】 大括号

92.gzip

93.mount

94.unmount

95.iconv

96.tcpdump

97.★★★ 实际应用  ★★★ 【if else】【字符串包含】【字符串比较】

96.time  查看命令性能 (不同于 windows 的time)

97.locale

98.native2ascii    (转换 \uXXXX  unicode )

99.zcat

100.perl

101.curl

https认证使用

登录使用

指定客户端证明书

参数 m 指定超时等待时间

curl的错误类型

102.set

103.openssl

导出公钥(证书)(crt)

导出秘钥(key)

104.特殊符号【~】

105.sftp之参数【-b】

106.date

107.sh -xe 参数是什么意思

108.grep 查询不到时, 也能返回 0

109.base64

110.bc

111.known_hosts 中  ssh-rsa 的值 是根据什么生成的

112.如何查看主机的公钥信息

113.shell 中 ${0##*/} 是什么意思-----获取脚本文件的名称

114.XXX

115.XXX

116.XXX

■AIX

1.查看端口对应的进程 (Websphere Server)

2. shell  // AIX切换壳 

3.删除文件

4.csum

5.find運用(AIX)

6.istat   查看文件最新修改时间

7.AIX 查看用户上一次登录・用户是否被锁

8.在 AIX 系统中,如果没有安装 unzip 命令,可以尝试使用以下命令解压缩 Zip 文件:

9.查看磁盘容量

10.查看字符对应的16进制编码 【od】 (linux 也能用) 

11.last【用于显示登录和注销的用户会话记录】

12.

13.

14.

15.

16.

17.

18.

19.

■其它

1.AIX 无法补全的原因

2.XXX

■更多命令


======

■Java常用知识总结

Java8新特性学习_001_(Lambda表达式,函数式接口,方法引用,Stream类,Optional类)_sun0322的博客-CSDN博客

■前言 (常用链接)

  ・Unix,Linux 介绍 

  初次安装Linux(Ubuntu)(ssh,ftp服务安装)_sun0322-CSDN博客 (介绍内容在文章底部)

・ 自己的用户

自己的Linux用户_sun0322-CSDN博客

・ 常用目录 

  Linux中常用的目录(/home,/etc ,/opt)_sun0322-CSDN博客

・Linux服务器,性能测试相关

Linux系统性能相关知识学习_sun0322-CSDN博客

・Shell 自动化 处理相关 需要使用到的命令

shell自动化处理_相关知识整理(整理中)20210329_sun0322-CSDN博客

・TeraTerm相关操作

使用TeraTerm自带SSH SCP功能,传送文件_sun0322-CSDN博客

・硬链接(hard link)和软链接(soft link或symbolic link)

Linux系统中的硬链接(hard link)与软链接(symbolic link) - lemonning - 博客园

・ 更多命令

【Linux】一步一步学Linux系列教程汇总(更新中......)_嵌入式开发工程师---欢迎大家一起交流-CSDN博客_csdn dengjin

・ 常用bat命令

常用 doc bat 命令总结_sun0322-CSDN博客

・工作中使用的单词

https://blog.csdn.net/sxzlc/article/details/104872052

■编码思想

https://blog.csdn.net/sxzlc/article/details/116357487

每个命令行是个小工具,专注又单一,
但是可以通过管道的方式把他们连接起来,协同完成一个大任务,
这种设计理念是从一开始就植根到Unix当中的。 

The UNIX Philosophy,提出了9条格言:
==============================

一:小即是美。

二:让程序只做好一件事。

三:尽可能早地创建原型。

四:可移植性比效率更重要。

五:数据应该保存为文本文件。

六:尽可能地榨取软件的全部价值。

七:使用shell脚本来提高效率和可移植性。

八:避免使用可定制性低下的用户界面。

九:所有程序都是数据的过滤器。

==============================

■编码规范

1.脚本格式要求
  ・脚本以#!/bin/bash开(关联(file):Linux中的file命令_sun0322-CSDN博客
  ・脚本需要有可执行权限

             

2.Shell变量简介
  ・Linux Shell中的变量分为系统变量和用户自定义变量。
  ・系统变量:$HOME、$PWD、$SHELL、$USER等,比如echo $HOME
  ・显示当前shell中所有变量:set

3.shell变量的定义
(1)基本语法:
  ・定义变量:变量名=值
  ・撤销变量:unset 变量
  ・声明静态变量:readonly变量,注意,不能unset

(2)定义变量的规则:
  ・变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
  ・等号两侧不能有空格
  ・变量名称一般习惯为大写,这是一个规范,遵守即可。

(3)将命令的返回值赋给变量
  ・NAME=`date`反引号,运行里面的命令,并将结果赋给变量NAME
  ・NAME=$(date)等价于反引号

■shell脚本

变量说明: 
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览 
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@ 
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$# 
添加到Shell的参数个数 
$0 
Shell本身的文件名 
$1~$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

快速入门Shell脚本(1)——Shell脚本的介绍

快速入门Shell脚本(1)——Shell脚本的介绍_大数据记录-CSDN博客

快速入门Shell脚本(2)——系统变量与自定义变量

快速入门Shell脚本(2)——系统变量与自定义变量_大数据记录-CSDN博客

快速入门Shell脚本(3)——条件判断语句与循环

快速入门Shell脚本(3)——条件判断语句与循环_大数据记录-CSDN博客_shell 判断语句

https://blog.csdn.net/sxzlc/article/details/107926752 (私密)

快速入门Shell脚本(4)——常用的函数操作

快速入门Shell脚本(4)——常用的函数操作_大数据记录-CSDN博客

■登陆用户

 $表明是非root用户登录,#表示是root用户登录

   sudo su - 之后,会变成 #

■内部变量

Linux中 大写的$PWD 与小写的 pwd 之间的区别 (变量 与 命令 的区别)_sun0322-CSDN博客_$pwd

■vi

Linux中 Vi的使用_sun0322-CSDN博客

■权限

Linux 命令 之 【chmod】 修改文件权限~_sun0322-CSDN博客

■ls -l  每一列的含义

linux下 ls -l 命令显示结果每一列代表什么意思 - 码农编程进阶笔记 - 博客园

■ls -l  文件类型

linux下的7种文件类型[ls -l] - 夏天就该吃西瓜 - 博客园

■循环处理

1.循环小火车

for ((c=1;c<=10;c++)); do sl; sleep 3; done

---

while true; do sl; sleep 3; done

---

2.循环cup性能

Linux系统性能相关知识学习_sun0322的博客-CSDN博客

while true; do TIME=`date "+%H:%M:%S"`; CPU=`ps -aux | grep mysqld | grep -v grep | awk '{print $3}'`; MEM=`ps -aux | grep mysqld | grep -v grep | awk '{print $3}'`;echo "${TIME},${CPU},${MEM}";sleep 3; done

---

■各种命令

0.cd 

    目录跳转

1.uname

     uanme -a 显示服务器全部信息

     uname -n 显示服务器名字

2.ifconfig

     ifconfig -a  查看网络配置

3.who

     显示当前在线用户

4.chown

      chown root:webserver  修改文件的 → 所有者:用户组

5.chmod

     chomod -R 777 /XXX/XXX/*.sh  // -R 代表修改子文件夹中的内容

     chomod -R a+r  /XXX/XXX/*.sh

     chomod 777 xxx.log

   Linux 命令 之 【chmod】 修改文件权限~_sun0322-CSDN博客

===

目录权限已经是744 其他用户仍不能访问目录

・对于一般文件
可读权限就是能够读取该文件的实际内容,
可写权限就是能够编辑、新增、修改文件的实际内容,
可执行则代表能够运行一个脚本程序的权限。

・对于目录文件
对于目录文件的可读权限就是能够读取该目录内的结构和文件列表,
可写权限就是能够更改目录内文件结构列表、新增、删除、重命名文件,
而可执行实质是代表进入该目录的权限。

因此,对于文件,我们多设置为 644

对于文件夹,我们多设置为 755

(rwx)

===

   -R, --recursive
              change files and directories recursively

6.cp

     cp -fp  /from/1.txt /to/1/txt   // preserve 保持文件属性 , force 覆盖

    -p 参数虽然可以保持属性,但是,有的时候,需要sudo do - 切换特权用户之后,才能有效。

         因为,如果不是特权用户的话,没有操作其他用户的权限,

          即使使用 -p参数复制,复制之后,并不能保持文件属性。

          文件的所有者和组信息,是登录用户的信息,不能保有原来的信息。

cp -r /AAA/BBB/CCC /home/user001

复制文件夹。把CCC这个文件夹,复制到 user001目录下面。 

在复制的时候,需要使用参数 -r 

7.tail     

     tail -n 500 xxx.log 显示文件最后500行,一般用于查看log

    ・tail -n

    tail -f /XXXXX/XXX/.log     //动态查看log信息

tail -f AAA.log  根据文件描述符进行追踪,当文件改名或被删除,追踪停止

tail -F AAA.log  根据文件名进行追踪,并保持重试
                 即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
---
tail -F AAA.log | grep FIND_KEY_WORD

・tail -数字

tail 命令,下面两个效果相同

tail -n 3
tail -3
---
都是显示最后三行的意思

---

2022-12:grep '\"2021\-12' ./*.csv | tail -3 | xargs iconv -f sjis -t utf8
显示查询出的文件中,最后三个文件的内容。(查看文件时,把编码转换成utf8后打开)

8.head

显示文章前十行

 head -n 10 xxx.jsp

查看第一个,ERROR,以及其下面的30行

cat xxx.log | grep -30 ERROR | head -60 | tail -30

9.grep

     grep searchStr xxx.log  // 在log中查找字符串

9.1.  Linux中,支持正则表达式

       ls -l | grep "*.log"   // 查询不到内容

       ls -l | grep .log   // OK,可以查询到你想要的内容 

       ls -l | grep *.log   // OK,可以查询到你想要的内容 

9.2.  grep 中的 ^ 代表开头的意思

grep /bin/grep
grep -iv [指定字条串] [文件]
在文件中搜索字符串匹配的行并输出
-i 不区分大小写 -v 排除指定字符串

grep -i java /etc/profile

grep -v ^# /etc/profile
不显示以#开头的行
要找出userIdList.csv文件中,A到H打头的行
grep '^[A-H]' userIdList.csv

※ 不同于 java 中的正则表达式 中的 ^,    java 中的 ^ 代表 排除的意思

[^abc] Any character except a, b, or c (negation) 

Java学习(更新中)_sun0322-CSDN博客

===============

9.3.  grep 中的 $ 代表结尾的意思

===============

9.4.1. grep -E "Batch[0-9]{3}W"
  按正则表达式查询,使用参数【-E】 
下面的第一行,第二行,OK, 3,4行NG,查询不出来内容

grep -E "Batch[0-9]{3}W"
grep -E Batch[0-9]{3}W
grep Batch[0-9]{3}W
grep Batch[0-9]{3}W

===============

9.4.2. grep -e "batch.jar$"

XXX_batch.jar // 抽出
XXX_batch.jar_bak_2020_1208 // 不会被抽出

grep -e "KEY1" -e "KEY2"  // 查询多个条件

keytool -list -v -keystore cacerts -storepass changeit | grep -e "XXX" -e "XXX"

外部系统连接SFDC,获取SFDC侧的数据_sun0322-CSDN博客

===============

9.5.grep -v 排除

9.6.・cat xxx.log | grep -1 yourkeyword

// 会把关键字所在的行,以及前一行,后一行,都显示出来

9.7.grep -Hn 显示文件和行数

9.8.文件名的显示

grep key  *.csv   // 显示文件名:内容 (即使不加H,也能显示文件名)

grep key  user.csv  // 不显示文件名 (想显示时,要加 H)

       

10.view

       view xxx.log

11.1.cat

      cat xxx.log

    // 可以在显示文件的时候,显示行号

root@sxzap01:/usr/local/tomcat/apache-tomcat-9.0.30/webapps/examples/jsp# cat -n index.html

    

  // 显示行号,可以配合grep一起使用

cat -n index.html | grep apache

cat 与 more 一起使用

//  比less多的效果, 显示后的内容,会残存在操作的界面中

cat -n index.html | more

11.2.less 分页查看文件

操作 功能说明
空白键 向下翻动一页
【pagedown】 向下翻动一页
【pageup】 向上翻动一页
/字串

向上搜寻【字串】的功能:n:向下查找;N:向上查找 

(补足说明:输入「/serchKey」之后,

     先按下回车,检索开始,再按N)

?字串 向上搜寻【字串】的功能:n:向上查找;N:向下查找
q 离开less这个程序

鼠标滚轮,可以一点一点翻页,使用起来非常方便

===

---

less -N index.html // 显示行号, 注意,是大写的 N

===

11.3.more 查看文件

操作 功能说明
空白键(space) 代表向下翻一页
Enter 代表向下翻【一行】
q 代码立即离开more ,不再显示该文件内容
Ctrl + F 向下滚动一屏
Ctrl + B 返回上一屏
= 输出当前的行号
:f 输出文件名和当前行的行号

more 直接 翻到 最后一页 大写的G (Shift + g)

more  n 继续向下查找
more  N 向上查找  (Shift + n)

====

12.clear

       清屏  // cmd中是cls

13.reset

       重新加载 // 查看class文件会乱码,之后一直乱码,使用reset可以解决

14.free

15.df

      df | grep ws 查看磁盘容量(每一个磁盘分区的使用情况)

Filesystem     1K-blocks    Used Available Use% Mounted on
udev             4041060       0   4041060   0% /dev
tmpfs             814496    1576    812920   1% /run
/dev/sda2       26700964 7634492  17687096  31% /
tmpfs            4072468       0   4072468   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
tmpfs            4072468       0   4072468   0% /sys/fs/cgroup
/dev/loop1         91264   91264         0 100% /snap/core/8268
tmpfs             814492       0    814492   0% /run/user/1000
/dev/loop2         99328   99328         0 100% /snap/core/9665

 如果有使用其他 公用盘符的地方,可以通过 df 看出来

172.192.168.22:/DATA/XXX/XXX    ---------------    /DATA/XXX/XXX

1.1 查看磁盘空间的使用

 df -h

1.2 查看节点的使用 // 节点满了,同样会影响使用

 df -i

  linux磁盘爆满 linux df -i 100%处理_树叶咖啡厅-CSDN博客

16.du

      du -s websphere  显示每个文件 和 目录的磁盘使用空间(容量)

・查看指定目录下,每个包含sss的文件夹,所占用空间的大小

【查看磁盘容量】

find ./ -maxdepth 1 -type d | grep sss | xargs du -sh

---

cd /AA/UserGroup/
〇 find ./ -maxdepth 1 -type d | grep sss | xargs du -sh
// sss 是文件夹名字包含的内容。(sss001,sss002)

× find ./ -maxdepth 1 -type d | xargs du -sh
// 无法看到每个文件夹,看到的是整体


〇 find ./ -maxdepth 1 -type d
× find ./ -type d -maxdepth 1 // 有警告

---

・du与df的区别和联系

1.
  du,disk usage,是通过搜索【文件来】计算每个文件的大小然后累加
  df,disk free,通过【文件系统】来快速获取空间大小的信息

2.
  du查看目录大小,
  df查看磁盘使用情况。

・usage 英 [ˈjuːsɪdʒ] n. 使用;用法;惯例

---

17.pwd

     查看当前路径

18.passwd

     ・变更密码

  ・查看密码锁定状态

# passwd -S YourUserID
pispread PS 2020-04-30 7 99999 15 -1 (Password set, SHA512 crypt.)
                   (パスワード設定済み、SH512暗号化)

用户锁定
# passwd -l pispread
Locking password for user pispread.
passwd: Success

查看用户 // 只有 root 用户才能执行
# passwd -S pispread
pispread LK 2020-04-30 7 99999 15 -1 (Password locked.)

用户解锁
# passwd -u pispread
Unlocking password for user pispread.
passwd: Success

查看用户
# passwd -S pispread
pispread PS 2020-04-30 7 99999 15 -1 (Password set, SHA512 crypt.)

19.man

      查看命令帮助

       man 7 ascii

       可以查看ASCII 编码表

            Linux 下 ascii 的查看方式_https://space.bilibili.com/59807853-CSDN博客

20.tar 

tar -cvf etcbak.tar etc/         //打包一个tar
tar -cvzf etcbak.tar.gz etc/     //打包压缩一个 tar

tar -xvf etcbak.tar              //解开一个tar
tar -zxvf etcbak.tar.gz etc/     //解压一个tar

tar -tvf   XXX.tar   //列出xxx.tar文件中的内容

tar -cvf my.bak.tar --exclude=/home/123 --exclude=/home/125 /home   //打包一个tar 同时排除一部分文件夹  

       打包

      压缩文件后,每次的HASH值(MD5)都不相同的原因_sun0322-CSDN博客_同一个文件md5每次不一样

      tar -tvf   XXX.tar   //列出xxx.tar文件中的内容

      结合其他命令使用 , tar -tvf | grep keyWord

       // Linux中,压缩,只能针对一个文件进行压缩。

       // 所以,我们一般先把多个文件打到一个tar文件中,

       // 然后再对这个tar文件进行压缩

・实际应用 :AP2  环境配置,和AP1 相同 (打包时,会保持文件的属性情报.)

AP1
tar -cvf /home/user001/bin.tar /Tool/Apl/bin

AP2
tar -xvf /home/user001/bin.tar  -C /Tool/Apl/bin --strip-components 3

--strip-components Number 是指要去除的目录层数,这里是3,说明要从顶级目录开始去掉3层目录

・tar -zxvf xxx.gz、 出现 これはtarアーカイブではにようです。

         LANG=C tar -zxvf xxx.gz        (tar: This does not look like a tar archive.)

使用,【gunzip】命令

21.ls

・ls 不显示日期信息 (自动化比较时,生成实际值和期待值比较)

find /AAA/BBB/CCC/XXX | xargs ls -lpd | awk '{print $1,$3,$4,$5,$9}


ls -lpd /AAA/BBB/CCC/XXX/file001.xml | awk '{print $1,$3,$4,$5,$9}

ls -lpd /AAA/BBB/CCC/XXX/file001.xml | awk '{print $1,$3,$4,$5,$9} > 1.txt

〇  ls -lpd /AAA/BBB/CCC/XXX/file001.xml 2>&1| awk '{print $1,$3,$4,$5,$9} > 1.txt
×  ls -lpd /AAA/BBB/CCC/XXX/file001.xml | awk '{print $1,$3,$4,$5,$9} > 1.txt 2>&1 
       ×: 这种写法,错误输出,无法写入到文件 1.txt中
 

・其它

显示所有文件夹
ls -d */
ls -ld */

ls -l  //查看文件一览
ls --full-time // 显示年的信息
ls -l ./|grep "^d"|wc -l  // ^d 查看以d开头, 即文件夹的个数
ls -l ./|grep "^-"|wc -l  //^-   查看以 -开头, 即文件的个数
ls -a 
ls -lrt // 最新的文件在下面显示  (!! 文件比较多的时候,推荐使用这种方式) // -r reverse 相反的
ls -lh // -h, --human-readable // M
ls -lF // 文件后面追加标记
  目录后显示斜杠(/);
  可执行文件后显示星号(*);
  符号链接后显示符号@

・total 12 “所列出内容的磁盘占用空间总和值。单位为kbytes" // 应该都是4的倍数,Linux以块为单位存储,1个块是4KB

・RWX RWX RWX 后面的内容 表示 ,文件里面 文件夹的个数 

   通常要 再 减去 2 才是实际文件夹 的个数 因为包含 ./ ../

      7  。。。。。。。sxz001

   

ll -l ./|grep "^d"|wc -l  // ^d 查看以d开头, 即文件夹

ll -l ./|grep "^-"|wc -l  //^-   查看以 -开头, 即文件

===

ls --full-time // 显示年的信息

===

文件大小单位时byte

7位是1M左右 (1,000,000)

===

ls -a

当期待有文件,却找不到文件时,尝试使用 ls -la

 有时,文件的所有者是隐藏文件 「.」开头

以「.」开通的文件,即使使用 sudo su - 到对应的目录下后,也看不到指定的文件

ls -la
-l   长格式列出
-a   显示所有文件,包括隐藏文件和目录(所有以“.”为开始的文件和目录为隐藏文件)
所以ls -la 是列出当前目录中的所有文件和目录,包括隐藏文件和目录

===

在linux下,以点"."开头命名的文件在系统中被视为隐藏文件。
因此,如果想隐藏某个文件或目录,
一种简单的办法就是把文件名命名为点开头。 

对于目录backcron,
可以这样操作隐藏:mv backcron .backcron
如何查看以“.”开头的文件,
可以用: ls -a -a 表示不忽略以点“.”开头的文件。

ls -F

-F 该选项
在每个目录后显示斜杠(/);
在每个可执行文件后显示星号(*);
在每个符号链接后显示符号@

---文件类型

在Linux下一切皆文件 everything is file,包括目录也是文件的一种而这些文件被分为七种类型:
• -:普通文件  
• d: 目录文件 
• b: 块设备 
• c: 字符设备 
• l: 符号链接文件  
• p: 管道文件pipe 
• s: 套接字文件sock

---Linux中ls命令的用法详解 - 白蓝的橙 - 博客园

--- 文件排序

// 最新的文件在上面显示
ls -lt

// 最新的文件在下面显示  (!! 文件比较多的时候,推荐使用这种方式)
ls -lrt

// -r reverse 相反的

---linux系统下查看文件大小命令(以G/M/K为单位查看)

ls -lh
// -h, --human-readable

22.ps

      ps -e | grep ftp   查看服务

     PS的aux和-ef参数

     PS的aux和-ef参数 - Linux操作系统:Ubuntu_Centos_Debian - 红黑联盟

    

    关于ps -aux | grep KeyWork1 | grep XXX.jar | grep -v grep | wc -l

      ・可以在检索结果中,再次查询

      ・grep -v grep :去除grep 命令本身

      ・wc -l:统计查询出来的件数 (是件数(条数,行数),不是个数(一行可能有多个XXX.jar))

    

 ps aux :

      最常用的 BSD 风格选项组合,其中的 a表示所有关联到终端的进程,

      如果同时使用 x 则代表所有进程;u 表示列出进程的用户。

    ps -elf : // 常用  ps -elf | grep XXX

    ps -ef // 常用

          unix标准风格组合,其中-e 代表列出所有进程,-l 代表长格式,-f 代表完整的格式

查看连接用户

除了who之外,还可以使用如下命令

ps -aux | grep sshd

---

Linux学习笔记:ps -ef、ps aux、kill -9 - Hider1214 - 博客园

.ps -aux  // BSD风格

1.USER:用户名称
2.PID:进程号    // kill -9 PID
3.%CPU:进程占用CPU的百分比
4.%MEM:进程占用物理内存的百分比
5.VSZ:进程占用的虚拟内存大小(单位:KB)
6.RSS:进程占用的物理内存大小(单位:KB)
7.TTY:终端名称(缩写),若为?,则代表此进程与终端无关,由系统启动的 
8.STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
9.START:进程的启动时间
10.TIME:CPU时间,即进程使用CPU的总时间
11.COMMAND:启动进程所用的命令和参数,如果过长会被截断显示 
 ps aux | grep mysql | grep -v grep | awk ‘{print "kill -9" ,$2}’ | sh

.ps -ef   // System V展示风格

1.UID:用户ID
2.PID:进程ID
3.PPID:父进程ID
4.C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 
5.STIME:进程启动的时间
6.TTY:完整的终端名称
7.TIME:CPU时间
8.CMD:完整的启动进程所用的命令和参数 

===

ps -ef 和 ps -elf 在显示时的区别,举个例子

ps -efps -elf都是用于显示进程信息的命令,但在显示时有一些区别。

  1. ps -ef:以默认格式显示进程信息。它会列出所有进程,并显示以下列:

    • UID:进程的所有者ID。
    • PID:进程ID。
    • PPID:父进程ID。
    • C:CPU使用的时间片百分比。
    • STIME:进程启动时间。
    • TTY:进程所关联的终端。
    • TIME:进程的累计CPU使用时间。
    • CMD:进程的命令行参数。

    示例:

    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 06:36 ?        00:00:07 /sbin/init
    root         2     0  0 06:36 ?        00:00:00 [kthreadd]
    root         3     2  0 06:36 ?        00:00:00 [ksoftirqd/0]
    
  2. ps -elf:以长格式显示进程信息。它会列出所有进程,并显示以下列:

    • F:标志符,表示进程的标志位。其中,<表示高优先级,N表示低优先级。
    • S:进程状态,如S表示睡眠状态,R表示正在运行,Z表示僵尸进程等。
    • UID:进程的用户ID。
    • PID:进程ID。
    • PPID:父进程ID。
    • PRI:进程优先级。
    • NI:nice值,表示进程的优先级调整。
    • VSZ:虚拟内存大小。
    • RSS:物理内存大小。
    • WCHAN:进程等待状态。
    • ADDR:该进程在内存中的位置。
    • SCHED:进程的调度策略。
    • TTY:进程所关联的终端。
    • TIME:进程的累计CPU使用时间。
    • CMD:进程的命令行参数。

    示例:

    F S   UID    PID   PPID  PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
    4 S     0      1      0  20   0  268824  9676 poll_s Ss   ?          0:01 /sbin/init
    1 S     0      2      0  20   0       0     0 kvm-th S    ?          0:00 [kthreadd]
    1 S     0      3      2  20   0       0     0 smpboo S    ?          0:00 [ksoftirqd/0]
    

总体而言,ps -elf的输出更详细和易读,可以提供更多的进程信息。但是在某些情况下,ps -ef的简洁输出更方便查看。

====

23.chsec

           AIX中,使用此命令,修改配置文件键值对

sudo su -

chsec -f /etc/security/lastlog -s userName -a unsuccessful_login_count=0

passwd userName

input the new Password

・↑AIX重置密码

・↓Linux重置密码

pam_tally2 -u userName --reset
passwd userName

24.sed

      24.1处理替换字符等操作

     Linux中的sed命令,使用方法之一「替换字符串中的内容 」,以及「s/ / / 」和「s/ / /g」之间的区别_sun0322-CSDN博客

      24.2 查看文件中,指定的行数  查看文件的50行到60行

       sed -n "50,60p" theFileName

      24.3 在某一行后面,加入一行新的内容

sed -i '60a column1,column2,column3' xxxx.csv

// 在60行之后,插入一行新的内容
// 新的内容在第61行
// 「column1,column2,column3」是新插入的内容

      24.4 删除文件的指定行


sed -i '20,30d' filename    删除第20-30行

      24.5 sed的更多操作

shell自动化处理_相关知识整理(整理中)20210329_sun0322-CSDN博客

25.locate

    locate   XXXX.classs   查找文件(只限Linux中使用)

26.cal

    cal -y 显示日历

cal 9 1752

※ 2100年不是闰年

27.mkdir

     创建文件夹

      mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

mkdir -p /xxx1/xxxx2/xxxx3

      mkdir -m :创建文件夹时,指定访问权限

mkdir -m 777 mydir

      mkdir m755 TEST_FOLDER  // OK 没有问题(m755 可以没有空格)

mkdir m755 TEST_FOLDER

28.touch

     创建文件

29.rm

    rem -r  directory  // 删除文件夹时,要带上参数r

    Linux cannot remove 'XXX': Is a directory 解决办法_sun0322-CSDN博客

     参数 v 显示删除时的详细信息

   

    删除某个文件之外,其他所有的文件

   rm !(test1)     // 删除除test1之外,所有的文件  
   rm !(test1|test3) // 删除除test1、test3之外,所有的文件 (文件之间,使用或者符号连接)

   // ※1 注意!!! 文件和 运算符之间 不能带有空格
   // ※2 当文件不存在时,会出如下的信息
       Couldn’t delete file: No such file or direcotry
         rm : `!(test1|test3)' を削除できません:そのようなファイルやディレクトリはありません。

30.vi

vi的使用

Linux中 Vi的使用_sun0322-CSDN博客

31.特殊符号之【`】 不是单引号 (是反单引号)

可以直接输出命令执行后的结果

这个符号时【反单引号】,``里面是可以执行的语句

sxz001@sxzap01:~$ uname -n
sxzap01
sxz001@sxzap01:~$ echo aaa_`uname -n`_bbb
aaa_sxzap01_bbb
sxz001@sxzap01:~$

获得日期  ( ※:date 后面有空格)

xxx.log`date +%Y%m%d`

ls -l xxx.log`date +%Y%m%d`

echo xxx.log`date +%Y%m%d`

32.特殊符号之【&】 

在Shell中,“$“和“&“的作用_sun0322-CSDN博客

放在命令最后,可以让程序后台运行。

后面跟上一个命令,可以执行该命令

错误输出,也输出到标准输出中

33.sudo

     sudo su -

34.su

     su targetUserName

su - 与su
通过su切换用户还可以直接使用命令su USERNAME,与su - USERNAME的不同之处如下:
su - USERNAME切换用户后,同时切换到新用户的工作环境中
  // 使用 id 命令,查看,是变更后 的用户的id情报
su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录
  // 使用 id 命令,查看,是变更前 的用户的id情报

非 root 用户 执行 此命令 时, 需要输入 密码

35.log设定(Tera Term)

    Teraterm的Log设定_sun0322-CSDN博客_tera term怎么保存log

36.ll (只限Linux中使用)

37.id

  id // 显示下面的所有信息

   id -u   显示uid ; id -nu 显示用户信息

   id -g   显示gid ; id -ng 显示组信息

   id -G    显示所有的组信息;   id -nG 显示附加值信息

  上面的绿字,只是ID,加上 n 后,可以显示名字

应用:

    ・Jenkins脚本执行时,想查看执行脚本的用户,我们可以使用此命令查看

 ・docker -u 参数,指定 用户与组时,使用此命令,获取用户与组信息

38.特殊符号之 【$()】

    ・echo $(id -u)  等同于  echo `id -u`

    ・使用【$()】连续执行命令

                echo $(pwd; pwd)

                echo $(cd ..; pwd)

  ・计算变量相加

 Linux Shell 数字相加

×:

COUNT=0
COUNT=$COUNT+1
echo ${count}
---
0+1

〇:

COUNT=0
COUNT=$(( $COUNT+1 ))
echo ${count}
---
1

39.dirname

           dirname /ssss/aaaa/bbbb/test.txt

            返回结果

           dirname /ssss/aaaa/bbbb

  获取当前正在执行的shell所在的位置


workdir=$(cd $(dirname $0); pwd)

步骤1
dirname $0,取得当前执行的脚本文件的目录
步骤2
cd 到   sh 所在的工作目录
步骤3 
pwd显示当前工作目录

关于 $0,代表sh自身

与该sh被调用时,调用的方法有关。

sxz001@sxzap01:~$ ls
myJava  mySoftware  temp  test.sh
sxz001@sxzap01:~$ cat test.sh
echo "hello word"
echo $0

sxz001@sxzap01:~$ sh /home/sxz001/test.sh
hello word
/home/sxz001/test.sh
sxz001@sxzap01:~$ sh ./test.sh
hello word
./test.sh
sxz001@sxzap01:~$ sh test.sh
hello word
test.sh
sxz001@sxzap01:~$

40.find

  1.在当面目录下查找 指定名字的文件 (包含子目录)

  find ./ -name "*.csv"
// 2. 查看文件一览(可以看到子文件夹里面的内容)
find /AAA/BBB -type f | sort | xargs sum >result.txt 2>&1
find /AAA/BBB -type f | sort | xargs ls -lpd >result.txt 2>&1

↓ 2>&1(windows Linux 都适用)

bat shell 命令行中 2>&1 的含义_sun0322-CSDN博客

2.只在当面目录下检索,不查询子目录  // -maxdepth 1

  find /AAA/BBB/CCC -maxdepth 1 -name "*.csv"

===
  find /AAA/BBB/CCC -maxdepth 1 -type f | sort | grep -e "yourFileName" | grep -v grep | xargs md5sum

  find /AAA/BBB/CCC -maxdepth 1 -type f | sort | grep -e "yourFileName" | grep -v grep | xargs ls -l
===


■経緯
子文件夹里面的文件,没有访问权限,使用时,出现“没有访问权限的警告”
不查询没有访问权限的文件夹,即可解决此问题

■扩展:查询多个文件(以.xml结尾)
  find /AAA/BBB/CCC -maxdepth 1 -type f | sort | grep -e "yourFileName1" -e "yourFileName2.xml$" | grep -v grep | xargs md5sum

3. find -name XXX

// -maxdepth 1 要写在最前面
find /AAA/BBB/CCC -maxdepth 1 -type f -name yourFileName | xargs ls -l

4.查找文件夹下,哪些文件,含有某字符

find. -name "*.c" | xargs grep -Hn sum | sort > result.txt

漫画 | Unix/Linux 比 Windows 差远了!_码农翻身-CSDN博客

5.查找文件,忽略大小写,显示全路径,按修改时间的顺序显示

find /AAA/BBB/CCC -iname "*.csv" |xargs ls -lt

6.find 参数 mtime

n表示文件更改时间距离为n天, -n表示文件更改时间距离在n天以内,+n表示文件更改时间距离在n天以前。
例如:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

---

查找文件更新日时在距现在时刻5天以内的文件
find ./ -mtime -5

找“5天前的那一天被更改过的档案名”find / -mtime 5

查找文件更新日时在距现在时刻5天以上(以前,之前)的文件
find ./ -mtime +5

查找文件更新日时在距现在时刻24小时之前的文件
find ./ -mtime +0

---

 ---

41.history

查看执行过的命令

42.1.md5sum fileName

 查看文件的信息摘要

===========

powerShell

查看文件信息摘要_sun0322-CSDN博客

 Get-FileHash .\yourFileName -Algorithm SHA256 | Format-List

===========

42.2.sum fileName

   查看

     ・文件校验码

   ・文件所占的快递大小。  

43.systemctl

  启动停止服务

       systemctl start XXXd.service

       systemctl stop XXXd.service

    ・启动关闭防火墙:     MySQL配置允许远程连接_asdXT的博客-CSDN博客_mysql允许远程连接

    ・启动sfpt服务:systemctl start vsftpd

===

・查看防火墙状态信息
systemctl status firewalld
 
 
・打开防火墙(如果不是显示active状态,需要打开)
systemctl start firewalld
 
・查看防火墙所有信息
firewall-cmd --list-all
 
・查看防火墙开放的端口信息(默认为空)。。。明明有开放端口,但是看不到啊。。。也许外层还有防护墙
firewall-cmd --list-ports
 
・查看所有永久开放的端口(默认为空)
firewall-cmd --list-ports --permanent

===

# 针对一个ip段访问 
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept"

192.168.1.0是你的IPV4地址;/24是你的子网掩码,代表255.255.255.0。

===

# 开启防火墙 
systemctl start firewalld.service 
 
# 防火墙开机启动 
systemctl enable firewalld.service
 
# 关闭防火墙 
systemctl stop firewalld.service 
 
# 查看防火墙状态 
firewall-cmd --state 
 
#查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
firewall-cmd --list-all-zones
 
# 查看现有的规则 
firewall-cmd --zone=public --list-ports 
 
# 重载防火墙配置 
firewall-cmd --reload 
 
# 添加单个单端口 
firewall-cmd --permanent --zone=public --add-port=81/tcp 
 
# 添加多个端口 
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp 
 
# 删除某个端口 
firewall-cmd --permanent --zone=public --remove-port=81/tcp 
 
# 针对某个 IP开放端口 
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.51" port protocol="tcp" port="8082" accept" 
 
# 删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
 
# 针对一个ip段访问 
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept"
 
#查看可开启的服务
firewall-cmd --zone=public --list-services
 
# 开放服务
firewall-cmd --add-service=ssh --zone=public --permanent
 
# 删除服务
firewall-cmd --remove-service=ssh --zone=public --permanent
 
# 添加操作后别忘了执行重载 
firewall-cmd --reload

===

  

44.wc

wc fileName

输出文件中的行数、单词数、字节数

 wc -l fileName

 统计文件的行数 (统计换行符的个数, l 是 line 的缩写)

 ※ 注意,有的时候文件最后一行没有换行符,这时候,统计出来的行数,比实际行数少1行

45.hexdump

 hexdump fileName
  以十六进制形式查看文件 
 (windows的换行  
    显示位0a0d,
    实际应该是0d0a,
   这里面涉及了低位,与高位的问题,
   所以十六进制的显示,与实际的表示,是反过来的)

■十六进制
,:2C
0:30
A:41
a:61

■apache (hpptd)(httpd.server)
早期的apache小组,现在已经成为一个拥有巨大力量的apache基金会。 

他们把起家的apache更名为httpd,
也更符合其http server的特性。而apache现在成为 apache基金会下几十种开源项目的标识。
 
apache和httpd是一个,到apache2后就叫httpd了

46.xargs

46.1

  find /XXX/XXX/XXX -type f | xargs sum   // 得到的两个参数时 校验码  与 文件的块大小

  find /XXX/XXX/XXX -type f | xargs md5sum  // 后面可以是各种命令  比如 rm 那就是删除所有找到的文件

  find /XXX/XXX/XXX -type f | xargs ls -l  // 这种方式,可以显示文件的

Linux xargs命令-(转载) - 骑单车去旅行 - 博客园

----

46.2

加-i 参数直接用 {}就能代替管道之前的标准输出的内容

(例:复制文件)

find /AAA/BBB/CCC/ -maxdepth 1 -type f | xargs -i cp {} /Work/Back
find /AAA/BBB/CCC/ -maxdepth 1 -type f | xargs -i sudo cp {} /Work/Back
find /AAA/BBB/CCC/ -maxdepth 1 -type f | grep -e ".yml$" | xargs -i sudo cp {} /Work/Back

47.vmstat

Linux vmstat命令实战详解_浮生一梦-CSDN博客_vmstat

vmstat命令是最常见的Linux/Unix监控工具,属于sysstat包。
可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,
内存使用,虚拟内存交换情况,IO读写情况。
这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,

二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,
而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。


47.umask

umask:umask用来去掉目录或文件的某些权限

umask使用详解_modi000的博客-CSDN博客

=====================

      umask -S // 查看权限
      umask -p // 查看掩码 ※
    // 4位 后三位有效 第一位是 粘着位(sticky)

   粘着位(sticky)   ⇒ linux中的粘滞位(Sticky bit)_喵喵的博客-CSDN博客

linux系统规定文件的默认最大权限是666,

目录的默认最大权限是777,那么umask=022 
需要反过来看就是755(u=rwx,g=rx,o=rx),
所以对应权限:
 
1.目录:022->755(u=rwx,g=rx,o=rx) 
2.文件:022->644(u=rw,g=rx,o=rx) 

linux系统规定文件的默认最大权限是666

创建文件和目录时的默认权限umask_u013500740的博客-CSDN博客

umask 022 新建文件是 644

(666-022=644)

48.mv 

   1.除了移动文件之外,还可以用于给文件改名

                 mv aaa001 aaa002 // aaa001 ⇒aa002

            2.强制替换文件

                mv -f

49.jq

jq是Linux下面把文本字符串格式化成json格式的工具

Linux之jq - 北漂-boy - 博客园

jq '.key'

获取Json字符串中的key值

JSON 语法

jq使用,非常好的例子

linux 命令之jq_Gino的专栏-CSDN博客

50.SUID   SGID

Set User ID 的缩写

rwx rwx rw-

rws rwx rw-    // chmod u+s   //当运行某程序时,相应进程的属主,是程序文件自身的属主,而不是启动者;

rwx rws rw-    // chmod g+s

Linux 文件目录特殊权限设定(SUID,SGID,SBIT)_乐沙弥的世界-CSDN博客_linux特殊权限

Linux浅谈SUID,SGID,Sticky粘滞位对目录以及文件的相关作用_禾苗成长的技术博客_51CTO博客

■suid
====
  一般都作用于二进制文件上,一般不作用在目录上。
====

■sgid: (rws)
====
 a.作用在目录上,
   当目录下新建文件时,以及文件夹时,那么自动获取目录的所属组作为文件或者文件夹的所属组。

 b.它也可以对二进制文件生效,但是很少使用。
====

     rws

51.usermod

・添加组

usermod -G groupname1,  groupname2 username

・确认

cat /etc/group | grep -e groupname1 -e groupname2

Linux添加/删除用户和用户组
 
1、建用户:
adduser phpq                            //新建phpq用户
passwd phpq                            //给phpq用户设置密码
2、建工作组
groupadd test                          //新建test工作组
3、新建用户同时增加工作组
useradd -g test phpq               //新建phpq用户并增加到test工作组
注::-g 所属组 -d 家目录 -s 所用的SHELL
4.1、给已有的用户增加工作组
usermod -G groupname username
或者:gpasswd -a user group
4.2、给已有的用户增加多个工作组
usermod -G 附属组1,附属组2,...,附属组X  用户名
5、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。
或者使用如下命令关闭用户账号:
passwd peter –l
重新释放:
passwd peter –u
6、永久性删除用户账号
userdel peter
groupdel peter
usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)
7、从组中删除用户
编辑/etc/group 找到GROUP1那一行,删除 A 或者用命令 gpasswd -d A GROUP
8、显示用户信息
id user
cat /etc/passwd

52.访问权限说明

■パターン1
AAA drwx r-x ---
 └
 BBB   drwx rwx ---
   └bbb.txt
   
  组用户,可以修改bbb.txt的内容
  组用户,无法再AAA目录下面创建文件 或者 文件夹
  组用户,可以修改AAA目录中,组用户 是 w 权限的文件
  组用户,可以再BBB目录中,创建文件 或是 文件夹

■パターン2
AAA drwx rwx ---
 └
 BBB   drwx rwx ---
   └bbb.txt
   
  组用户,可以修改bbb.txt的内容

■パターン3
AAA drwx r-x ---
 └
 BBB   drwx rwx ---
   └bbb.txt
   
  组用户,可以在BBB中创建文件夹

============
即,BBB文件夹下面的权限,应该不受到AAA文件夹权限的影响!!!

 ※1 但是,首先要有 对AAA文件夹的访问权限!!!
如果对AAA没有访问权限,是无法对bbb.txt进行操作的。

 ※2
 AAA   701
  └BBB   701
    └DDD      701 // 可以访问,无权限在当前目录下执行 ls  // 705 就可以 执行 ls
      └ddd.txt   777 // 可以修改文件 
                // DDD 701、705 时,   无权限在目录下执行touch命令创建文件【5((r-x))】
============

■XL Deploy
=====
 发布文件时,如果之前 DDD 文件夹下文件已经存在,
   step1.删除文件
   step2.创建文件  (使用连接的token对应的用户来创建文件)
    // 即创建之后,文件的各种权限信息都会改变
=====
  ↑ 所以,对于 DDD文件夹,访问权限至少要设置为 703 // 或者改变上层文件夹的所属 
  ↑ ddd.txt 文件的权限至少是 706

    ※ 建议 修改文件的所属!!!

只要对目录有(w)权限,那么即使没有对目录下文件的 r w 权限,也能删除该文件

比如: 左面 sxz001用户建立了一个ttt文件,

            右面tomcat用户  「rm -f ttt」可以删除该文件

53.gpasswd

  添加一个用户到一个组,同时保留以前添加的组时,使用 gpasswd 这个命令来添加操作用户

gpasswd -a user_name group_name

使用该命令,把用户从组中移除

gpasswd -d user_name group_name

54.adduser 创建用户

----

---

---

 查看sudo 权限的使用 cat sudoers

------

youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL

第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码). // 上面的 sudo 组
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.


■扩展
第三行: 指定的命令,可以使用sudo权限来执行
youuser ALL=(ALL) NOPASSWD: /usr/bin/chmod, /usr/bin/chown

----

---

对tomcat用户添加组后,

重新登陆,即可切换sudo 用户

55.grpup  .passwd   .sudoers

   查看所有组, 所有用户,sudo权限

--user
adduser phpq 
cat /etc/passwd | grep sxz

--group
gpasswd -a user_name group_name
gpasswd -d user_name group_name
cat /etc/group | grep -e groupname1 -e groupname2

--sudo
cat /etc/sudoers | grep %  // % 后面是组的名字

---

// 使用 vi 修改【/etc/sudoers】的内容 (让文件有写的权限)
yourUserName1 ALL = (ALL)NOPASSWORD: ALL
yourUserName2 ALL = (root)NOPASSWORD:/usr/bin/chmod, /AAA/BBB/CCC/aaa.sh

// aaa.sh 可以时自己写的脚本,里面有各种命令,比如  su -

使用时

sudo /AAA/BBB/CCC/aaa.sh

56.kill

  kill -9 PID

■ windows
taskkill /pid 4740 /T   // 子程序也同时终了
taskkill /pid 4740 /p   // 制终了程序

57.awk

   Linux中awk工具的使用_谢公子的博客-CSDN博客_awk

以 : 为分隔,显示/etc/passwd中每行的第1和第7个字段

awk -F ":" '{print $1,$7}' /etc/passwd  或  awk 'BEGIN{FS=":"}{print $1,$7}' /etc/passwd

// 使用 awk 获取 ps -aux 的返回值中的第二个项目,Kill 掉

 ps aux | grep mysql | grep -v grep | awk ‘{print "kill -9" ,$2}’ | sh

58.| 管道(|)    パイプ  管道 pite)

管道(|)命令用于将Command1命令的结果作为输入传给Command2命令

■ 示例1
ls -l | grep XXX
// grep searchStr xxx.log  // 在log中查找字符串

■ 示例2
ll -l ./|grep "^d" | wc -l  // ^d 查看以d开头, 即文件夹
ll -l ./|grep "^-" | wc -l  //^-   查看以 -开头, 即文件

■ 示例3
cat -n index.html | more

■ 示例4
find /XXX/XXX/XXX -type f | xargs md5sum  // 后面可以是各种命令  比如 rm 那就是删除所有找到的文件

59.echo

 echo abc >test001.txt

     //  文件有换行符  // 0a

60.其他用户修改文件后,对文件所属,组的影响

  不会有任何影响

 (可以改变文件的内容  使用 echo  或者 vi)

例:使用tomcat用户,修改 sxz001用户所属文件的内容。

61.tee

Linux tee命令 | 菜鸟教程

echo "XXX" | tee -a fileName

向文件中添加内容

62.查看系统・用户信息

#系统信息
hostname 或 uname -n     #主机名
history      #查看命令历史,有可能可以查看到管理员的一些重要命令,包括密码等
uname -a     #所有版本
uname -r     #内核版本信息
 
uname -m     #Linux内核架构
cat /proc/version   #内核信息
cat /proc/cpuinfo   #CPU信息
cat /etc/*-release  #发布信息
cat /etc/issue      #发布信息
 
#用户和组信息
whoami           #查看当前用户身份
who              #查看当前登录系统的所有用户
w                #显示已经登陆系统的用户列表,并显示用户正在执行的指令
users            #显示当前登录系统的所有用户的用户列表
id               #当前用户信息
id || (whoami && groups) 2>/dev/null     #当前用户信息
cat /etc/passwd | cut -d: -f1            #查看所有的用户名
cat /etc/passwd | grep "sh$"             #查看拥有bash的用户
awk '/\$1|\$6/{print $1}' /etc/shadow   #查看可以远程登录的用户
cat /etc/shadow  #查看密码
cat /etc/group   #查看组信息
last             #查看登录历史
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"    #查看拥有sudo权限的用户
sudo -l             #列出目前用户可执行与无法执行的指令 
awk -F: '$3==0{print $1}' /etc/passwd   #查看超级用户(uid=0),有些黑客将普通用户的uid改为0,则该普通用户也拥有了超级权限
 
#登录信息
last             #查看最近登录成功的用户及信息,查看的是 /var/log/wtmp 文件
lastb            #查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
lastlog          #显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
cat /var/log/secure* | grep Accepted   #查看登录成功的记录
cat /var/log/secure* | grep Failed     #查看登录失败的记录
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'  #查看登录成功的日期、用户名及ip
grep "Failed password for root" /var/log/secure | awk '{print $11}'  #查看有哪些ip在爆破主机的root账号
grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr  #查看爆破用户名字典
 
#网络信息
ifconfig
arp -a
cat /etc/network/interfaces   #查看网络接口信息
route       #查看路由信息
traceroute baidu.com    #查看路由节点
cat /etc/hosts   #查看hosts文件
cat /etc/resolv.conf  #查看dns信息
cat /etc/services     #查看端口服务映射
 
#服务、端口和进程信息
ps aux  /  ps -ef            #静态查看进程
pstree                       #查看进程树
top                          #动态查看进程
ps aux --sort -pcpu          #静态查看进程,根据cpu使用情况排行,从高到低
ps aux --sort -pmem          #静态查看进程,根据内存使用情况排行,从高到低
netstat -pantu               #查看端口信息
netstat -pantu | grep 18176  #查看端口连接情况,过滤含有18176端口的行,就可以查看连接的端口
cat /etc/inetd.conf          #由inetd管理的服务列表
cat /etc/xinetd.conf         #由xinetd管理的服务列表
cat /etc/exports             #nfs服务器的配置
cat /etc/services            #查看端口服务映射
ls -l /proc/18176/exe        #查看PID为18176的进程的可执行程序
lsof -p 18176                #查看PID为18176的进程打开的文件
lsof -c sshd                 #查看进程sshd打开的文件
lsof -i:33946                #查看33946端口对应的一些进程
ps -p PID -o lstart          #查看进程的启动时间点
fuser -n tcp 33946           #查看33946端口对应的进程PID
 
#环境信息
env   #打印系统环境信息
set   #打印系统环境信息
echo  $PATH   #环境变量中的路径信息 
history       #历史命令
cat /etc/profile   #显示默认系统遍历
cat /etc/shells   #显示可用的shell

63.chage -l yourUserName

     // 查看密码过期时间

    http://www.voidcn.com/article/p-xmrfzbzi-bee.html

64.ssh

      ssh userName@serverName

      输入之后,会让你输入密码

  无法连接时,

          ssh: connect to host  serverName port 22: Connetion timed out

可以在cmd命令行下直接执行【ssh userName@serverName】

数码密码后(密码可以鼠标右键粘贴)

登录后的效果和TeraTerm登录效果相同

ssh -i 使用认证文件,不需要再输入密码

ssh -i identity_file userName@serverName

identity  [aɪˈdɛntɪtɪ]  // n.  身份;同一性;一致;特性;个性;恒等式  // ssh -i  // scp -i

====

ssh 连接时 忽略 known_hosts check

这个文件(known_hosts)里面的值如果是旧的,会造成无法连接!!!!!

known_hosts 文件中的 ssh-rsa 值是根据远程主机的公钥生成的。当您第一次连接到一个远程主机时,您的SSH客户端会将该主机的公钥保存在known_hosts文件中。每次连接到该主机时,SSH客户端都会验证该主机的公钥是否与known_hosts文件中的相同,以确保您正在连接到正确的主机。如果公钥【密钥指纹信息】不匹配,SSH客户端会发出警告并停止连接。这有助于保护您的计算机免受中间人攻击。

忽略check的方法

ssh -o "StrictHostKeyChecking=no" username@hostname

===

65.function

#! /bin/bash

function yourFunction {
    yourFunction1
    yourFunction2
}

function yourFunction1 {
    command1
    command2
}

function yourFunction2 {
    command3
    command4
}

# 要写在函数定义的下面(如果写在函数上面,会提示找不到命令)
# 注释最好使用英语,避免文字编码问题
yourFunction

66.unzip

     和tar一样,都可以解压缩

     linux下 tar,zip,unzip命令详解_wudinaniya的博客-CSDN博客_linux安装unzip命令和tar命令

     不过需要安装

     unzip xxxx.zip

    安装方法

扩展,使用gzip   命令进行压缩

yum -y install unzip zip

67.zip

     和tar一样,都可以压缩

把 【/Work/1117/】目录下的【aaa】文件夹 打成一个压缩包

cd /Work/1117
zip -r aaa.zip aaa
chmod 666 aaa.zip

打包时,带上主机名

zip -r `uname -n`_aaa.zip aaa

zip更多操作

在不解压的情况下查看一个zip文件的内容,使用下面的命令:

zip -sf test.zip

删除zip中的文件
zip -d test.zip smart.txt

像 zip 中 添加 文件
zip test.zip smart.txt

68.diff

      diff /XXX/XXX/file1 /XXX/XXX/file2

69.scp 获取远程文件

scp -r root@otherServerName:/usr/local/aa /usr/local/
scp root@otherServerName:/usr/local/aa/file1.txt /usr/local/
// -r是复制目录
// 注意,不要忘了冒号
// 连接的时候,会显示RSA KEY 公钥 私钥 证明书之类的信息
// 确认连接yes之后,输入密码

// IP地址也可以
scp -r root@XXX.XXX.XXX.XXX:/usr/local/aa /usr/local/

70.screenfetch 显示系统信息

71.sl 小火车

小火车

72.cmatrix:黑客帝国

---

73.特殊符号【./】

前言:

    目录下有 tool.sh,我们进入当前目录后,直接输入tool.sh后,回车,没有任何效果。

    只有 ./tool.sh时,tool.sh才会被执行

“.”表示当前目录,“./”表示执行当前目录下可执行文件。

74.netstat

netstat -tunlp | grep 3306

netstat -an | grep 3306

netstat -anp | grep  -e 3306 -e PID
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名

有些内容,需要管理员权限才能看到

---

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::3306                 :::*                    LISTEN      -

---

---

root@sxzap01:~# netstat -an | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN
tcp6       0      0 192.168.131.128:3306    192.168.131.1:50010     ESTABLISHED

---

============

74.1.netstat、rmsock  (AIX)

AIX 服务中  netstat -anop 参数不好用 (具体是参数p不好用)

netstat -Aan | grep 1334

f10002000043c398 tcp4 0 0 *.1334 *.* LISTEN

rmsock f10002000043c398 tcpcb

removes a socket that does not have a file descriptor.

删除没有文件描述符的套接字。

The socket 0x43c008 is being held by proccess 217248 (writesrv).

rmsock 命令
用途
除去不包含文件描述符的套接字

语法
rmsock Address TypeofAddress

描述
rmsock 命令除去不包含文件描述符的套接字。它接受 socket、tcpcb、inpcb、ripcb 或 rawcb 地址并将其转换成套接字地址。 然后检查每个进程所有打开的文件以查找套接字的匹配。如果没找到匹配,对该套接字执行异常终止操作,而不考虑套接字 linger 选项的存在。套接字保留的端口号释放。如果发现匹配,文件描述符和主进程状态显示给用户。结果发送到 syslogd 并在 /var/adm/rmsock.log 文件中记录。


netstat -Aan |grep 9900    #会出现一大串列表.
rmsock f10000f303268358 tcpcb    #参数为上面列表中,每行前面的序号.该命令会显示一个PID.
ps -ef |grep 807084    #上面输出的PID.

ps -ef | grep 217248

root 217248 159882 0 Jan 08 - 0:00 /usr/sbin/writesrv

===========

75.cron

crontab -l

cat /etc/crontab

Linux中的Cron ,任务计划_sun0322-CSDN博客

76./dev/null

/dev/null 是一个特殊的设备文件,所有接收到的数据都会被丢弃。有人把 /dev/null 比喻为 “黑洞”,比较形象恰当。

关于 /dev/null 差点直播吃鞋的一个小问题

---

我们的定时任务、异步 MQ 的 jar 包程序等都会使用 System.in.read() 等阻塞程序,防止程序退出

但是,

使用 tail -f /dev/null 会永久阻塞

---

启动一个jar,后台运行,

然后,使用这个命令,传入jar的pid,可以停止这个jar

(扩展:可以利用tail -f /dev/null让容器一直处于runing状态

    利用tail -f /dev/null命令防止container启动后退出(示例代码)_136.la

 ----

tail --pid=$pid -f /dev/null

   // ↑ 这种写法可以终止(jar)进程、↓ 使用man命令,查看得到的结果

   with -f, terminate after process ID, PID dies

     (同 -f 一起使用,当 PID 所对应的进程死去后终止)

---

77.nohup

nohup ./xxx.sh &

Linux 下后台运行脚本(防止退出Xshell后程序中断)_林胖胖哒的博客-CSDN博客

78.lsof

lsof -i:port

Linux命令 lsof -i:端口号 ——有什么用途_sun0322-CSDN博客

79.ln

创建硬链接,软连接(符合链接 Symbolic Link)

 

80.unlink  解除软连接

81.which

查看执行文件的位置
  (搜索某个系统命令的位置,并且返回第一个搜索结果。
   也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。 )

which sss
/bin/sss

82.特殊符号【"】(双引号)  与【'】单引号

・双引号中的变量${XXX},可以输出对应的值

・单引号中的变量${XXX}, 直接按照【${XXX}】原来的样子执行。

下面是例子

#!/bin/bash
DAYS=2
DATE1=`date +%Y%m%d --date='${DAYS} days ago'`
DATE2=`date +%Y%m%d --date="${DAYS} days ago"`

83.符号【&&】、【||】

&&:用来执行条件成立后执行的命令
||:用来执行条件不成立后的执行命令

。。。
RETCODE=$?
[ $RETCODE -ne 0 ] && return $RETCODE

linux之shell命令——条件判断(&& || test)_shang_feng_wei的博客-CSDN博客

84.basename

basename /tmp/test/file.txt

file.txt

basename /tmp/test/file.txt .txt 

file    // 指定后缀时,可以去掉后缀(上面例子中,指定了后缀 .txt)

85.gunzip

可以解压缩 gz 结尾的文件

86.locale // 命令

sxz001@sxzap01:~$ locale -a
C
C.UTF-8
en_US.utf8
POSIX

(C对应ASCII编码)

87.LANG // 系统变量  // Language的缩写

sxz001@sxzap01:~$ echo $LANG
en_US.UTF-8
sxz001@sxzap01:~$

指定执行命令时,指定系统显示所用的语言

LANG=C tar -zxvf xxx.gz

88.安装语言包・查看默认语言设置

sudo apt-get install  language-pack-zh-hans
cat /etc/default/locale

---

 安装之后

89.showmount

#查询本机nfs共享目录情况

showmount -e localhost

显示效果如下

     /AAA/BBB/CCC  192.168.1.122/24,192.168.1.123/24

含义:
   (对 192.168.1.122,192.168.1.123者两个IP地址共享此目录)
     前提,需要启动服务
          service rpcbind start
          service nfs start

NFS挂载

英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

Linux NFS挂载 - 整合侠 - 博客园 (cnblogs.com)

90.Linux的shell命令,直接在终端执行。

・写成一行,需要分号(分号相当于换行)

if [ -d /AAA/BBB/ccc ]; then echo "111"; fi

・改行时(不需要分号) ,以下命令,也可以直接在终端执行

if [ -d /AAA/BBB/ccc ]; then 
    echo "111"
fi


・其他 for  // for后面,有两层括号式正确的

for ((c=1;c<=5;c++)); do ls -l /AAA/BBB/CCC/xxx*.log; sleep 3; done

・其他 while  

while true; do TIME=`date "+%H:%M:%S"`;FILENAME=`ls -l | grep txt`;echo "${TIME},${FILENAME}";sleep 1; done

91.特殊符号【{}】 大括号

1.用法1
对大括号中的以逗号分割的文件列表进行拓展。
 如

 touch {a,b}.txt 

 结果为
  a.txt b.txt。

对大括号中以点点(…)分割的顺序文件列表起拓展作用,
如:  

touch {a…d}.txt

 结果为
  a.txt b.txt c.txt d.txt。

2.用法2
变量 ${AAA_BBB}

3.用法3 

   xargs -i cp {} /AAA/AAA

  传递前面管道得到的参数

find /AAA/BBB/CCC/ -maxdepth 1 -type f | xargs -i cp {} /Work/Back

92.gzip

gzip通常用于文件压缩,但是不能压缩文件夹,并且压缩完原文件不保留

[root@localhost home]# ls
abc.txt  admin  client  ClientM.c
//压缩ClientM.c文件
[root@localhost home]# gzip ClientM.c
//压缩为ClientM.c.gz
[root@localhost home]# ll
-rw-r--r-- 1 root  root     12 Aug 30 22:42 abc.txt
drwx------ 3 admin admin    92 May 14 02:27 admin
-rwxr-xr-x 1 root  root  17472 Aug 30 18:14 client
-rw-r--r-- 1 root  root   8668 Aug 30 10:10 ClientM.c.gz
[root@localhost home]#

使用gzip命令压缩, gunzip命令解压缩

同样,解压的时候,压缩文件不保留

生成的文件,后缀【.gz】

扩展【.tgz】

tar -zcvf examples.tgz examples

93.mount

在linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。

mount [参数]  /dev/sdb1(需要挂载的分区) /sdb1(挂载目录)

94.unmount

---

 umount [-ahnrvV][-t <文件系统类型>][文件系统]
 
 umount /AAA/BBBB/CCC

95.iconv

Linux下iconv命令对文件编码进行转换_shimadear的博客-CSDN博客_iconv iso-8859-1

iconv -f sjis -t utf8 yourFileName

---

2022想定外パターンで検索時、wcにパイプしない、そのまま出力する。// 2021年末,YYYY的Bug有无确认。

2021-12:grep '\"2021\-12' ./*.csv | wc
2022-12:grep '\"2021\-12' ./*.csv | tail -3 | xargs iconv -f sjis -t utf8

---

96.tcpdump

tcpdump -i any dst host aa.bbb.ccc.com -s0 -A
tcpdump –i eth0 ’port 1111‘ -X -c 3

97.★★★ 实际应用  ★★★ 【if else】【字符串包含】【字符串比较】

功能:根据文件包含的字符,文件名,文件后缀,来判断文件类型

注意:

 ・等于号两边要有空格

 ・=~ 可以判断是否包含某个字符串 // abc* 虽然也可以判断,但并不是所有的shell都好用

 ・  ;then 写在了一行,如果不写分号,then可以换行写 // 分号 ;  起到了换行的作用

 ・变量定义 可以时 $FILE_NAME  也可以是 ${FILE_NAME}

  (如果有两个变量 【FILE_NAME】  【FILE_NAMEA】 )

         echo  ${FILE_NAME}A

・定义字符串时,字符串没有空格,那么有没有引号"的效果都是一样的

・两个括号,[[ expression ]]   // 双方括号命令提供了针对字符串比较的高级特性

if [[ "${FILE_NAME}" =~ "abc" ]] ; then
    FILE_TYPE="abc"
elif [[ "${FILE_NAME}" == "aaa" ]] ; then
    FILE_TYPE="aaa"
else
    FILE_TYPE=`echo ${FILE_NAME} | awk -F "." '{print $2}'`
fi

96.time  查看命令性能 (不同于 windows 的time)

97.locale

   查看系统默认编码


 

sxz001@sxzap01:~$ locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
sxz001@sxzap01:~$

相关联内容 

  JVM运行时,不知道编码,默认使用系统编码
  java -Dfile.encoding=UTF-8 XXX.java

locale    英[ləʊˈkɑːl]    n. 场所,现场
locate    英 [ləʊˈkeɪt]   v. 位于;定位,找出…的准确位置;定居

98.native2ascii    (转换 \uXXXX  unicode )

native2ascii -reverse yourUxxxFileName 

reverse  v. 颠倒,倒转;倒退;逆转;调换

99.zcat

可以直接查看【xxxx.gz】文件中的内容。(无需解压)

---

100.perl

UNIX平台下历史悠久的脚本语言,擅长基于正则表达式的文本处理。

例:把Linux换行,变为Windows换行

perl -p -e 's/\n/\r\n' /XXX/XXX/a.txt > /XXX/XXX/b.txt

perl参数
-e 执行命令,也就是脚本
-p 自动循环+输出,也就是while(<>){命令(脚本); print;}

===

101.curl

curl  //Liunx中,比windows中,有更多参数可以使用

https认证使用

curl -k -v -F "key1=valuse1" -F "key2=value2" https://xxxx.xxx/aaa/bbb

各个参数介绍

// F:Form         模拟用户在浏览器上点击“submit”按钮提交表单的操作。 比如,要提交存储密码的文件到服务器上,命令为:curl -F password=@/etc/passwd
 
// k:               接受服务器的ssl证书而不管合不合法。参数“-k”等同于“--insecure”。
 
// v:verbose     显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。

参数 -k

       -k, --insecure
              (TLS) By default, every SSL connection curl makes is verified to be secure. This option allows curl to proceed and  oper乚
              ate even for server connections otherwise considered insecure.
 
              The  server  connection is verified by making sure the server's certificate contains the right name and verifies success乚
              fully using the cert store.
              See this online resource for further details:
               https://curl.haxx.se/docs/sslcerts.html
              See also --proxy-insecure and --cacert.

登录使用

curl -u 'bob:12345' https://google.com/login

参数 -U  

-u参数用来设置服务器认证的用户名和密码
 
curl -u 'bob:12345' https://google.com/login
上面命令设置用户名为bob,密码为12345,
然后将其转为 HTTP 标头Authorization: Basic Ym9iOjEyMzQ1

指定客户端证明书

curl --cert client.crt  --key client.key --insecure https://此处添加自己的网址及端口

参数 m 指定超时等待时间

 curl -I -m 5 hostName

curl的错误类型

curl: (6) Could not resolve host - 无法解析主机名或域名。
curl: (7) Failed to connect to localhost po

除此之外,在使用curl命令时,可能会遇到以下错误类型:

错误代码 1:表示无法连接到远程主机。
错误代码 2:表示无法读取本地文件或无法打开本地文件。
错误代码 3:表示无法执行指定的命令。
错误代码 4:表示FTP服务器返回一个错误代码。
错误代码 5:表示无法解析URL或使用了无效的协议。
错误代码 6:表示无法解析主机名。
错误代码 7:表示连接被拒绝。
错误代码 22:表示服务器返回了一个错误的HTTP状态代码。
错误代码 28:表示连接超时或操作超时。
错误代码 56:表示接收到了一个无效的响应头。
这些错误类型可能会因为不同的原因而出现,例如网络连接问题、文件权限问题、服务器配置问题等等。在遇到错误时,可以根据错误代码来确定具体的原因,并尝试解决它。

====

102.set

主要对于 IBM的AIX Server,需要执行下面命令,如果不执行,key【Backspace】不好用。

set -o emacs

----

103.openssl

 ・目的:

从xxxx.p12文件(客户端证明书的密码)中,生成「crt file」、「key file」供Postman、HttpClient的代码使用

(旧版本Postman无法使用 xxx.p12, 需要使用 crt 和key者两个文件)
(HttpClient的代码,也使用这两个文件)

(在Linux或者AIX Server中,都有openssl这个命令)


导出公钥(证书)(crt)

openssl pkcs12 -in YourCert.p12 -clcerts -nokeys -out cert.crt

输入YourCert.p12的密码

导出秘钥(key)

openssl pkcs12 -in YourCert.p12 -nodes -nocerts -out private_key.key

输入YourCert.p12的密码

(选项-nodes不是英文单词“nodes”,而是“no DES”。 当作为参数给出时,这意味着OpenSSL不会encryptionPKCS#12文件中的私钥)

xxx

104.特殊符号【~】

代表当前登录用户的用户目录,
经常和「ssh sftp」命令一起使用,使用公钥登录其它系统
比如

ssh -i ~/.ssh/id_rsa_XXX userXXX@serverXXX  "mkdir -p /Work/Test/test001"

登录 @serverXXX 服务器, 创建文件夹

====

105.sftp之参数【-b】

-b batchfile

  Batch mode reads a series of commands from an input batchfile instead of stdin.

echo "put -r /XXX/XXX/xx1 /Work/XXX/XXX/xx1" > sftp_input
echo "put -r /XXX/XXX/xx2 /Work/XXX/XXX/xx2" >> sftp_input
sftp -i ~/.ssh/id_rsa_XXX -b sftp_input userXXX@serverXXX 

xxx

106.date

显示示【秒数】对应的【时间】 (<秒数> 是指从 1970 年 1 月 1 日至今的秒数)

date -d @1609459200

显示,从 1970 年 1 月 1 日至今的秒

date +%s
 

107.sh -xe 参数是什么意思

sh -xe 是一种 shell 命令的参数组合,它有以下含义:

-x:在执行每条命令之前,输出该命令及其参数
-e:如果任何命令返回非零状态(即错误状态),则立即退出 shell
因此,使用 sh -xe 命令可以在执行脚本时,输出每个命令的执行情况,并在遇到错误时立即停止脚本的执行。这对于调试脚本和快速发现问题非常有帮助。
 

108.grep 查询不到时, 也能返回 0

对应其它命令,下面这种方式也适用

grep "pattern" file || echo 0

109.base64

查看base64编码对应的内容

echo 'YmFzZTY0IGVuY29kaW5n' | base64 -d

xxx

110.bc

bc 是 "Basic Calculator" 的缩写,是一种用于执行数学运算的命令行计算器程序。

===
在 Linux 中,您可以使用命令行计算器 bc 来直接计算数字。以下是使用 bc 进行简单计算

===
在 Linux 中,退出 bc(一个用于计算器的命令行工具)的方法是输入 quit 或 exit 命令,然后按下回车键。这将使 bc 停止并返回到命令行提示符

xxx

111.known_hosts 中  ssh-rsa 的值 是根据什么生成的

known_hosts 文件中的 ssh-rsa 值是根据远程主机的公钥生成的。当您第一次连接到一个远程主机时,您的SSH客户端会将该主机的公钥保存在known_hosts文件中。每次连接到该主机时,SSH客户端都会验证该主机的公钥是否与known_hosts文件中的相同,以确保您正在连接到正确的主机。如果公钥【密钥指纹信息】不匹配,SSH客户端会发出警告并停止连接。这有助于保护您的计算机免受中间人攻击。

====

known_hosts 文件不存储服务器的公钥信息。known_hosts 文件是用来存储已知主机的密钥指纹信息,以便在与主机建立 SSH 连接时进行验证。

当你首次连接到一个 SSH 服务器时,你的 SSH 客户端会将服务器的公钥指纹保存在 known_hosts 文件中。下一次连接时,客户端会比对服务器的公钥指纹和 known_hosts 文件中相应条目的指纹是否一致,以确保你连接的是同一个已知主机,以防止中间人攻击。

因此,known_hosts 文件只保存服务器的公钥指纹信息,而不是完整的公钥信息。公钥信息通常可以在服务器的证书中找到。

===

主机的公钥和主机的公钥指纹是密切相关但含义略有不同的概念。

--

主机的公钥是在SSH通信中用于进行加密和验证的一对密钥对中的公钥部分。它是由主机生成并提供给客户端,供客户端用来加密数据并验证主机的身份。主机的公钥是一个较长的字符串,通常以SSH格式开头,例如"ssh-rsa AAAAB3NzaC1yc......"。

---

主机的公钥指纹是主机公钥经过特定算法(如MD5、SHA-256等)计算得到的一个较短的唯一标识。它是用于验证主机公钥的有效性,并用作主机身份的摘要信息。公钥指纹通常是一个以冒号分隔的十六进制字符串,例如"de:ad:be:ef:12:34:56:78:90:ab:cd:ef:12:34:56:78"。

---

区别在于公钥是主机提供给客户端用于加密和验证的长字符串,而公钥指纹是根据公钥计算得到的短字符串,用于在第一次连接时验证主机身份的有效性。公钥用于实际的加密和验证过程,而公钥指纹用于验证公钥的有效性和一致性。

==

==

xxx

112.如何查看主机的公钥信息

cat /etc/ssh/ssh_host_rsa_key.pub

xxx

===

这个文件是如何生成的,

/etc/ssh/ssh_host_rsa_key.pub 文件是 SSH 主机的 RSA 公钥文件,它是在 SSH 服务器首次安装时自动生成的。在 SSH 服务器配置中,你可以定义要生成的密钥类型和文件路径。

这个公钥文件包含了 SSH 服务器的公钥信息,用于向连接到该服务器的客户端验证身份。

====

113.shell 中 ${0##*/} 是什么意思-----获取脚本文件的名称

在shell中,${0##*/}是一种参数替换的用法,其作用是获取脚本文件的名称。


具体解释如下:

0
表示当前脚本的名称,即
0表示当前脚本的名称,即0是一个内置的变量,它会保存当前执行的脚本的名称。

##是一种模式匹配操作符,表示删除匹配的最长字符串。

*/表示任意字符和路径分隔符("/")的组合。


所以,{0##*/}的含义是从0中删除最长的以"/"为分隔符的字符序列。


举个例子,如果当前的脚本文件的路径和名称是"/path/to/script.sh",那么${0##*/}会删除"/path/to/",只返回"script.sh"作为结果

xxx

114.XXX

xxx

115.XXX

xxx

116.XXX

xxx

■AIX

1.查看端口对应的进程 (Websphere Server)

      > netstat -Aan | grep 56789  // your port 56789
XXXXXXXXXX tcp   0  0  *.56789   *.*  LISTEN

      > rmsock XXXXXXXXXX tcpcb
XXXXXXXXXX is being held by process NNNNNNN (java.)  // PID NNNNN

      > pl -elf  | grep NNNNNNN
XXXXXXXXXXXXXXXXXXXX...    xxxCellxxxnode   xxxxServerxxx
      

====

2. shell  // AIX切换壳 

AIX操作系统,模式的壳是ksh,换一个壳(shell),即可实现tab自动补全,↑↓查看前后命令

如何换壳,直接执行下面的命令即可

shell

xxxx

3.删除文件

-e 相当于 Linux中的 -v: 显示文件删除后的信息

-e   Displays a message after each file is deleted.

rm -fre

4.csum

csum -h SHA1 FileName.txt

5.find運用(AIX)

find /AAA/BBB -type f | sort | xargs sum

====

// フォルダも表示する。 p:フォルダ表示時、末尾「slash」も表示する。「/AAA/BBB/aaa/」
find /AAA/BBB | sort | xargs ls -lpd

6.istat   查看文件最新修改时间

istat 查看文件最新修改时间 //Purpose: Examines i-nodes

last updated:  xxxx    // chmod chown 命令会影响此时间
last modified: xxxx    // chmod chown 命令  或者 修改文件内容会影响此时间
last accessed: xxxx    // cat等命令会影响此时间


purpose  [ˈpɜːrpəs] n. 目的;意志;用途;意义
examine  [ɪɡˈzæmɪn] v. 调查;诊察;检查;检测;考试;审问
 

===

7.AIX 查看用户上一次登录・用户是否被锁

/etc/security/lastlog

注意:这个文件里面显示的时间是,秒数。(<秒数> 是指从 1970 年 1 月 1 日至今的秒数)

这里面有两个时间

  time_last_login

  time_last_Unsuccessful_login

==

在Linux中,可以使用【date -的@1691713543】查看秒数对应的时间

===

Linux并没有上面的文件,使用下面命令,查看用户

passwd -S YourUserID

在上面的【18.passwd】中查看详细

==

8.在 AIX 系统中,如果没有安装 unzip 命令,可以尝试使用以下命令解压缩 Zip 文件:

使用 jar 命令:

jar -xvf filename.zip

xxx

9.查看磁盘容量

进入要查看的目录
cd /AA/BB
查看当前目录,磁盘使用情况
df -m .
查看当前目录下,站容量最多的7个目录
du -sm ./*|sort -nr|head -n 7

xxx

10.查看字符对应的16进制编码 【od】 (linux 也能用) 

echo "a" | od -t x1

xxx

echo "ー" | od -t x1

==

SJIS(Shift-JIS)和EUC-JP(Extended Unix Code-JP)是两种常用的日语字符编码方案。

  1. 字符集范围:

    • SJIS:由日本电脑制造商开发,支持日语中的大部分字符,包括假名、汉字、罗马字等。
    • EUC-JP:也是由日本开发,与SJIS类似,支持日语字符集,包括假名、汉字、罗马字等。
  2. 编码方式:

    • SJIS:采用双字节编码方式,每个字符占用2个字节,其中第一个字节的范围是0x81-0x9F和0xE0-0xFC,第二个字节的范围是0x40-0xFC。
    • EUC-JP:同样采用双字节编码方式,每个字符也占用2个字节,第一个字节的范围是0xA1-0xFE,第二个字节的范围也是0xA1-0xFE。
  3. 兼容性:

    • SJIS:在Windows系统中广泛使用,支持大部分的软件和应用程序。
    • EUC-JP:在Unix/Linux等操作系统中常用,也有一些应用程序和工具支持该编码。
  4. 其他区别:

    • SJIS有时会产生字节流冲突的问题,因为某些字符在不同的上下文中有不同的编码,这可能导致乱码或无法正确解码。
    • EUC-JP在一些应用中可能会有更好的兼容性和处理效果。

总的来说,SJIS和EUC-JP都是常见的日语字符编码方案,具有相似的字符集支持,但在具体的应用环境和兼容性方面可能有一些差异。选择哪种编码方案应基于具体的需求和应用场景进行判断。

====

编码通过下面方式指定

 ===

xxxx

11.last【用于显示登录和注销的用户会话记录】

打开系统的登录日志文件,通常是/var/adm/wtmp文件。您可以使用以下命令查看该日志文件的内容:

last

该命令会列出最近的用户登录和注销记录。每行记录都会显示用户名、登录日期和时间、登录的IP地址(如果适用),以及注销的日期和时间(如果用户使用了exit命令退出)。如果用户没有使用exit命令退出,那么注销的日期和时间可能为空。

==

在AIX系统中,last命令用于显示登录和注销的用户会话记录。以下是如何使用last命令的基本语法:

last [选项] [用户名] [终端]

一些常用的选项包括:

  • -a:显示终端名称。
  • -d:显示终端断开连接的时间。
  • -F:以完整的日期和时间格式显示记录。
  • -R:以相对时间格式显示记录。
  • -s:显示指定日期/时间之后的记录。

下面是一些示例:

  1. 显示所有用户的登录和注销记录:
last
  1. 显示指定用户的登录和注销记录:
last username

将"username"替换为您要查看的特定用户名。

  1. 显示指定终端的登录和注销记录:
last -t tty1

将"tty1"替换为您要查看的特定终端。

  1. 显示指定日期/时间之后的记录:
last -s "YYYY-MM-DD HH:MM:SS"

将"YYYY-MM-DD HH:MM:SS"替换为您指定的日期和时间。

  1. 显示完整的日期和时间格式的记录:
last -F

请注意,要使用last命令,您需要以root账户或具有足够权限的账户登录到AIX系统。此外,AIX系统中的登录日志通常存储在/var/adm/wtmp文件中。

xxx

12.

xxx

13.

xxx

14.

xxx

15.

xxx

16.

xxx

17.

xxx

18.

xxx

19.

xxx

■其它

1.AIX 无法补全的原因

AIX如何实现tab键自动补全命令-百度经验

检查AIX操作系统root使用的shell,发现为ksh,需要修改为bash,换一个壳,即可实现tab自动补全
(注:Linux默认创建shell为bash,所以Linux可以自动补全)

检查・变更

cat /etc/passwd | grep root

root:!:0:0::/root:/user/bin/ksh

root:!:0:0::/root://bin/bash

2.XXX

---

■更多命令

【Linux】一步一步学Linux系列教程汇总(更新中......)_嵌入式开发工程师---欢迎大家一起交流-CSDN博客_csdn dengjin

---

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unix_Linux_AIX_常用命令总结 的相关文章

  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 使用 ioctl 在 C++ 中以编程方式添加路由

    我编写了简单的 C 函数 添加了新路线 void addRoute int fd socket PF INET SOCK DGRAM IPPROTO IP struct rtentry route memset route 0 sizeof
  • 在 Linux 中重新启动时,新创建的文件变为 0 kb(数据被覆盖为空)

    我遇到了一个奇怪的问题 这让我发疯 当前的任务是在 root 用户第一次登录时启动一组文件 并在同一用户第二次登录时启动另一组文件 我决定使用 profile 和 bashrc 文件 并在第一次登录期间发生的任务结束时重新加载 bashrc
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 安装python启动文件

    我如何安装pythonstartup文件 以便它在命令上运行 例如python myfile py 我尝试将其安装到我的 home myuserUbuntu的目录 但它说我没有足够的权限 此外 不同的地方交替说它应该全部大写或全部小写 前面
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 如何处理文件中的特殊字符(ഀ)

    我有一个文件 当我打开它时 它看起来像这样 Notepad A B C D E 31 HB 39 Ph 49 32 FB 38 Ph 59 当我尝试从 WinScp 打开它时 它看起来如下所示 A B C D E 31 HB 39 Ph 4
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我

随机推荐

  • 一个或多个筛选器或者Listeners启动失败

    今天使用tomcat直接部署项目 之前一直都是在idea直接部署 但是在启动tomcat的过程中一直报一个或多个筛选器或者Listeners启动失败的错误 之前在idea部署的时候也出现过这个错误 然后就根据网上的答案说 lib 下可能没有
  • 数据结构初阶 ---- 顺序表的(C语言)实现

    目录 一 动态顺序表的结构体定义 二 动态顺序表的函数接口 1 顺序表的初始化 2 顺序表的销毁 3 打印结构体数组内的内容 4 检查数组容量 容量不够时 扩容 5 顺序表的尾插 6 顺序表的尾删 7 顺序表的头插 8 顺序表的头删 9 顺
  • jffs2:You cannot use older JFFS2 filesystems with newer kernels错误

    jffs2 You cannot use older JFFS2 filesystems with newer kernels错误 原因 可能在于交叉编译linux内核时 没有打开jffs2系统的使能开关 解决方法 在内核文件中执行make
  • spring mvc 中对静态资源的访问配置

    在web xml中配置spring mc servlet 对url pattern设置时 排除在spring的servlet之外
  • netty的线程池-----揭示了使用两个线程池的原因

    线程模型是Netty的核心设计 设计地很巧妙 之前项目中有一块处理并发的设计和Netty的Eventloop单线程设计类似 效果得到了实证 Netty5的类层次结构和之前的版本变化很大 网上也有很多文章写Netty的线程模型 Reactor
  • windbg+vmware双机调试配置教程及可能出现的问题

    一 设备参数说明 1 调试机 物理机windows 10 windbg 10 0 22000 194 2 被调试机 虚拟机windows xp sp3 3 虚拟机软件 VMware workstation 16 1 2 二 虚拟机配置调试串
  • Python面试题整理(选择题及其答案)

    Python面试题 选择题及其答案 往期文章 Python知识点整理 完整 Python知识点整理 图文结合近三万字 史上最全 Python二级考试知识点 史上最全 Python二级考试试题汇总 史上最全 2023年Python选择题及答案
  • 学习之笔记

    Hook技术被广泛应用于安全的多个领域 比如杀毒软件的主动防御功能 涉及到对一些敏感API的监控 就需要对这些API进行Hook 窃取密码的木马病毒 为了接收键盘的输入 需要Hook键盘消息 甚至是Windows系统及一些应用程序 在打补丁
  • Matlab求解矩阵方程

    描述 使用matlab求解某个方程 方程里面的变量和参数都是矩阵形式 代码 clc clear syms x A eye 4 B eye 4 x solve A x inv A B x就是方程的解 下面是另外一种形式 和上面是等同的 cle
  • UE4学习日记——蓝图中的各种颜色代表什么

    节点类型颜色 白色 执行线 蓝色 调用的函数或事件 暗蓝色 结构体 草绿色 流程切换 绿色 纯函数 通常用于获取什么 青色 试着对象转换 紫色 函数定义 灰色 宏 红色 事件的定义 土黄色 时间轴 数据类型颜色 白色线条 执行线 程序的执行
  • XSL-FO 基础知识(三)

    基本块格式化 第 1 页 共4 页 既然您已经接触到了
  • Echarts 提示内容自定义 y轴显示中文

    提示信息 只需要重写tooltip中的formatter方法 然后按照函数进行数据处理 并返回要显示的数据即可 tooltip formatter function params var res params 0 name br 水质等级为
  • html是用来表示网上信息的符号标记语言,html标记的一般格式

    html标记的一般格式 HTML是 Hyper Text Markup Language 超文本标记语言 的缩写 用来表示网上信息的 符号标记语言 是Web文档的规范 也有人把HTML称为浏览器的母语 HTML语言内容丰富 从功能上大体可分
  • Unity 实现AR脱卡功能

    准备好普通的AR东西后 在DefaultTrackableEventHandler代码中的OnTrackingFound 函数中 第一行添加 TrackerManager Instance GetTracker Stop TrackerMa
  • Python面试准备_排序算法

    最常问的Python排序算法 1 冒泡排序 核心算法 选取每个元素 依次跟右边的元素比较 def my sort arr if not isinstance arr list return None i控制比较多少轮 最后1个元素可以不比
  • qtcpsocket调用write和read函数写数据乱码问题解决方法

    参考以下博客QTcpSocket通信乱码解决方法 http blog csdn net zouhao619 article details 7100752 qtcpsocket写中文会乱码 在写入前和读出后进行处理一下就可以正常显示 如先调
  • etcd键值操作

    etcd 删除键值 1 查询所有键值 curl http 10 0 2 255 9001 v2 keys services recursive true 2 删除键值 curl http 10 0 22 39 9001 v2 keys ke
  • 在 Win10 中加快微软账户登录速度的解决方案

    修改DNS即可
  • 2022年中职组网络安全国赛A模块解析第二套

    2022年全国职业院校技能大赛 中职组 网络安全竞赛试题 2 总分100分 赛题说明 一 竞赛项目简介 网络安全 竞赛共分A 基础设施设置与安全加固 B 网络安全事件响应 数字取证调查和应用安全 C CTF夺旗 攻击 D CTF夺旗 防御等
  • Unix_Linux_AIX_常用命令总结

    目录 Java常用知识总结 前言 常用链接 Shell 自动化 处理相关 需要使用到的命令 编码思想 编码规范 shell脚本 循环处理 1 循环小火车 2 循环cup性能 各种命令 0 cd 1 uname 2 ifconfig 3 wh