示例
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 中执行
网络
ifconfig eth0 #显示一个以太网卡的配置ifup eth0 #启用一个 'eth0' 网络设备ifdown eth0 #禁用一个 'eth0' 网络设备ifconfig eth0 192.168.1.1 netmask 255.255.255.0 #控制IP地址ifconfig eth0 promisc #设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)dhclient eth0 #以dhcp模式启用 'eth0'route -n #查看路由表route add -net 0/0 gw IP_Gateway #配置默认网关route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1#配置静态路由到达网络'192.168.0.0/16'route del 0/0 gw IP_gateway #删除静态路由hostname #查看机器名host www.example.com #把一个主机名解析到一个网际地址或把一个网际地址解析到一个主机名。nslookup www.example.com #用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。ip link show #查看网卡信息mii-tool #用于查看、管理介质的网络接口的状态ethtool #用于查询和设置网卡配置netstat -tupl #用于显示TCP/UDP的状态信息tcpdump tcp port 80 #显示所有http协议的流量
文本处理
grep Aug /var/log/messages #在文件 '/var/log/messages'中查找关键词"Aug"grep ^Aug /var/log/messages #在文件 '/var/log/messages'中查找以"Aug"开始的词汇sed 's/stringa1/stringa2/g' example.txt #将example.txt文件中的 "string1" 替换成 "string2"sed '/^$/d' example.txt #从example.txt文件中删除所有空白行sed '/ *#/d; /^$/d' example.txt #从example.txt文件中删除所有注释和空白行echo 'esempio' | tr '[:lower:]' '[:upper:]' #合并上下单元格内容sed -e '1d' result.txt #从文件example.txt 中排除第一行sed -n '/stringa1/p' #查看只包含词汇 "string1"的行sed -e 's/ *$//' example.txt #删除每一行最后的空白字符sed -e 's/stringa1//g' example.txt #从文档中只删除词汇 "string1" 并保留剩余全部sed -n '1,5p;5q' example.txt #查看从第一行到第5行内容sed -n '5p;5q' example.txt #查看第5行sed -e 's/00*/0/g' example.txt #用单个零替换多个零
查看文件内容
cat file1 #从第一个字节开始正向查看文件的内容tac file1 #从最后一行开始反向查看一个文件的内容more file1 #查看一个长文件的内容less file1 #类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作head -2 file1 #查看一个文件的前两行tail -2 file1 #查看一个文件的最后两行tail -f /var/log/messages #实时查看被添加到一个文件中的内容
文件权限
ls -lh #显示权限chmod
文件搜索
find -name file1 #搜索文件find -user user1 #搜索属于用户‘user1’的文件和目录locate \*.ps #寻找以'.ps'结尾的文件 先运行'updatedb'命令whereis halt #显示一个二进制文件、源码或man的位置which halt #显示一个二进制文件或可执行文件的完整路径
文件和目录
cd #切换目录pwd #显示当前路径ls -a #显示隐藏文件mkdir dir1 #创建目录rmdir dir1 #删除目录rm -f file1 #文件rm -rf dir1 #删除目录和其内容mv dir1 new_dir1 #重命名/移动 一个目录cp file1 file2 #复制一个文件ln -s file1 lnk1 #创建一个指向文件或目录的软连接ln file1 lnk1 #创建一个指向文件或目录的物理连接touch -t 0712250000 file1 #修改一个文件或目录的时间戳 YYMMDDhhmm
系统时间
cal 2020 #显示2020年的日历表date 041217002007.00 #设置日期和时间 月日时分年.秒clock -w #将时间修改保存到 BIOS
关机
shutdown -h nowshutdown -h hours:minutes & #按预定时间关闭系统rebootlogout
RPM包
rpm -ivh package.rpm #安装一个rpm包
YUM
yum install package_name #现在并安装一个rpm包yum localinstall package_name.rpm #安装一个rpm包,使用本地软件仓库解决依赖关系yum update package_name.rpm #更新当前系统中所有安装的rpm包yum update package_name #更新一个rpm包yum remove package_name #删除一个rpm包yum list #列出当前系统中安装的所有包yum search package_name #在rpm仓库中搜寻软件包yum clean packages #清理rpm缓存,删除下载的包yum clean headers #删除所有头文件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:显示系统中已存在的环境变量,以及在定义的环境中执行指令
