#!/bin/bash --bash路径 shebang-sharp # bang !
echo 1.'' 2."" 3.什么都不加 1不会计算例如$var 2,3会计算
printf "-5s" 负号表示向左对齐
echo -e
pgrep {name}
env -- 显示环境变量
var=1 赋值 var = 1 相等
export PATH="$PATH:/XXX/xxx"
echo ${#var} -- 显示字符串长度
显示bash
echo $0
echo $SHELL
bash_profile: uwh 用户名/路径/主机名
计算:echo "4*5" | bc --bc是一个unix内置计算库
echo "1" > 1.txt --清空1.txt内容
echo "1">>1.txt --在1.txt中追加
0 标准输入
1 正常输出
2 错误输出
系统默认 重定向符 >,>> 等效于 1> ,1>>
tee命令 标准输入
exec 3<等可追加文件操作符
脚本名称叫test.sh 入参三个: 1 2 3 运行test.sh 1 2 3后 $*为"1 2 3"(一起被引号包住) $@为"1" "2" "3"(分别被包住) $#为3(参数数量)
tput 命令设置终端表示 setb setf等 后面的值固定0-7
stty -echo
stty echo --连用,隐藏输入,显示输入
时间
date 普通时间
date +%s 打印时间戳。所有时间格式如下图
设置时间 date -s 20160429
tput sc rc rd命令
sleep命令
bash -x 调试命令
存储命令输出:
$() 或者反括号``
子shell用法
()中执行命令。不影响当前shell
read用法
read -n 2 var
不显示
read -s var
显示
read -p "Enter word:" var
限时输入
read -t 2 var
定界符
read -d ":" var
IFS内部分界符号。默认是空格。无法用echo输出
循环:
for var in ..配合IFS。do done
test命令类似中括号的比较。可以减少中括号的数量
拼接字符串:
echo "hello" | cat - out.txt --注意此处的-。
find命令
-name
-path = -regex类似。-iregex忽略大小写
!非符号
linux文件有三种时间
访问时间:-atime 单位天 -amin 单位分钟
修改时间:-mtime
变化时间:-ctime
打印出七天被修改过的文件
find / -type f -ctime -7
find / -type f -newer file_name
基于文件大小
find / -type f -size +2k
尾巴加上-delete可删除找到的结果
列出权限 -perm
-exec 后面可接任何命令。{}表示前面的结果
find 找出的文件配合-exec基本可以完成一切文件操作。-exec {} ;-exec的标准写法。
将找到的文件内容全部写入一个文件
find . -name "*.c" -exec cat {} ;>1.txt
显示所有文件权限:
find . -name "*.c" -exec ls -la {} ;
跳过某些文件搜索
find . -name "*" ( -name "*.c" -prune ) -o ( -type f -print )
-xargs参数
读取文件参数执行
cat 1.txt | xargs -n 2 ./xxx.sh
du -h命令
可以查看各目录大小
排序 去重
sort file1.txt file2.txt | uniq
sort -rk 2 file_name -r逆序 -k 2排序第2列 可以是tab和空格
统计每一行出现的次数:
sort file.txt | uniq -c
显示重复的行:
sort file.txt | uniq -d
扩展成当前运行脚本的进程id
tmp="/tmp/var.$$"
生成100k的测试文件
dd if=/dev/zero bs=100k count=1 of=data.file
分割文件命令 split csplit-》功能更加强大
提取文件前缀及扩展名
file_jpg="xxx.jpg"
prefix_name=${file%.*} %原理 删除右侧最小匹配字符,%%为贪婪版本。
suffix_name=${file#*.} #原理 删除左侧最小匹配字符,##为贪婪版本
字典命令:
look words
删除文件中的字符:
cat 1 | sed 's/ruby/bird/'
设置无法修改属性
chattr 命令
chattr +i file
恢复
chattr -i file
创建iso文件
cat /data/1 > image.iso
dd if=/data/1 of=image.iso
将一个目录内容写入iso
mkisofs -V "Label" -o image.iso source_dir/
查找目录:
ls -d */
统计:
wc -l (行数)-d(单词)-c (字符)
删除带空格的文件
grep "test" file* -lZ | xargs -0 rm
rev逆序
rev filename 或者stdin。
wget复制整个网站镜像:包含网站中的网站
wget --mirror url 或者wget -l -r url指定深度
查看centos版本
uname -a
cat /etc/redhat-release
tar命令
tar xvf filename.tar -C dir解压缩到dir
tar rvf filename.tar 增加一个文件
tar tf filename.tar 查看文件里面有什么。加vv查看详细。
备份系统快照rsync
rsync -av sourceDir targetDir 支持远程 例如rsync -av dir1 user@url:dir2
查看曾经登录用户
last
lastb 查看哪些用户被拒绝登录过
持续监视某个命令
watch cmd
显示平均负载
uptime :1分钟 5分钟 15分钟平均负载值