linux shell特性简单介绍

来源:岁月联盟 编辑:exp 时间:2012-06-02
 shell的特性1、 解释用户输入的命令,并将结果返回给用户2、 shell是用户与系统之间的接口程序Tip: 类似于 windows下的批处理的command.com一、查看linux支持的shell /etc/shells 文件保存shell的种类echo $SHELL 用来查看当前使用的shell类型可以进入到其他shell中进行操作,例如 /bin/csh 就可以进入csh进行操作和控制二、特性  www.2cto.com  1、支持快捷键,来查看历史命令2、支持自动补全功能,3、具有帮助功能, help 就可以查看bash shell具有的内置的命令 三 存取权限与安全1、 文件、目录的权限 - --- --- ---ls -l 命令的第一列的信息内容 drwxr-xr-x 2 root root 4096 Jun 2 02:57 .drwxr-xr-x 4 volcanol volcanol 4096 Jun 2 02:43 ..-rw-r--r-- 1 root root 113 Jun 2 03:13 hello.c-rwxr-xr-x 1 root root 4683 Jun 2 02:46 hello.exe第一列信息解读拥有者权限 拥有者组权限 其他组权限- rwx r-x r-x项目的类型 读写执行 读执行 读执行项目类型: 文件 -目录 d块设备 b连接文件 -命名管道文件 psocket文件 s读: 可读写: 可写执行: 可执行文件第二列的数字 表示文件的硬连接数目第三列 用户第四列 用户组第五列 文件大小第六列 7列、8列 文件最后修改的时间第9列 文件名
 2、改变文件的权限chmod 改变用户ls中第一列的权限属性, 可以有rwx, 以及s和t 文件t表示只有拥有者才能删除文件,如果是目录具有t属性,则用户组在目录里面具有相同的权限如果可执行文件,具有t属性,表示文件将在swap分区内执行chgrp 改变文件、目录所在组chown 改变文件所有者(可用来改变用户组)-R: 目录选项,递归的改变,包括所有的子目录 3、SUID、GUID、sticky bitSUID= set uid 的意思,S权限是为了是普通用户在执行一个文件的时候具有文件拥有者的权限。  www.2cto.com   SUID仅对二进制文件有效,其他文件不能设置。GUID: 如果SUID的S权限在用户组,就是GUID的属性Sticky Bit仅对目录有效,如果目录具有sticky bit 属性,则表示只有root和拥有则具有删除权限。4、 umask 当前用户创建文件或者目录时的默认权限,umask 0000 设置当前用户的umask值 umask 的配置文件在 /etc/profile下面的内容为root用家目录下 .bashrc 文件的内容# .bashrc# User specific aliases and functionsalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'# Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcfi 5、file查看文件类型6、which查找可执行文件7、 软连接、硬链接硬链接相当于在文件系统中对同一个硬盘地址有两个名字;软连接类似于windows下的快捷方式1、3 节 shell脚本【使用原因】:节约时间,可以实现自动化配置,例如自动挂载分区的shell配置文件功能强大【基本元素】:第一行: #!/bin/bash【注释】:以#表示注释的开头配置文件中有两种注释: # 和 ;【第一个实例】vi hello.sh[root@localhost ~]# cat hello.sh#!/bin/bash  www.2cto.com  #this is a demo shell scriptprintchar="hello world!"echo $printchar编辑完,并修改执行权限后就可以执行这个脚本
 1、4 shell特性【别名】alias 用于为命令设置别名alias 可以用来查看配置的别名[root@localhost ~]# aliasalias cp='cp -i' # cp 其实是cp -i 命令alias l.='ls -d .* --color=tty'alias ll='ls -l --color=tty'alias ls='ls --color=tty'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 设置别名方法:alias 别名='原来的命令'例如: alias ll='ls -l --color=tty'当前用户的配置文件在 $HOME/.bashrc 文件中定义别名【命令替换】用 `` 号将命令引起来可以改变命令中字符串的执行模式例如:[root@localhost ~]# cat myfileparmfindfile[root@localhost ~]# mkdir parm findfile[root@localhost ~]# ls `cat myfile` -alfindfile:total 16drwxr-xr-x 2 root root 4096 Jun 2 05:38 .drwxr-x--- 5 root root 4096 Jun 2 05:38 ..parm:total 16drwxr-xr-x 2 root root 4096 Jun 2 05:38 .drwxr-x--- 5 root root 4096 Jun 2 05:38 ..
 【后台运行】作用: 一个终端可以同时运行多个命令在命令的后面加上 & 符号就可以将命令移动到后台运行可以利用 jobs -l 命令查看在后台运行的变量【变量】变量在运行过程存储信息【管道】管道将一个命令的输出作为另外一个命令的输入【重定向】重定向用来改变命令运行过程中的输入和输出来源
 [root@localhost ~]# ls > ls.txt[root@localhost ~]# ls <ls.txtanaconda-ks.cfg findfile install.log ls.txt parmdesktop.ini hello.sh install.log.syslog myfile sharedir【模式匹配】  www.2cto.com  正则表达式例如: ls *.txt[root@localhost ~]# ls *.txtls.txt【特殊字符】双引号: 用来使单引号:反引号:分号:允许一个行运行多个命令&:括号:创建成组的命令大括号:创建命令快空格、制表符、换行符:当做空白   作者 volcanol