shell总结

pwd  查看当前路径


cd ..    表示后一级目录级


cd .   表示当前目录


cd ../..   后退两级


cd  表示进入当前家目录


date 返回当前的一个具体时间    -s  修改时间


cal  以日历的形式返回当前得以个时间


cal month year  查看某年某月的日历


su 切换用户    后面加—再加用户不仅切换用户而且切换家路径,不加—不切换家路径   


su  直接回车切换到超级用户


etc 放置配置文件


dev 放置硬件信息


var 放置一些日志文件等易变动的文件


rm  删除文件


rm file-name


rm filename1 filename2 ...


rm -dir dirname  删除文件夹


rm -dir dirname1 dirname2 ...


ls -l显示当前目录下的详细文件信息


clear   清屏


ls -a 显示所有文件信息,包括隐藏文件(以点开头的文件)


ls -R 递归显示当前目录下的文件信息


ls -F  显示当前目录下的文件类型


touch  创建一个新文件或者刷新一个文件的最后修改时间


touch filename


touch filename1 filename2 filename3 ...


chmod  修改权限


      拥有者 u  同组人 g   其他人 o   所有人 a


      可读 4  可写 2  可执行 1


chmod g+w filename  修改权限,使同组人具有写权限,同时也可以使用减号


1、  set命令
当没有参数的时候,列出系统中所有的自定义变量值;当有参数的时候,重置基本参数如$1、$2等。如set `date` 将date命令的输出当作输入参数;
 
2、let命令
      执行算术运算。功能如i=j+1,shell语法为:
      let “i=$j+1”,等同于 ‘expr’。 后者只能作用于整数,如 i=`expr $i+1`; 如果使用非整数,退出状态不为0
 
3、expr   
      expr也有模式匹配功能。
   可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
        $value=accounts.doc
        $expr $value : '.*'
   输出:12
   在expr中可以使用字符串匹配操作,这里使用模式. d o c抽取文件附属名。
       $expr $value : '\(.*\).doc' 在圆括号前加转义符号是表示圆括号是用于提取功能的。
   输出:accounts
 
4、shift命令
       将参数表向左移动一个位置,$2变成$1,...,依次类推。
 
5、shell中可以嵌套命令,使用\`来保护内层命令,如`cd \`pwd\``。
 
6、设置IFS为换行符:IFS=’
’(还真得换行)
 
7、两个特殊操作
     命令1 && 命令2 :只有在命令1执行成功时才执行命令2;
     命令1 || 命令2 :命令1失败才执行命令2;
 
8、变量赋值
     “”引用的字符串需要shell解析其中的``、$、\等特殊字符,而’’引用的字符串则被看作完全的
   字符串,echo ‘`pwd`’将输出`pwd`;而echo “`pwd`”将输出当前目录;
  
变量
含义
$var
Var的值,若无定义则无值
${var}
同上,用于同$varx等类型变量区分
${var-thing}
Var有定义时,取值$var;无定义时取值thing,而$var不变
${var=thing}
Var有定义时,取值$var;无定义时取值thing,$var值设为thing
${var?message}
有定义时取值$var;否则打印message并退出shell,若message为空串,打印var:parameter not set
${var+thing}
有定义时取值thing;否则无值
 
9、shell内部变量
     
变量
含义
$#
参数个数
$*
所有参数
$@
同上,稍有区别
$-
Shell的选择项
$?
上次执行命令返回值
$$
Shell的进程标识符
$!
用&启动的最后一个命令的进程标识符
$HOME
cd命令的缺省参数
$IFS
参数分割词的字符表
$MAIL
信件文件,当其改变时给出信息you have mail
$PATH
搜索命令的目录表
$PS1
提示符串,缺省为$
$PS2
后继命令行提示符,缺省为>
有关$*和$@得归纳:
 $*和$@扩展为参数,并被重复扫描;参数得空格将字符串分成多个参数;
 “$*”表示shell文件的所有参数及其空格连在一起作为单个词处理;
“$@”与shell文件接收的参数等价,参数中的空格被忽略,其结果是等同于原来参数的一个单词列表。
 
10、 shell模式匹配规则
*      匹配任意字符串,包括空字符串
?      匹配任意单字符串
[ABC]  匹配ABC中任意字符
“…”   完全与…匹配,引号保护特殊字符,也可以写成’…’
\C     匹配C
 
11、 case语句
case word in
  模式1)  命令;;
  模式2)  命令;;
  …
  *)       命令[;;]
esac
只能匹配一个模式
 
12、 if 语句
if 命令
then
else
fi
其中换行很重要,then、else和fi仅在换行或分号之后被识别,else部分可选。可以利用case语句替代if和test测试语句,对于test命令不是内部命令的情况下,case语句执行的要快;
 
13、循环
1)for i [in 文件(参数)列表]
do
  循环体
done
        如果i后面没有in部分,则隐含地表示对shell文件的全部参数,即$*
 
      2) While 命令
            do
                  循环体,只要命令返回状态为真便继续进行
  done
 
3)until 命令
do
   循环体,只要命令返回状态为假便继续执行
Done
 
例如:
While sleep 60
do

Done
每隔60秒执行一次循环中的操作;
 
   另外,where处的控制命令可以是true、false、或者是:,冒号命令是一个shell内部命令,仅仅计
   算参数值,然后返回“真”,但是它不需要调用系统中的命令,所以效率比true命令高;
 
  4)break命令:退出循环,取自C语言。
 
14、点号命令:
   将文件作为标准输入,从中读入一行一行的命令在当前shell中执行,不要求文件具有可执行权限;
 
15、 文件命令习惯,后面加上当前进程号码$$为好
 
16、标准输入命令read
$read greeting
Hello,world
           $echo $greeting
                 Hello,world
 
17、here document 输入
         <   从本地输入,直至出现字符串s为止,但是要解析输入中的特殊字符,``,$和\。
    <<’s’ 同上,不进行替换。

    <<\s 同上。

18.感悟:与C语言编程格式不同,但大体思路相通

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值