Linux备忘1
来源:互联网 发布:淘宝购物哪个返利网好 编辑:程序博客网 时间:2024/06/18 08:21
**重点内容**shell编程
1、shell中0 1的问题
[root@localhost sdnoIAAS]# echo $0-bash[root@localhost sdnoIAAS]# ./test.sh ./test.sh
比如./test.sh 3 4
这个时候,3就是
$?代表上一条命令的返回值,真为0,假为1
2、shell中 “和$() 是等效的
echo realpath $0
echo
3、realpath和dirname两者的区别
echo realpath $0
#打印的是(路径+名称)/usr/local/sdnoPackage/sdnoIAAS/test.sh
echo dirname $0
#打印出来是 . (当前路径,一个点)
获取当前shell的路径:
echo dirname $(realpath $0)
#打印出来是(纯路径)/usr/local/sdnoPackage/sdnoIAAS
4、&& 和 ||
顺带看看java中&和&&的区别:
&&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断
网站:http://blog.csdn.net/lishiyuzuji/article/details/8116516
5、-z -e
参考链接:http://bbs.csdn.net/topics/300125422
-z代表的是*该变量*是否有值。
[ -z STRING ] “STRING” 的长度为零则为真。(没有值则是true)
[ -e FILE ] 如果 *FILE(文件)*存在则为真
例:
FINAL_DIR="/opt/sdno-$(date +%Y%m%d)";[[ ! -z $1 ]] && FINAL_DIR=$1;
# local binding ip addressIPADDR=`for f in $(ip link |grep "mtu" | awk '{print $2}' | grep -v "lo"|grep -v "docker*"); do ifname=${f%%@*}; ifname=${ifname%%:}; addrmask=$(ip addr show dev ${ifname}|grep "inet "|awk '{print $2}'); [[ -n ${addrmask} ]] && echo ${addrmask%%/*}; done`;[[ -z $IPADDR ]] && IPADDR="127.0.0.1";[[ ! -z $2 ]] && IPADDR=$2;if [[ ${#IPADDR} -gt 15 ]]; then echo "You have multiple IP address, please choose which to use:"; select s in $IPADDR; do [[ -n $s ]] && IPADDR=$s && break; donefiexport IPADDR;
6、 [[和[
1…”[“是一条命令, 与test等价,大多数shell都支持
“[[“,是关键字,许多shell(如ash bsh)并不支持这种方式
2…[[]]结构比Bash版本的[]更通用。用[[ … ]]测试结构比用[ … ]更能防止脚本里的许多逻辑错误。比如说,&&,||,<和>操作符能在一个[[]]测试里通过,但在[]结构会发生错误。
3、字符串转换会用到[[]],一般的话用[]也可以
7 yum mysql客户端
yum search mysqlyum install mysql安装mysql客户端: yum install mysql安装mysql 服务器端: yum install mysql-server yum install mysql-devel如果yum install mysql有问题,那么先用rpm -e 删掉已有的安装包。注:mysql客户端的包名不一定包含mysql,也有可能是mariadb装完之后看包名[root@cgs-v5-e2e-12 local]# which mysql/usr/bin/mysql[root@cgs-v5-e2e-12 local]# rpm -qf /usr/bin/mysqlmariadb-5.5.56-2.el7.x86_64不同机器rpm -qf 不一样[root@localhost bin]# rpm -qf /usr/bin/mysqlcommunity-mysql-5.6.21-5.fc21.x86_64
8、关于rpm
rpm -qf `which 程序名` #返回软件包的全名 rpm -qif `which 程序名` #返回软件包的有关信息 rpm -qlf `which 程序名` #返回软件包的文件列表注意,这里不是引号,而是`,就是键盘左上角的那个键。也可以使用rpm -qilf,同时输出软件包信息和文件列表等同于 which mysql | xargs rpm -qfil 关于rpm详细用法见: http://man.linuxde.net/rpm
9、关于查找
which主要用来查找可直接执行的命令,可以查找别名。通过which (命令别名),查找到命令的位置
whereis比which的搜索范围大了一些,同时可以查找源文件和man文件。这两个命令适用于查找安装好的命令
locate的查找范围更大,可以查找任意类型文件。适合快速查找指定文件。
find最强大也最慢。适合查找前几个命令找不到的文件。
关于四种命令的详细用法见:
http://blog.csdn.net/l1902090/article/details/24887997
10、重定向
[[ -e $FINAL_DIR/zenap-msb-apigateway ]] && ( cd $FINAL_DIR/zenap-msb-apigateway; [[ -z $V ]] && ./shutdown.sh 2> /dev/null 1> /dev/null || ./shutdown.sh);-z $V 意思是执行脚本的时候如果给v加了一个变量,那么就会执行./shutdown.sh,把错误信息都输出到屏幕上。/shutdown.sh 2> /dev/null 1> /dev/null和./shutdown.sh的区别:前者是不输出任何东西,都放到空文件并抛弃,后者是把输出信息打印到屏幕上。另:0表示准备输入1表示标准输出2表示标准错误输出
docker ps | grep 容器名字docker exec -it 容器id /bin/shdocker restart 容器id
- Linux备忘1
- Linux备忘
- Linux备忘
- Linux 备忘
- Linux 备忘
- Linux备忘
- Linux备忘
- Linux备忘
- linux备忘
- Linux备忘
- Linux重装备忘
- Linux IPC备忘
- Linux知识备忘
- Linux知识备忘
- linux应用杂项,备忘
- Linux 命令备忘
- linux 常用命令备忘
- Linux shell 常用命令备忘
- 通过崩溃地址找出源代码的出错行(未实践)
- Object.create
- 使用CSS实现上下左右居中
- 链表的基本操作
- NYOJ 585 取石子(六)(尼姆博弈)
- Linux备忘1
- socket
- 幂等实现思路和细节
- 第5章 存储Node程序中的数据
- 第10章 Diffuse Shading
- thinkPHP5-渲染模板的方式
- POJ
- JavaSE-3
- MyBatis动态 SQL