shell常用命令小记

4 篇文章 0 订阅
ls 正则匹配
# 列出文件名包含非字母,数字的文件
ls *[^0-9a-zA-Z]*
# 列出以字母开头,文件名包含空格的.html文件
ls [a-zA-Z]*\ *.html 
通过date命令获取昨天或明天时间
  • date命令可以获取当前的时间,通过man,可以看到date有很多参数可以用,很容易做到格式化
date +"%F"
输出格式:2011-12-31 

date +"%F %H:%M:%S"
输出格式:2011-12-31 16:29:50
  • 这都是打印出系统的当前时间,如果要获取相对当前时间的某个时间,需要怎么做,通过 -d 参数就能实现。例如:
date -d"tomorrow" +"%F %H:%M:%S"
输出明天这个时候的时间

date -d"yesterday" +"%F %H:%M:%S"
输出昨天这个时候的时间
  • 如果说我想获取13天前的时间怎么办,-d参数还有更加灵活的用法,例如:
date -d"-1 day ago" +"%F %H:%M:%S"
输出明天这个时候的时间

date -d"1 day ago" +"%F %H:%M:%S"
输出昨天这个时候的时间

date -d"1 week ago" +"%F %H:%M:%S"
输出7天前这个时候的时间,等价于
date -d"7 day ago" +"%F %H:%M:%S"

可以看到ago的强大了吧,第一个数字可以是负数,负数表示将来时间,正数表示前面已经过去的时间,第二个参数minute、hour、day、month、week。

添加,编辑用户和组
useradd -m -g users <username> #添加新用户并在/home下创建用户目录
passwd <username>  #为新用户设置密码
id <username>  #显示用户的id和所在分组信息
groupadd admin  #添加admin组
gpasswd -a <username> admin  #把用户添加到admin组内
递归修改目录下所有目录的权限为755,目录下所有文件权限为644
find <directory> -type d -exec chmod 755 {} \;
find <directory> ! -type d -exec chmod 644 {} \;
磁盘大文件及大文件夹查找
  • 展示指定目录下所有文件和目录的大小,并按照从大到小的顺序排列
du -s /home/* | sort -nr
  • 查找当前目录下100M以上的文件
find . -type f -size +100M

# 对查找结果按照文件大小做一个排序
find . -type f -size +100M  -print0 | xargs -0 du -h | sort -nr
  • 查找当前目录下前20的大目录
sudo du -hm --max-depth=2 | sort -nr | head -20
打包当前文件夹下所有文件
# 压缩当前文件夹下非隐藏文件的文件
tar czvf test.tar.gz *

# 压缩当前文件夹下隐藏文件排除两个隐藏文件夹"."和“..”
tar czvf test.tar.gz  .[!.]*

#`ls -a`
tar zcvf test.tar
展示所有进程
ps -ef 
查看端口信息
ss -tlnp
目录处理命令
mkdir -p 目录名
选项

-p 递归创建

cp [选项] [原文件或目录] [目标目录]
选项

-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr

帮助命令
man
  • man的级别

    1. 查看命令的帮助
    2. 查看可被内核调用的函数的帮助
    3. 查看函数和函数库的帮助
    4. 查看特殊文件的帮助(主要是/dev目录下的文件)
    5. 查看配置文件的帮助
    6. 查看游戏的帮助
    7. 查看其它杂项的帮助
    8. 查看系统管理员可用命令的帮助
    9. 查看和内核相关文件的帮助
  • 查看命令拥有哪个级别的帮助

    1. man -f 命令
    2. whatis 命令

举例:

man -5 passwd
man -4 null
man -8 ifconfig

  • 查看和命令相关的所有帮助
    1. man -k 命令
    2. apropos 命令

举例

man -k passwd

选项帮助
  • 命令 –help

举例

ls –help

shell 内部命令帮助
  • help shell内部命令

举例

确定cd 命令是否是内部命令
whereis cd

-
获取内部命令帮助
help cd

详细命令帮助 info
  • info命令
    回车 进入子帮助页面(带有 * 号标记)
    u 进入上层页面
    n 进入下一个帮助小节
    p 进入上一个帮助小节
    q 退出帮助页面
显示当前登录系统的用户
  • who
last和lastlog
  • last命令用于显示用户最近登录信息

  • lastlog命令用于显示系统中所有用户最近一次登录信息。

查找文件,并列出其详细信息
ls -ld $(locate filename)

后台命令脱离登录终端执行的方法

1. 把需要后台执行的命令放入 /etc/rc.local 文件(推荐)
2. 使用系统定时任务,让系统在指定的时间执行某个后台命令
3. 使用 nohup 命令
nohup [命令] &
  • 实例
[vagrant/tmp] ]$cat for.sh
#!/bin/bash

for i in `seq 1000`
do
    date >> /tmp/date.log
    sleep 3s
done
[vagrant/tmp] ]$nohup /tmp/for.sh &
[1] 4065
nohup: ignoring input and appending output to ‘nohup.out’
[vagrant/tmp] ]$jobs
[1]+  Running                 nohup /tmp/for.sh &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值