Linux Shell

7、Shell基础

7.1 Shell概述

shell壳的意思,

  • 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。计算机内核只能识别01二进制,但是我们敲击的都是ASCII字符命令,Linux不能直接执行,shell通过ASCII码表翻译字符为二进制命令。
  • 还是一个功能想当强大的解释执行的脚本语言,在其中可以直接调用Linux系统命令。Shell的两种语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括csh和tcsh。Bash是Linux的标准,Unix主要使用C语法。

vim /etc/shells可以查看当前系统支持的shell。
若支持/bin/sh,可以输入sh命令,会发现提示符变了,命令也变了,当前shell是处于默认shell的子shell,输入exit可退回到父shell中。
一个操作界面中可以调用别的操作界面,类似windows中调用子的操作界面cmd。

7.2 脚本执行方式

echo [选项] [输出内容] //把指定内容输出到屏幕,若输出内容中有空格则需要加双引号
选项

  • -e 支持反斜线控制的字符转换,\n代表换行,\r代表回车键,\t代表制表符,\a代表警告音

第一个脚本vim hello.sh

#!/bin/bash   //这句话不是注释,而是表示下面是Linux的标准脚本
#The first bash

echo -e "hello bash"

脚本写完后不能直接运行,可以通过如下两种方式

  1. 赋予执行权限,再运行。chmod 755 hello.sh ./hello.sh
  2. 通过Bash调用执行脚本 bash hello.sh

7.3 Bash的基本功能

命令别名与快捷键
别名,人的小名,命令别名,是由于有些命令特别长,可以用别名来
alias //查看或者设置系统中生效的别名
alias ls=”ls –color=never” //设置别名

但是这种设置都是临时的,一旦重启就会丢失,要想永久启用,需要将其写入环境变量配置文件中vim ~/.bashrc,这个环境变量配置文件可以单独对每个用户配置
这个配置文件修改后,需要重新启动才能生效,如果需要立即生效,可以执行source 文件名

unalias ll //删除别名,这是临时删除,彻底删除需要在配置文件中删除

多个命令的生效顺序

  1. 第一顺位执行用绝对路径或相对路径执行的命令
  2. 第二顺位执行别名
  3. 第三顺位执行Bash的内部命令(Linux自带的命令)
  4. 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

常用快捷键
ctrl + c 强制终止
ctrl + l 清屏
ctrl + a 光标移动到命令行首
ctrl + e 光标移动到命令行尾
ctrl + u 从光标所在位置删除到行首
ctrl + z 把命令放入后台
ctrl + r 在历史命令中搜索

历史命令
history [选项] [历史命令保存文件]
选项:

  • -c 清空历史命令
  • -w 把缓存中的历史命令写入历史命令文件 ~/.bash_history,每个用户都有自己的

上下箭头调用以前的历史命令
!!重复执行上一条命令
!字符串,重复执行最后一条以该字符串开头的命令

输出重定向
1、标准输入输出

设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/stdout 1 标准输出
显示器 /dev/stderr 2 标准错误输出

输入输出的设备很多,但只有上面三种是标准的,
Linux中一切皆文件,所以他们都有设备文件名,文件描述符是设备文件名的简称,可以在Shell中使用0表示表示键盘输入

2、输出重定向
不再输出到屏幕中,而是将其输出到文件中

类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式,将命令的正确输出输出到指定的文件或设备中
命令 >> 文件 以追加的方式,将命令的正确输出输出到指定的文件或设备中
=标准错误输出重定向 错误命令 2>文件 以覆盖的方式,将命令的错误输出输出到指定的文件或设备中
错误命令 2>>文件 以追加的方式,将命令的错误输出输出到指定的文件或设备中

注意,正确命令的>操作符两边可以有空格,错误命令两边不能有。
错误命令是指犯二的命令,如# cangls 2>>test.log
但是在平时使用中,我们不知道命令的输出是否正确,所以我们需要条命令不管是否正确,都输出

多命令顺序执行
Shell中的特殊符号

8、软件安装

Linux下源码的编译安装一般分为三个步骤:配置configure、编译make、安装make install
configure –prefix是用来指定安装目录,类似Windows中指定软件的安装目录,如果不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/bin,配置文件默认放在/usr/local/etc,其他资源文件默认放在/usr/local/share。如果你要卸载这个程序,需要在原来的make目录下使用make uninstall,要么就去上述目录中将相关的文件逐个手工删除。指定prefix后,该软件的所有文件都将被复制到这个目录,直接删除该目录就够了。所以说为了防止软件复制到多个目录下难以维护,最好指定该目录。
使用–prefix的另一个好处是卸载软件或移植软件很方便。卸载只需删除该目录,就可以把软件卸载干净。移植软件只需要拷贝整个目录到另外一台相同系统的机器即可。

echo 123 >> /tmp/a,可以将字符添加到原文件的尾部

你可能感兴趣的:(Linux,shell,linux,shell)