shell的特性
1、 解释用户输入的命令,并将结果返回给用户
2、 shell是用户与系统之间的接口程序
Tip: 类似于 windows下的批处理的command.com
一、查看linux支持的shell /etc/shells 文件保存shell的种类
echo $SHELL 用来查看当前使用的shell类型
可以进入到其他shell中进行操作,例如 /bin/csh 就可以进入csh进行操作和控制
二、特性
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权限是为了是普通用户在执行一个文件的时候具有文件
拥有者的权限。
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
#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
【特殊字符】
双引号: 用来使
单引号:
反引号:
分号:允许一个行运行多个命令
&:
括号:创建成组的命令
大括号:创建命令快
空格、制表符、换行符:当做空白