linux 操作

转载 2016年05月30日 15:16:00
比较与测试
程序中的流程控制是由比较语句和测试语句处理的。Bash同样具备多种与Unix系统级特性相
兼容的执行测试的方法。我们可以用if、if else以及逻辑运算符进行测试,用比较运算符来比

较数据项。除此之外,还有一个test命令也可以用于测试。这


if和else语句可以进行嵌套。if的条件判断部分可能会变得很长,
但可以用逻辑运算符将它变得简洁一些:
 [ condition ] && action; # 如果condition为真,则执行action;
 [ condition ] || action; # 如果condition为假,则执行action。
&&是逻辑与运算符,||是逻辑或运算符。编写Bash脚本时,这是一
个很有用的技巧。现在来了解一下条件和比较操作。


算术比较
条件通常被放置在封闭的中括号内。一定要注意在[或]与操作数之间有一个空格。如果
忘记了这个空格,脚本就会报错。例如:
[$var -eq 0 ] or [ $var -eq 0]
对变量或值进行算术条件判断:
[ $var -eq 0 ] #当 $var 等于 0 时,返回真
[ $var -ne 0 ] #当 $var 为非 0 时,返回真
其他重要的操作符如下所示。
 -gt:大于。
 -lt:小于。
 -ge:大于或等于。
 -le:小于或等于。
可以按照下面的方法结合多个条件进行测试:
[ $var1 -ne 0 -a $var2 -gt 2 ] #使用逻辑与-a
[ $var1 -ne 0 -o var2 -gt 2 ] #逻辑或 -o
 文件系统相关测试
我们可以使用不同的条件标志测试不同的文件系统相关的属性。
 [ -f $file_var ]:如果给定的变量包含正常的文件路径或文件名,则返回真。
 [ -x $var ]:如果给定的变量包含的文件可执行,则返回真。
 [ -d $var ]:如果给定的变量包含的是目录,则返回真。
 [ -e $var ]:如果给定的变量包含的文件存在,则返回真。
 [ -c $var ]:如果给定的变量包含的是一个字符设备文件的路径,则返回真。
 [ -b $var ]:如果给定的变量包含的是一个块设备文件的路径,则返回真。
 [ -w $var ]:如果给定的变量包含的文件可写,则返回真。
 [ -r $var ]:如果给定的变量包含的文件可读,则返回真。
 [ -L $var ]:如果给定的变量包含的是一个符号链接,则返回真。
使用方法如下:
fpath="/etc/passwd"
if [ -e $fpath ]; then
echo File exists;
else
echo Does not exist;

fi

字符串比较
使用字符串比较时,最好用双中括号,因为有时候采用单个中括号会产生错误,所以最
好避开它们。
可以用下面的方法检查两个字符串,看看它们是否相同。
 [[ $str1 = $str2 ]]:当str1等于str2时,返回真。也就是说,str1和str2包含
的文本是一模一样的。
 [[ $str1 == $str2 ]]:这是检查字符串是否相等的另一种写法。
也可以检查两个字符串是否不同。
 [[ $str1 != $str2 ]]:如果str1和str2不相同,则返回真。
我们还可以检查字符串的字母序情况,具体如下所示。
 [[ $str1 > $str2 ]]:如果str1的字母序比str2大,则返回真。
 [[ $str1 < $str2 ]]:如果str1的字母序比str2小,则返回真。
 [[ -z $str1 ]]:如果str1包含的是空字符串,则返回真。
 [[ -n $str1 ]]:如果str1包含的是非空字符串,则返回真。

使用逻辑运算符 && 和 || 能够很容易地将多个条件组合起来:
if [[ -n $str1 ]] && [[ -z $str2 ]] ;
then
commands;
fi
例如:
str1="Not empty "
str2=""
if [[ -n $str1 ]] && [[ -z $str2 ]];
then
echo str1 is nonempty and str2 is empty string.
fi
输出如下:
str1 is nonempty and str2 is empty string.

Linux 基础操作汇总

****************基本操作***************** 关机  shutdown -h now    root用户                init 0    ...
  • u014057054
  • u014057054
  • 2016年02月26日 10:45
  • 2076

linux查看用户操作历史

一、查看及管理当前登录用户 1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命...
  • alibert
  • alibert
  • 2015年10月01日 12:35
  • 1408

linux记录系统中常用重要的log记录和用户的所有操作精确命令记录

常见的几个登录文件有: /var/log/secure:记录登入系统存取数据的文件,例如 pop3, ssh, telnet, ftp 等都会被记录; /var/log/wtmp:记录登入者的讯息数据...
  • langb2014
  • langb2014
  • 2015年08月22日 17:29
  • 20494

Linux 记录所有用户登录和操作的详细日志

每次用户登录到退出都会产生以用户名、登录ip地址、操作时间为文件名的文件,文件里面包含本次用户的所有操作记录。...
  • tao19910610
  • tao19910610
  • 2016年11月22日 13:47
  • 3125

linux基本操作命令

1.模式切换 由字符型到图型:#startx或#init5由图型到字符型:#logout或#init3注销:#logout或exit或ctrl+d关机:#poweroff或init0或shutd...
  • zl_best
  • zl_best
  • 2016年12月07日 13:52
  • 1357

Linux的原子操作与同步机制

Linux的原子操作与同步机制   并发问题 现代操作系统支持多任务的并发,并发在提高计算资源利用率的同时也带来了资源竞争的问题。例如C语言语句“count++;”在未经编译器优化时生成的汇编代...
  • zgrjkflmkyc
  • zgrjkflmkyc
  • 2014年12月01日 16:58
  • 1549

linux 服务器下的基本操作

1.SSH 上传: scp /path/file(这部分为本地的路径) user(远端目标用户名)@host(远端目标IP):/pathorfile(文件存储路径) 下载: scp user(远端用...
  • qq_24949727
  • qq_24949727
  • 2017年04月10日 10:23
  • 572

Linux内核的原子操作

1、基本概念 原子操作可以保证指令以原子的方式执行,执行过程不被打断。它通过把读取和修改变量的行为包含在一个单步中执行,从而防止了竞争的发生,保证操作结果总是一致的。 例如: int...
  • kobejayandy
  • kobejayandy
  • 2014年07月17日 00:21
  • 1737

Linux中常用操作命令

基本命令ls   显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir ...
  • xsj_blog
  • xsj_blog
  • 2016年08月07日 10:51
  • 1611

linux C —— 文件操作函数

chmodint chmod(const char *path, mode_t mode) 将文件read的文件权限变成所有者有读写权限,其他用户只有读的权限。这和shell指令中的chmod有相同...
  • theArcticOcean
  • theArcticOcean
  • 2016年11月22日 22:07
  • 1757
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 操作
举报原因:
原因补充:

(最多只允许输入30个字)