linux-shell

一,shell分类

1,图形用户界面shell:windows explorer,x windows manager等。

2,命令行shell:Bourne Shell(sh),C Shell(csh),Korn Shell(ksh).

 

二,shell是什么

shell是一种命令解析器,也是一个程序,一种命令语言和程序设计语言。

显示系统支持的shell

[root@zqmlinux ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh

显示系统运行的shell

[root@zqmlinux ~]# echo $SHELL
/bin/bash

进入子shell

[root@zqmlinux ~]# /bin/ksh
#

推出子shell

# exit
[root@zqmlinux ~]#

-----------------------------------------------

[root@zqmlinux ~]# ls -lh
总计 68K
-rw------- 1 root root 1.1K 03-14 01:01 anaconda-ks.cfg
drwxr-xr-x 2 root root 4.0K 03-13 17:56 Desktop

第一列drwxr-xr-x:文件类型(第一位,d:目录;-:普通文件;l:连接文件,相当于windows下的快捷方式;b:块文件;c:字符文件;p:命令管道文件;s:socket文件),属主,同组,其他用户对文件的访问权限

第二列2:文件的硬链接数

第三列root:文件属主

第四列root:文件属主所属组

第五六列03-14 01:01:文件上次修改时间

第七列anaconda-ks.cfg:文件名

 

三,访问权限

chmod [who] operator [permission] filename

who(u,g,o,a)

operator(+,-,=)

permission(r,w,x,s,t)

 

如:chmod u=rwx,g+w,o+r

r - 4

w - 2

x - 1

 

chown [-R] owner myfile  (-R 目录及子目录的拥有者都将改变)

chown owner.group myfile

chown .group myfile

chgrp [-R] group myfile

 

四,shell脚本

1,shell脚本第一行

#!/bin/bash

2,注释:#

3,例子:

$ cat hello.sh
#!/bin/bash
##test sh ##
printchar="hello world"
echo $printchar

4,shell的特性

a,别名;b,管道;c,命令替换;d,重定向;e,后台处理;f,模式匹配;g,变量;h,特殊字符

 

 5,alias - 别名

a,设置别名:$ alias ll='ls -alh'

b,查看别名:

$ alias
alias cdapps='cd /data/webapps/fabu.duowan.com/'
alias ll='ls -alh'
alias ls='ls --color=auto'

c,别名设置,less $HOME/.bashrc

 

6,命令替换,使用反引号

$ ls `cat t1.dir` -alh
total 8.0K
drwxr-xr-x 2 zqm zqm 4.0K 2011-04-03 10:45 .
drwxr-xr-x 4 zqm zqm 4.0K 2011-04-03 17:23 ..
-rw-r--r-- 1 zqm zqm    0 2011-04-03 10:45 t1.txt

 

7,后台,使用&

$ nohup tar -czf t.tar.gz t1 &

 

jobs -l   查看后台任务

 

8,变量

定义:变量名=值

引用:$变量名

 

9,管道:一个命令的输出做为宁一个命令的输入

如:ls|sort

 

10,重定向:改变程序的输入来源或输出地点

$ vi test.txt

hi
fine
think you
ok
tha is all right

 

$ sort < test.txt
fine
hi
ok
tha is all right
think you

 

$ sort < test.txt > test.sort.txt

 

$ cat test.sort.txt
fine
hi
ok
tha is all right
think you

 

11,模式匹配,主要是正值表达式

 

12,特殊字符

 

 

 

 

 五,shell变量

1,本地变量:在shell的生命周期内有效。readonly 变量名声明变量只读。查看只读变量:readonly。

2,环境变量:用于所用用户进程(也称子进程)。登陆进程称为父进程,shell中运行的用户进程称为子进程。用户环境变量编辑:$HOME/.bash_profile;  所用用户:/etc/profile

3,变量替换

4,变量清除:unset 变量名

5,位置变量:

6,标准变量

7,特殊变量:

     参数个数:$#

    脚本全部参数:$*

    进程id:$$

    前一个命令运行后状态:$?

8,影响变量的命令

shift:移动变量位置。

 9,let 的作用

zqm@localhost:~/test$ zqmvar=65
zqm@localhost:~/test$ echo $zqmvar
65
zqm@localhost:~/test$ zqmvar+=5
zqm@localhost:~/test$ echo $zqmvar
655
zqm@localhost:~/test$ let zqmvar+=5
zqm@localhost:~/test$ echo $zqmvar
660

你可能感兴趣的:(C++,c,windows,linux,C#)