灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2394回复:0

linux shell特性简单介绍

楼主#
更多 发布于:2012-08-27 15:10

shell的特性

1、 解释用户输入的命令,并将结果返回给用户

2、 shell是用户与系统之间的接口程序

Tip: 类似于 windows下的批处理的command.com

一、查看linux支持的shell /etc/shells 文件保存shell的种类

echo $SHELL 用来查看当前使用的shell类型

可以进入到其他shell中进行操作,例如 /bin/csh 就可以进入csh进行操作和控制

二、特性  www.atcpu.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

连接文件 -

命名管道文件 p

socket文件 s

读: 可读

写: 可写

执行: 可执行文件

第二列的数字 表示文件的硬连接数目

第三列 用户

第四列 用户组

第五列 文件大小

第六列 7列、8列 文件最后修改的时间

第9列 文件名
  

2、改变文件的权限

chmod 改变用户ls中第一列的权限属性, 可以有rwx, 以及s和t 文件

t表示只有拥有者才能删除文件,如果是目录具有t属性,则用户组在目录里面具有相同的权限

如果可执行文件,具有t属性,表示文件将在swap分区内执行

chgrp 改变文件、目录所在组

chown 改变文件所有者(可用来改变用户组)

-R: 目录选项,递归的改变,包括所有的子目录



3、SUID、GUID、sticky bit

SUID= set uid 的意思,S权限是为了是普通用户在执行一个文件的时候具有文件

拥有者的权限。  www.atcpu.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 functions

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

# Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi



5、file查看文件类型

6、which查找可执行文件

7、 软连接、硬链接

硬链接相当于在文件系统中对同一个硬盘地址有两个名字;

软连接类似于windows下的快捷方式

1、3 节 shell脚本

【使用原因】:

节约时间,可以实现自动化配置,例如自动挂载分区的shell配置文件

功能强大

【基本元素】:

第一行: #!/bin/bash

【注释】:

以#表示注释的开头

配置文件中有两种注释: # 和 ;

【第一个实例】

vi hello.sh

[root@localhost ~]# cat hello.sh

#!/bin/bash  www.atcpu.com

#this is a demo shell script

printchar="hello world!"

echo $printchar

编辑完,并修改执行权限后就可以执行这个脚本
  

1、4 shell特性

【别名】

alias 用于为命令设置别名

alias 可以用来查看配置的别名

[root@localhost ~]# alias

alias 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 myfile

parm

findfile

[root@localhost ~]# mkdir parm findfile

[root@localhost ~]# ls `cat myfile` -al

findfile:

total 16

drwxr-xr-x 2 root root 4096 Jun 2 05:38 .

drwxr-x--- 5 root root 4096 Jun 2 05:38 ..

parm:

total 16

drwxr-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.txt

anaconda-ks.cfg findfile install.log ls.txt parm

desktop.ini hello.sh install.log.syslog myfile sharedir

【模式匹配】  

正则表达式

例如: ls *.txt

[root@localhost ~]# ls *.txt

ls.txt

【特殊字符】

双引号: 用来使

单引号:

反引号:

分号:允许一个行运行多个命令

;:

括号:创建成组的命令

大括号:创建命令快

空格、制表符、换行符:当做空白


喜欢0 评分0
游客

返回顶部