linux_shell_1_shell 特性简单介绍

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

【特殊字符】
双引号: 用来使
单引号:
反引号:
分号:允许一个行运行多个命令
&:
括号:创建成组的命令
大括号:创建命令快
空格、制表符、换行符:当做空白



原文地址:https://www.cnblogs.com/volcanol/p/2531332.html