linux shell 基础

一、shell基础:

  Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。我们遵守shell的语法编写脚本并传递给shell,shell帮我们解释成系统内核能识别的内容,内核再控制计算机硬件去执行这些脚本。
  实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
 

二、创建并执行shell脚本:

# 颜色打印输出

echo -e "\033[31m hello,world \033[0m"

执行脚本的方式:

1、bash解释执行:

bash hello.sh

2、脚本添加执行权限:

chmod 755 hello.sh  # 加上执行权限
source hello.sh     # 执行程序

命令的执行顺序:

1、命令路径>>>2、别名>>>3、bash路径下的命令>>>4、环境变量对应的命令

三、查看历史命令:

[root@iz2zecvcubpx381ej4viivz ~]# history
    1  ls
    2  who
    3  user
    4  users

1、清除历史命令:

[root@iz2zecvcubpx381ej4viivz ~]# history -c   # 清除历史命令
[root@iz2zecvcubpx381ej4viivz ~]# history
    1  history

2、保存命令到文件,默认保存在当前用户家目录的.bash_history

history -w        # 保存到默认文件
history -w 1.txt  # 保存到自定义文件

3、其他用法:

!!      # 运行上一次执行的命令
! num   # 执行序号对应的命令
! str   # 执行最近一次以str开头的命令

 四、命令别名:

# 打印设置的别名
[root@iz2zecvcubpx381ej4viivz ~]# alias   alias cp='cp -i'   alias egrep='egrep --color=auto'   alias fgrep='fgrep --color=auto'   alias grep='grep --color=auto'   alias l.='ls -d .* --color=auto'   alias ll='ls -l --color=auto'
# 设置别名的规则
alias new_name='old_name'

配置别名系统生效:修改/etc/bashrc

配置别名当前账号生效:当前用户家目录修改.bashrc文件

五、输出重定向:

普通重定向:
  命令 > 文件 # 覆盖的形式   命令 >> 文件 # 追加的形式
错误重定向:
  命令 2> 文件 # 覆盖的形式
  命令 2>> 文件 # 追加的形式
正确错误都输出:
  命令 $> 文件

 六、多命令执行规则和grep命令:

ls;ls   # ;号连接多个命令,顺序执行,互不影响
ls&&ls # &&连接两个命令,前面执行成功,后面才会执行,换言之,前面执行失败,后面将不会执行
ls||ls # ||连接两个命令,前面的执行成功,后面的不会执行,换言之,只有前面的执行失败,后面的才会执行

1、grep命令及相关参数:

ls | grep 'ga'           # 正常匹配
ls | grep -i 'Ga' # -i 忽略大小写
ls | grep -n 'ga' # -n 输出行号
ls | grep -E '[g,a]' # -E 可接正则表达式
ls | grep -v 'ga' # -v 反选
ls | grep -e 'g' -e 'a' # 使用多个匹配规则

2、stat命令查看文件或是目录的创建、修改和访问时间:

 stat test2.txt

   File: ‘test2.txt’
  Size: 0 Blocks: 0 IO Block: 4096 regular empty file
  Device: fd01h/64769d Inode: 262182 Links: 1
  Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
  Access: 2017-08-08 12:34:34.908631227 +0800                   # 访问时间
  Modify: 2017-08-08 12:34:34.908631227 +0800                   # 修改时间
  Change: 2017-08-08 12:34:34.908631227 +0800                   # 创建时间
  Birth: -

 七、通配符和特殊字符:

1、常用的通配符及其含义:

?       # 匹配任意一个字符
* # 匹配0到无数个字符
[] # 匹配中括号里的任意一个字符
[0-9] # 匹配范围内的一个字符
[^] # 匹配非中括号的内容

2、常见的特殊字符及其含义:

''           # 单引号,里面的内容不会有特殊的含义
"" # 双引号,里面的内容会有特殊的含义
$ # 调用变量
$() # 调用系统命令
# # 注释
\ # 转义

 

posted @ 2017-08-07 15:54  还是原来那个我  阅读(133)  评论(0编辑  收藏  举报