shell 常用命令②

1、软连接

ln -sf 源地址  需要生成的软连接地址

当前目录是/local,而我经常要访问/usr/local/linux/work

那么我就可以使用在local下建立一个文件linkwork,

sudo ln -s /usr/local/linux/work  /local/linkwork

删除软连接的时候一定要记住后面不要接/ 否则会将源地址删除

2、重新加载systemctl 服务

systemctl daemon-reload

3、查看系统开机启动的服务

systemctl list-unit-files | grep enable

4、系统服务默认的启动配置文件

/etc/systemd/system/XXX.service
vim /usr/lib/systemd/system/php-fpm.service

5、LDAP添加用户

ldapadd -x -D "cn=jumpserver,dc=XXX,dc=com" -w jumpserver  -H ldap://ldap.XXX.com

6、tar 加压缩

tar -c 建立压缩档案

-x 解压

-t 查看内容

-r 向压缩归档文件末尾追加文件

-u 更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。

下面参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的

-j:有bz2属性的

-Z:有compress属性的

-v:显示所有过程

-O:将文件解开到标准输出

tar -cf all.tar *.jpg
###tar 参数  生成的压缩名字	需要压缩的文件/目录

https://www.cnblogs.com/jyaray/archive/2011/04/30/2033362.html

7、shell命名快速切换到第一个字母位置

Ctrl+shift+a跳到本行的行首,
Ctrl+e则跳到页尾。
Ctrl+u删除当前光标前面的文字
ctrl+k-删除当前光标后面的文字

 

可以在工具--》选项--》键盘和鼠标 --》对应键盘位置编辑

image-20210426151845468

8、修改时间

date -s 04/26/2021
date -s 17:19:20

9、find并删除文件

find . -name ‘*.log’ -type f -print -exec rm -rf {} ;

10、查看系统内存大小

free -m   ###或者
cat /proc/meminfo | grep "MemTotal" | awk '{printf "%.f",$2/1024}'

11、查看系统cpu核数

top -c  按数字1  ###或者
cat /proc/cpuinfo | grep "processor" | wc -l

12、sed命令实现匹配行下一行的替换

sed -i '/Hello,World\!/{n;s/LiLei/HanMeimei/;}' ABC.txt
sed -i ".bak" '/Hello,World/{n;s/LiLei/HanMeimei/;}' ABC.txt

命令解释:

sed [-nefr] [动作]
  • -i: 直接修改读取的文件内容,而不是输出到终端。
  • n: 移动到匹配行的下一行。
  • s: 替换。

13、sed找到匹配项后替换上一行的内容

sed '/m11111/{g;/=/s/=.*/="9283"\/>/g;};h' test.txt

14、Sed替换冒号前,等号后的所有字符

 sed 's/.*://' test.txt
#!/bin/bash
KEY=$2
VALUE=$3
FILE_NAME=$1
sed -i "s/${KEY}\s*\=.*$/${KEY}=${VALUE}/g" ${FILE_NAME}

 

说明:

第二个是基本sed替代。第一个和第二个之间的部分/是要搜索的正则表达式,第二个和第三个之间的部分是要替换的内容(在这种情况下,我们将删除任何内容)。

对于正则表达式,.匹配任何字符,*重复此次数任意次(包括零)并:匹配冒号。如此有效的是冒号后面紧跟的任何东西。由于.*可以包含冒号,因此匹配为“贪婪”,并且包括最后一个冒号之前的所有内容。

15、匹配多个字符并删除

cat a.txt | sed '/group\|into\|sss/d'  

#删除文件a.txt中带有字符串group或者into或者sss的行,“或”运算符需要转义

16、echo 带双引号的变量值

aaa=1111111111
echo  \""$aaa"\"
"1111111111"

17、启动服务并将日志打印到黑洞

nohup ./program >/dev/null 2>log &
 ls >/dev/null 2>&1

 

俗话曰:不积跬步无以至千里。命令虽然都是常见的,但是要知道每一个参数的含义,并且用到如火纯情,还是需要下一番功夫的。