shell--常用命令

用户相关

踢除登录用户

pkill -kill -t pts/1

杀掉某个用户所有进程

如杀掉test用户所有进程

pkill -kill -u test

修改用户密码
方式一:

echo "password" | passwd testuser --stdin >/dev/null

方式二:

echo testuser:password | chpasswd

系统设置

释放缓存

sync; echo 3 > /proc/sys/vm/drop_caches

设置提示符

export PS1='\u@\h \w \$ '

测试方法

创建指定大小的文件

dd if=/dev/zero of=test bs=1M count=1000

修改文件的时间

如把文件时间改为3天前

touch -d "3 days ago" test_file

文本处理

显示前k行内容

head -n k test

显示末尾k行内容

tail -n k test

显示除最后k行内容

head -n -k test

从第k行开始显示(去掉前k-1行)

tail -n +k test

sed命令

在第一行前添加字符串AAA

sed -i '1i AAA' file_path

在最后一行添加字符串AAA

sed -i '$a AAA' file_path

删除匹配行
如删除文件中以#号开始的行

sed -i '/^#/d' file_path

grep命令

grep匹配多个

grep -iE "error|fialed"

查找包含某个字符串的所有文件

grep -R some_str

find命令

查找包含特定内容的文件

find . -type f | xargs grep some_str

find结合sed进行批量操作
批量修改,把当前目录下所有文件中的A替换成B

find . -type f | xargs sed -i "s/A/B/g"

批量删除

find . -type f | xargs sed -i "s/some_str/d"

字符串截取

举例变量file="modify_suffix.sh.tar.gz"

从右侧开始匹配".",保留左侧到第一次匹配部分

echo "${file%.*}"

结果为:modify_suffix.sh.tar

从右侧开始匹配".",保留左侧到最后一次匹配部分

echo "${file%%.*}"

结果为:modify_suffix

从左侧开始匹配".",保留右侧到第一次匹配部分

echo "${file#*.}"

结果为:sh.tar.gz

从左侧开始匹配".",保留右侧到最后匹配部分

echo "${file##*.}"

结果为:gz

你可能感兴趣的:(Linux)