示例

workdir=$(cd $(dirname $0); pwd)

1、取当前运行脚本的所在路径: $0
2、取当前脚本所在路径的父目录: dirname “$0”
3、取返回的父目录的值: $(dirname “$0”)
4、cd到返回的父目录: cd “$(dirname “$0”)”
5、输出地址: cd “$(dirname “$0”)”,pwd
6、取输出的地址,并赋值给BIN_FOLDER: BIN_FOLDER = $(cd “$(dirname “$0”)”,pwd)

echo “ command >> base.log 2>&1 “ > file

1、>,表示输出重定向。可以让标准输出重定向到文件
2、标准输入、标准输出、标准错误输出的文件描述符分别为0、1、2
&1表示标准输出的引用,所以 2>&1 是指把标准错误输出重定向到标准输出的引用

source filename

source filename 或 . filename

source 命令也称为 点命令,即一个点符号(.)。是 bash 的内部命令
使 Shell 读入指定的 Shell 程序文件并依次执行文件中的所有语句,并使之立即生效

sh filenama 是重新建立一个子 shell,在子 shell 中执行脚本,子 shell 继承父 shell 的环境变量,但子 shell 中新建的、修改的不会被带回父 shell,除非使用 export
source filename 读取脚本中的语句一次在当前 shell 中执行

网络

  1. ifconfig eth0 #显示一个以太网卡的配置
  2. ifup eth0 #启用一个 'eth0' 网络设备
  3. ifdown eth0 #禁用一个 'eth0' 网络设备
  4. ifconfig eth0 192.168.1.1 netmask 255.255.255.0 #控制IP地址
  5. ifconfig eth0 promisc #设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)
  6. dhclient eth0 #以dhcp模式启用 'eth0'
  7. route -n #查看路由表
  8. route add -net 0/0 gw IP_Gateway #配置默认网关
  9. route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
  10. #配置静态路由到达网络'192.168.0.0/16'
  11. route del 0/0 gw IP_gateway #删除静态路由
  12. hostname #查看机器名
  13. host www.example.com #把一个主机名解析到一个网际地址或把一个网际地址解析到一个主机名。
  14. nslookup www.example.com #用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。
  15. ip link show #查看网卡信息
  16. mii-tool #用于查看、管理介质的网络接口的状态
  17. ethtool #用于查询和设置网卡配置
  18. netstat -tupl #用于显示TCP/UDP的状态信息
  19. tcpdump tcp port 80 #显示所有http协议的流量

文本处理

  1. grep Aug /var/log/messages #在文件 '/var/log/messages'中查找关键词"Aug"
  2. grep ^Aug /var/log/messages #在文件 '/var/log/messages'中查找以"Aug"开始的词汇
  3. sed 's/stringa1/stringa2/g' example.txt #将example.txt文件中的 "string1" 替换成 "string2"
  4. sed '/^$/d' example.txt #从example.txt文件中删除所有空白行
  5. sed '/ *#/d; /^$/d' example.txt #从example.txt文件中删除所有注释和空白行
  6. echo 'esempio' | tr '[:lower:]' '[:upper:]' #合并上下单元格内容
  7. sed -e '1d' result.txt #从文件example.txt 中排除第一行
  8. sed -n '/stringa1/p' #查看只包含词汇 "string1"的行
  9. sed -e 's/ *$//' example.txt #删除每一行最后的空白字符
  10. sed -e 's/stringa1//g' example.txt #从文档中只删除词汇 "string1" 并保留剩余全部
  11. sed -n '1,5p;5q' example.txt #查看从第一行到第5行内容
  12. sed -n '5p;5q' example.txt #查看第5行
  13. sed -e 's/00*/0/g' example.txt #用单个零替换多个零

查看文件内容

  1. cat file1 #从第一个字节开始正向查看文件的内容
  2. tac file1 #从最后一行开始反向查看一个文件的内容
  3. more file1 #查看一个长文件的内容
  4. less file1 #类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
  5. head -2 file1 #查看一个文件的前两行
  6. tail -2 file1 #查看一个文件的最后两行
  7. tail -f /var/log/messages #实时查看被添加到一个文件中的内容

文件权限

  1. ls -lh #显示权限
  2. chmod

文件搜索

  1. find -name file1 #搜索文件
  2. find -user user1 #搜索属于用户‘user1’的文件和目录
  3. locate \*.ps #寻找以'.ps'结尾的文件 先运行'updatedb'命令
  4. whereis halt #显示一个二进制文件、源码或man的位置
  5. which halt #显示一个二进制文件或可执行文件的完整路径

文件和目录

  1. cd #切换目录
  2. pwd #显示当前路径
  3. ls -a #显示隐藏文件
  4. mkdir dir1 #创建目录
  5. rmdir dir1 #删除目录
  6. rm -f file1 #文件
  7. rm -rf dir1 #删除目录和其内容
  8. mv dir1 new_dir1 #重命名/移动 一个目录
  9. cp file1 file2 #复制一个文件
  10. ln -s file1 lnk1 #创建一个指向文件或目录的软连接
  11. ln file1 lnk1 #创建一个指向文件或目录的物理连接
  12. touch -t 0712250000 file1 #修改一个文件或目录的时间戳 YYMMDDhhmm

系统时间

  1. cal 2020 #显示2020年的日历表
  2. date 041217002007.00 #设置日期和时间 月日时分年.秒
  3. clock -w #将时间修改保存到 BIOS

关机

  1. shutdown -h now
  2. shutdown -h hours:minutes & #按预定时间关闭系统
  3. reboot
  4. logout

RPM包

  1. rpm -ivh package.rpm #安装一个rpm包

YUM

  1. yum install package_name #现在并安装一个rpm包
  2. yum localinstall package_name.rpm #安装一个rpm包,使用本地软件仓库解决依赖关系
  3. yum update package_name.rpm #更新当前系统中所有安装的rpm包
  4. yum update package_name #更新一个rpm包
  5. yum remove package_name #删除一个rpm包
  6. yum list #列出当前系统中安装的所有包
  7. yum search package_name #在rpm仓库中搜寻软件包
  8. yum clean packages #清理rpm缓存,删除下载的包
  9. yum clean headers #删除所有头文件
  10. yum clean all #删除所有缓存的包和头文件
  • 运行sh文件
    • 先给文件添加x权限,chmod u+x fileName.sh
    • 然后运行,./fileName.sh 或 sh fileName.sh
    • nohup command &指令,让程序变成后台运行
  • su:切换用户
  • ps:当前系统的进程状态
  • kill:用于删除执行中的程序或工作
    • kill可将指定的信息送至程序,预设的信息为SIGTERM(15),可将指定程序终止
    • 若仍无法终止该程序,可使用SIGHILL(9)信息尝试强制删除程序
    • 程序或工作的编号可使用ps或jobs指令查看
  • env:显示系统中已存在的环境变量,以及在定义的环境中执行指令