Linux Shell 常用命令
du
1、查看指定文件夹的大小
-h 以K,M,G为单位,提高信息的可读性。
-s 仅显示总计。
du -sh dir_path
2. 查询当前文件夹总大小
du -sh .
3. 查看当前文件夹所有子项的大小
du -sh *
df
df (disk filesystem)用于显示文件系统的磁盘空间使用情况.
查看 block 使用情况
df -h
查看 inode 使用情况
df -i
alias
alias gg='gg'
alias cls='clear'
alias ls='ls -alFh --ignore=. --ignore=.. --color=auto --group-directories-first'
alias acme.sh=~/.acme.sh/acme.sh
ln
ln -s source_file target_file
nginx
ln -s /wangzhy/cloud-conf/nginx/etc/nginx/conf /etc/nginx/conf
ln -s /wangzhy/.config/nginx_ip_conf /etc/nginx/ip-conf
把程序添加到 /usr/bin
下面
ln -s /source_path/source_name /usr/bin/target_name
find
find 语法
find [path] [expression]
path:是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。
expression:是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。
-name pattern:按文件名查找,支持使用通配符 * 和 ?。
pattern 用引号括起来,例如
# 查找所有的 pdf 文件
find / -name '*.pdf*'
-type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
查看大于 100M 的文件
find / -type f -size +100M
-size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
-mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
-user username:按文件所有者查找。
-group groupname:按文件所属组查找。
find 命令中用于时间的参数如下:
-amin n:查找在 n 分钟内被访问过的文件。
-atime n:查找在 n*24 小时内被访问过的文件。
-cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。
-ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。
-mmin n:查找在 n 分钟内被修改过的文件。
-mtime n:查找在 n*24 小时内被修改过的文件。
在这些参数中,n 可以是一个正数、负数或零。正数表示在指定的时间内修改或访问过的文件,负数表示在指定的时间之前修改或访问过的文件,零表示在当前时间点上修改或访问过的文件。
+n : n 天之前修改的文件 -n : n 天内修改的文件 n : n 天前修改的文件(第 n 天前的当天)
find 使用案例
- 在脚本中使用
find /opt/oracle/oradata/ORCLCDB/oracle_exp_dir -mtime +1 -name "WIKI_USER*" - rm -f exec {} \;
- 在 shell 使用
find /opt/oracle/oradata/ORCLCDB/oracle_exp_dir -mtime +1 -name "WIKI_USER*" - rm -f exec {} +
- 查找多种后缀的文件
find ~ \( -name "*.zip" -o -name "*.log" -o -name "*.txt" -o -name "*.jar" -o -name "*.json" -o -name "*.xls" -o -name "*.xlsx" -o -name "*.doc" -o -name "*.docx" \)
- 查找大于 10M 的 zip 文件
find /path/to/search -type f -name "*.zip" -size +10M -exec du -h {} + > ~/Desktop/a.txt
watch
每隔 1s 查询一下本目录下的,以 sql 结尾的文件的大小,单位是 MB。
watch -n 1 -d ls -lh --block-size=M *.sql
vim
1、vim 显示隐藏行号
# 显示行号
set number
set nu
# 隐藏行号
set nonumber
set nonu
2、vim 删除以 XX 开头的行
# 按 esc 进入命令输入模式
# 删除以 XX 开头的行
:g/^XX/d
tee
tee
的主要功能是从标准输入读取数据,然后将数据写入标准输出(即输出到终端上面)和文件。
echo 'hello world' | tee -a xxx.txt
tee
与 >>
的区别?
tee
可以一次写入多个文件,并且可以在终端显示写入的内容。 >>
是静默的写入。
tar 压缩/解压文件
# 压缩
tar -zcvf test.tar.gz test
# 解压
tar -zxvf file.tar.gz
五选一
-c 压缩 -x 解压 -t 查看内容 -r 追加文件 -u 更新原压缩包的文件
可选
-z gzip -j bz2 -Z compress -v 显示过程 -O 标准输出
必选
-f 使用档案名字,这个参数是最后一个参数,后面只能接档案名。
systemd
Ubuntu 16.04 不再支持 rc.local 了。开机自启只能通过 systemd 来实现。
# 查看systemd 版本
systemctl --version
# 查看服务是否启用
systemctl is-enabled SERVICE_NAME
scp
[root@VM-16-10-centos ~]# scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
scp 命令传输文件
# 复制远程机器上的 xxx.zip 到本地
scp cloud:/wangzhy/xxx.zip ~/backups/
# 复制远程机器上的文件夹到本地
# -r 表示递归复制整个目录
scp -r cloud:/wangzhy ~/backup/
-C
:开启压缩传输
passwd
1、设置简单的密码
# 方法一
echo '123456' | passwd --stdin username
# 方法二
echo username:password | chpasswd
2、删除用户的登录密码
passwd -d root
3、清除 last、lastb 的信息
# 清除登录记录
echo > /var/log/wtmp # last
echo > /var/log/btmp # lastb
查看 linux 版本信息
# 查看架构信息
uname -a
# 查看发行版本信息
cat /etc/os-release
# 输出机器的体系结构
arch
ntp
同步操作系统的时间
# 安装 ntp
yum -y install ntp
# 同步时间,这个只是修改操作系统的时间,重启之后就会失效
ntpdate -u cn.pool.ntp.org
# 查看当前硬件时间
clock -r
# 把当前操作系统的时间写入硬件中
clock -w
curl
curl -L
参数的作用是让 curl
在遇到 HTTP 3xx 状态码
(重定向)时,自动跟随新的位置(URL)
curl -L www.sina.com
使用 -k
或 --insecure
参数让 curl
忽略 SSL 证书
验证
curl -k https://wangzhy.com
下载文件
-o
需要指定文件名
-O
使用 URL 中的文件名
brew
安装 xcode 才能升级 brew
xcode-select --install
brew 升级
brew update
brew upgrade
brew 查看安装的软件
brew list
brew 卸载软件
brew uninstall software_name
查看磁盘读写总量
brew install smartmontools
smartctl -a /dev/disk2
安装 svn
brew install subversion
svn help
grep
egrep 是 grep 的增强版本,支持更多的正则表达式
-v 告诉 egrep ,不现实匹配的行,即反向匹配。
egrep -v "^*#|^$" filebeat.yml
wget
-i
下载本地或外部文件中的 URL
,如: wget -i file.txt
。
-O
将输出写入指定文件。 sh -c "$(wget https://xxx.sh -O -)"
, 末尾的 -
表示标准输出(stdout
)
这句命令的作用是,通过 sh
执行 https://xxx.sh
脚本。
-b
后台下载。
-d
调试模式。