shell 使用记录

1、使用圆括号之后进入子shell不会对当前shell中产生影响。

root#/opt/lxb/dir1#(cd /opt/lxb/dir2;pwd)

执行只有返回的是/opt/lxb/dir2的目录,但是当前shell仍然在dir1中。

2、linux下调整Tab键的缩进,般建议写在家目录下的 ~/.vimrc文件中,如果没有就自己touch个

写入  set tabstop=4,保存, 执行source ~/.vimrc使之生效。

3、if [ "x${test}" = "x" ]  ,shell中判断test是否为NULL,如果为Null则为真。

比较两个字符串是否相等的办法是: 
if [ "$test"x = "test"x ]; then

这里的关键有几点: 
1 使用单个等号 
2 注意到等号两边各有一个空格:这是unix shell的要求 
3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected 
二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 
整数比较 
-eq 等于,如:if [ "$a" -eq "$b" ] 
-ne 不等于,如:if [ "$a" -ne "$b" ] 
-gt 大于,如:if [ "$a" -gt "$b" ] 
-ge 大于等于,如:if [ "$a" -ge "$b" ] 
-lt 小于,如:if [ "$a" -lt "$b" ] 
-le 小于等于,如:if [ "$a" -le "$b" ] 
大于(需要双括号),如:(("$a" > "$b")) 
>= 大于等于(需要双括号),如:(("$a" >= "$b")) 
小数据比较可使用AWK 
字符串比较 
= 等于,如:if [ "$a" = "$b" ] 
== 等于,如:if [ "$a" == "$b" ],与=等价 
注意:==的功能在[[]]和[]中的行为是不同的,如下: 
1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true 
2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true 
3 [ $a == z* ] # File globbing 和word splitting将会发生 
4 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true 
一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是. 
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像. 
!= 不等于,如:if [ "$a" != "$b" ] 
这个操作符将在[[]]结构中使用模式匹配. 
大于,在ASCII字母顺序下.如: 
if [[ "$a" > "$b" ]] 
if [ "$a" \> "$b" ] 
注意:在[]结构中">"需要被转义. 
具体参考Example 26-11来查看这个操作符应用的例子. 
-z 字符串为"null".就是长度为0. 
-n 字符串不为"null"

注意: 
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z 
或者就是未用""引用的字符串本身,放到[]结构中。虽然一般情况下可 
以工作,但这是不安全的.习惯于使用""来测试字符串是一种好习惯.

时间: 2024-10-08 19:48:55

shell 使用记录的相关文章

Bash shell命令记录和CentOS的一些技巧

①CentOS的实用技巧: 一.按下ctrl+alt+F2可由图形界面切换至命令行(shell窗口),按下ctrl+alt+F1可由命令行切换至图形界面(前提是安装CentOS时软件选择项选择安装了图形界面,一般是GNOME) ②shell命令记录: 一.ifconfig命令是Linux中用于显示或配置网络设备的命令,英文全称是network interfaces configuring.配置网卡的IP地址语法例:ifconfig eth0 192.168.0.1 netmask 255.255

二十七、Linux下常用的shell命令记录

本文章记录我在linux系统下常用或有用的系统级命令,包括软硬件查看.修改命令,有CPU.内存.硬盘.网络.系统管理等命令.但本文不打算介绍生僻命令,也不介绍各个linux发行版下的特有命令,且以后会持续更新. 说明,我是在一个Centos 6.4 64位的虚拟机系统进行测试.本文介绍的命令都会在此Centos下运行验证(也有部分命令会在我的suse/ubuntu系统里测试的,会做特明说明),但运行结果就不再列出了. 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /pro

shell 脚本记录

shell脚本中执行另一个shell脚本 可以在一个shell脚本中执行另一个shell脚本(或非可执行文件,主要用于取得一些变量的值),方法是: . 文件名(包括路径) 或 变量=文件名(包括路径) . $变量 注意,圆点后面有个空格. 这样,在本shell脚本的后面部分就可以引用其他文件中声明的一些变量. linux手动添加开机启动的服务 执行下cat /etc/rc.local看看这个文件,不需要任何帮助手册和文档,看完这个文件后你就有更好的办法来添加一个开机启动的服务. #!/bin/s

shell 编程记录

Shell课程记录 作者:JCY QQ1501614847 第一.常用命令Shell课程记录 作者:JCY QQ1501614847 第一.常用命令 1.查看当前用户是否支持某条命令 #which [COMMAND...]   查看命令是否存在,如果存在会列出命令所在的位置.如果这条命令不存在,那么会列出所有的环境变量,告诉你在这么多目录中没有查找到该命令. 2.列出当前用户的环境变量 #echo $PATH 列出当前用户的所有的环境变量目录. 3.当前执行进程的名称 #echo $0 4.当前

Linux下常用的shell命令记录1

 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 这里的单位是MB cat /proc/meminfo #查看内存详细信息 磁盘相关 lsblk #查看硬盘和分区分布,显示很直观 df -h #查看各分区使用情况 cat /proc/partitions #查看硬盘和分区 mount | column -t #查看挂接的分区状态 网卡相关 lspc

shell脚本记录

1.查看某个环境变量 $echo $PATH 2.设置环境变量 export PATH="$PATH:/home/user/bin" 3.获得字符串长度 length=${#var} lg: $var=1234567890 $echo  ${#var} 4.识别当前的shell版本 echo  $SHRLL

Linux下常用的shell命令记录

 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 这里的单位是MB cat /proc/meminfo #查看内存详细信息 磁盘相关 lsblk #查看硬盘和分区分布,显示很直观 df -h #查看各分区使用情况 cat /proc/partitions #查看硬盘和分区 mount | column -t #查看挂接的分区状态 网卡相关 lspc

Linux Shell 相关记录

http://www.tutorialspoint.com/unix/unix-shell.htm Linux Shell 获取脚本的所在目录的绝对路径 basedir=$(cd $(dirname $0); pwd;) echo $basedir shell 执行错误马上退出,而不是继续执行 set -e

shell 学习记录一

1.一般用户的命令提示符是 $   root 的命令提示符是 # 2.在bash中每个命令之间都是通过 分号或者换行符来分割的例如 $ cmd1 ; cmd2 3.echo 每次调用后默认会添加换行符,后面的内容可以用 单引号,也可以用双引号,也可以不用引号.区别是 使用不带单引号的echo时 没法显示 ":"变量在单引号中也无效,变量一般加双引号 双引号中不能打印特殊符号,需要用转义符号 4.echo -e "\e[1;31m 这里是内容 [0m " 这表示显示彩

shell学习记录001-知识点储备

1.BASH(bourne again shell ) cmd1 ;cmd2等同于 cmd1 cmd2 2.echo music; 中的分号不被打印出,因为分号默认为命令定界符号 3.利用pgrep找出进程的环境变量 [[email protected] shell]$ pgrep compiz 4924 [[email protected] shell]$ cat /proc/4924/environ ORBIT_SOCKETDIR=/tmp/orbit-carltonHOSTNAME=oc3