Linux达人养成记Ⅰ笔记

来源:互联网 发布:软件安装手册 编辑:程序博客网 时间:2024/06/05 10:51

帮助命令

man 命令
/【要搜索的内容】

man的级别

1 查看命令的帮助
2 查看可被内核调用的函数的帮助
3 查看函数和函数库的帮助
4 查看特殊文件的帮助(主要是/dev目录下的文件)
5 查看配置文件的帮助
6 查看游戏的帮助
7 查看其他杂项的帮助
8 查看系统管理员可用命令的帮助
9 查看和内核相关文件的帮助

查看命令拥有哪个级别的帮助

man -f 命令等同于whatis 命令
比如man -f passwd会看到passwd命令有个配置文件,所以用man 5 passwd可以看到这个配置文件的帮助,用whereis passwd可以看到文件所在位置

查看所有包含关键字的命令

man -k 关键字等同于apropos 关键字,如apropos passwd

别名与快捷键

查看与设定别名

alias 查看系统中所有的命令别名
alias 别名='原命令' 设定命令的别名
alias rm='rm -i'或者alias ll='ls -l'
相当于设置快捷命令,只不过是临时生效的

别名永久生效与删除别名

vi ~/.bashrc 写入环境变量配置文件
unalias 临时删除别名

常用快捷键

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

常用目录作用

/根目录
/bin命令保存目录(普通用户就可以读取命令)
/sbin
/usr系统软件资源目录
/boot启动目录,启动相关文件
/dev设备文件保存目录
/etc配置文件保存目录
/lib系统函数库保存目录
/mnt系统挂载目录
/media挂载目录
/sys /proc保存内存挂载点,不能直接操作
/tmp临时目录,存放临时数据
/var保存系统可变文档目录

/usr下也有/bin/sbin目录,同/下的两个目录一起保存系统命令,/sbin下的命令只有超级用户才能执行
可以在家目录'/home'或根目录/,以及/tmp目录下随便放内容,其他都别动,但也不推荐在根目录下操作,只放必要数据

挂载命令

相当于win中的分配盘符,只不过linux中叫挂载

查询与自动挂载

mount 查询系统中已经挂载的设备

  • 显示的都是~ on ~ type ~这样的结构

  • /dev/sda5 on / type ext4 (rw)
    其中sda5代表第一块SATA硬盘的第五个分区,/代表这是根分区,ext4代表文件系统是ext4,权限是读写;

  • 类似的,/dev/sda1 on /boot type ext4 (rw)代表第一块SATA硬盘的第一个分区是boot分区,文件系统是ext4,权限是读写

mount -a 依据配置文件/etc/fstab的内容,把这个文件里写的所有设备都挂载一遍,像/,/boot,/home,swap这些分区都在文件里,所以系统才会在每次开机时自动挂载这些分区

挂载命令格式

mount【-t文件系统】【-o特殊选项】设备文件名 挂载点
-t 文件系统 加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统
-o 特殊选项 可以指定挂载的额外选项,有各种参数,可多个一起,用逗号隔开
特别看下这个exec/noexec,代表执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec文件
比如mount -o remount,noexec /home/表示重新挂载/home分区,并且不允许执行可执行文件,此时如果再去./hello.sh会显示权限不够

#初识脚本文件vi hello.sh #创建一个名为hello的脚本文件#按`I`插入内容#!/bin/bash #开头必须加上这行注释,脚本才能执行echo "hello world!" #echo是输出命令#按`ESC`退出编辑#键入`:wq`保存并退出chmod 755 hello.sh #赋予执行权限./hello.sh #`./`用来执行脚本,表示当前目录下,也可以用绝对路径

挂载光盘

第一步:把光盘放到光驱里
第二步:mkdir /mnt/cdrom/ 建立挂载点(可以在任何空目录下建立挂载点,特别地,在/目录下有/mnt,/media,/misc三个空目录,分别用来挂可移动设备,光盘和磁带机)
第三步:mkdir -t iso9660 /dev/sr0 /mnt/cdrom 挂载光盘(sr0就是光盘设备名,是固定的,记下即可,也可以是cdrom,不过它和sr0是软链接,相当于同一个文件;另外-t iso9660可以省略,因为光盘的默认文件系统就是iso9660
第四步:ls /mnt/cdrom 读取光盘下的内容

卸载光盘

在Linux中,一定!!要执行此命令,才能正常取出光盘
umount 设备文件名或挂载点,如umount /dev/sr0或者umount /mnt/cdrom
如果显示device is busy,原因可能是你当前目录正是当前目录

挂载U盘

首先说明,插入的U盘相当于另一块硬盘,感觉设备文件名应该是sdb1,但不是固定的,不像光盘一定是sr0或者cdrom
fdisk -l 查看系统中已经识别的硬盘,由此找到U盘设备名
mount -t vfat/dev/sdb1 /mnt/usb 挂载U盘,再次申明sdb1不是固定的,这里的vfat指的是win中的FAT32

Linux不支持NTFS文件系统!!

Linux不像win需要一个一个安装驱动,它会一次性将所有能够认识的驱动全都放在内核里,但由于这样做的消耗太大,所以很多不会经常用的驱动就没有加载,比如NTFS,你需要进行内核编译,但此工作量太大,一般在工作中也不需要使用,除非做的是安卓之类的开发。
解决方法是:搜索ntfs-3g,安装,这样linux就会支持NTFS
实际上,真正要进行文件的传输,不会使用U盘和光盘,而是通过网络传输,这在后续课程中会讲解!!

关机和重启命令

关机命令

shutdown 【选项】时间
-c 取消前一个关机命令
-h 关机
-r 重启

  • 使用date命令看系统日期

  • shutdown -r 05:30表示在凌晨5点30分重启,此时进入倒计时状态,无法再操作,通过ctrl+c取消。

  • 在最后加上&,使命令在后台执行,不占用操作界面,两次回车后继续自己的操作。此时如果不想在后台执行这条命令,可以用shutdown -c来取消。

  • shutdown -r now表示现在就重启。

  • 在远程登录服务器时要避免使用这个命令!

其他关机命令

halt
poweroff
init 0
但这三者都不太安全

其他重启命令

reboot 比较安全
init 6 不安全

这里的0和6是什么意思?

代表系统运行的七个级别
0 关机
1 单用户,可以看做win中的安全模式,用来做系统修复
2 不完全多用户,不含NFS服务(文件共享服务)
3 完全多用户,就是黑底白字的字符界面
4 未分配
5 图形界面
6 重启
init表示调用某个级别
使用runlevel来看系统到底运行在哪个级别,Mac OS不支持
通过cat /etc/inittab找到文件中的id:3:initdefault字段,修改数字,改变系统开机默认级别。但绝对不能设为0和6。

退出登录命令

logout

管道符

多命令顺序执行

多命令执行符格式作用;命令1 ; 命令2多个命令顺序执行,命令之间没有任何逻辑联系&&命令1 && 命令2逻辑与,命令1正确执行才会执行命令2,命令1不正确执行,则命令2不会执行shift+\shift+\命令1 shift+\shift+\ 命令2逻辑或,当命令1执行不正确,则命令2才会执行,当命令1正确执行,则命令2不会执行

*其中,shift+\意味着|
例如:date ; tar -zcvf etc.tar.gz /etc ; date可以计算中间打包压缩命令执行的耗时
再如,ls && echo yes || echo no,第一个命令正确执行,输出yes,错误执行,输出no

管道符

命令格式:命令1 | 命令2,有一定的编程思想在里面 命令1的正确输出作为命令2的操作对象,和逻辑与不一样
例子:

  • ls -l /etc | more代表将ls -l /etc的输出分屏显示

  • netstat -an | grep ESTABLISHED代表搜索netstat -an输出中带有ESTABLISHED的行
    如果再变成netstat -an | grep ESTABLISHED | wc -l,此为多管道符命令,代表到最后统计带有ESTABLISHED的行的数目,即可看出服务器上连接了多少人

  • 如果原本使用cat输出的内容中有很多重复,可在后面加上|uniq去重

脚本的执行方法

脚本的执行方法

echo输出命令

echo【选项】【输出内容】
echo "cangls he bols ni xi huan na yi ge?"只要输出的内容里有空格就需要加双引号
选项-e ,表示支持反义字符

echo所能支持的反义字符(也可以用在Python里)

反义字符作用\a输出警告音\b退格键,也就是向左删除键\n换行符\r回车键\t制表符,也就是Tab键\v垂直制表符\0nnn按照八进制ASCⅡ码表输出字符。其中0为数字零,nnn是三位八进制数\xhh按照十六进制ASCⅡ码表输出字符。其中hh是两位十六进制数

举个例子:echo -e "\x68\x65\x6c\x6c\x6f",手动输入字符的十六进制ASCⅡ码值,输出就是hello
Linux本机的纯字符界面是不支持中文的!
另外,在XShell这样的远程工具界面上是可以支持颜色显示的,如echo -e "\e[1;31m 嫁人就要嫁凤姐 \e[0m",其中的\e[1;31m是开启颜色,\e[0m是关闭颜色,31m表示红色,可以支持的颜色从30到37

第一个脚本

vim hello.sh#!/bin/bash#注释echo -e "\e[1;34m 天上掉下个林妹妹 \e[0m"

脚本执行

  • 赋予执行权限,调用脚本
    chmod 755 hello.sh
    ./hello/sh #相对路径

  • 通过Bash直接执行脚本
    bash hello.sh

历史命令

历史命令

history 【选项】【历史命令保存文件】
选项:
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件~/.bash_history
历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改HISTSIZE=1000

历史命令的调用

  • 使用上下箭头调用以前的历史命令

  • 使用!n重复执行第n条命令

  • 使用!!重复执行上一条命令

  • 使用!字串重复执行最后一条以该字串开头的命令

命令与文件补全

在Bash中,命令与文件补全是非常方便与常用的功能我们只要在输入命令或文件时,按Tab键就会自动进行补全

链接命令

链接命令

ln -s 【原文件】【目标目录】
功能是生成链接文件
-s 创建软链接

硬链接的特征

  1. 硬链接拥有相同的i节点和存储block块,可看做是同一个文件

  2. 可通过i节点识别

  3. 不能跨分区

  4. 不能针对目录使用

ln desktop/Learning_Python/hello_world.py documents/hello_world.hardls -l desktop/Learning_Python/hello_world.py-rw-r--r--  2 Jeff  staff  3379  3 14 10:30 desktop/Learning_Python/hello_world.pyls -l documents/hello_world.hard-rw-r--r--  2 Jeff  staff  3379  3 14 10:30 documents/hello_world.hardls -i desktop/Learning_Python/hello_world.py documents/hello_world.hard2231081 desktop/Learning_Python/hello_world.py2231081 documents/hello_world.hard

软链接的特征

  1. 类似于win下的快捷方式

  2. 软链接拥有自己的i节点和block块,但数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据

  3. Irwxrwxrwx I软链接 软链接文件的权限都是rwxrwxrwx

  4. 修改任意文件,另一个都改变

  5. 删除原文件,软链接不能使用

命令格式

[root@localhost ~]#

root段代表当前用户,localhost是主机名
如果是超级用户,当前目录为/root根目录,如果是普通用户user1,则为/home/user1
#表示当前用户位超级用户,$则为普通用户

格式:命令 【选项】【参数】

查询目录内容命令

ls 【选项】【目录/文件】

ls -l ~/desktopdrwxr-xr-x@  3 Jeff  staff    102  3  8 11:08 $RECYCLE.BINdrwxr-xr-x   6 Jeff  staff    204  4  9 16:13 A*算法drwxr-xr-x  10 Jeff  staff    340  4  9 16:14 Learning_Python-rw-r--r--   1 Jeff  staff   1441  3 30 11:43 SSH设置-rw-r--r--@  1 Jeff  staff  48640  3  8 11:08 Thumbs.dbdrwxr-xr-x  10 Jeff  staff    340  4  9 18:07 myBooksdrwxr-xr-x  10 Jeff  staff    340  4 10 11:02 毕业规范-rw-r--r--@  1 Jeff  staff   6313  4  8 21:36 实习小结.md

-l 显示详细信息
权限10位 -rw-r—r—
第1位代表文件类型: -文件 d目录 l软链接文件
rw- u所有者 班级
r-- g所属组 美眉
r-- o其他人 大老爷们傻和尚
r读 w写 x执行
3,6,10这些数字代表引用计数
102,204,340这些数字代表字节大小,改用ls -lh就变成kB,易于阅读

ls -a ~/desktop$RECYCLE.BIN.DS_StoreLearning_PythonmyBooks..localizedSSH设置毕业规范..A*算法Thumbs.db实习小结.md

-a 显示所有文件,包括隐藏文件
-la 详细显示所有文件

ls -ld ~/desktopdrwx------+ 12 Jeff  staff  408  4 10 17:07 /Users/Jeff/desktop

-d 显示目录属性
-ld 详细显示目录属性

对目录如果没有w权限,即使里面的文件有写权限,也不能对文件进行移动,重命名操作,此时,需要给目录加上w权限:chmod +w(注意此时cwd是此目录)

目录处理命令(上)

创建目录命令

mkdir -p 【目录名】
-p用来递归创建

mkdir -p outerdir/innerdirdesktop Jeff$ ls$RECYCLE.BINLearning_PythonThumbs.dbouterdir实习小结.md A*算法SSH设置myBooks毕业规范

切换目录命令

cd 【目录名】
cd ~ 和cd 回到家目录
cd - 回到上次所在目录
cd .. 回到上一级目录
cd . 进入当前目录
另外control+L 清屏快捷键

绝对路径和相对路径

下面是Mac OS X的目录结构

JeffsMacBook-Pro:~ Jeff$ pwd/Users/JeffJeffsMacBook-Pro:~ Jeff$ cd ..JeffsMacBook-Pro:Users Jeff$ cd ..JeffsMacBook-Pro:/ Jeff$ lsApplications home Library installer.failurerequests Network net System private Users sbin Volumes tmp bin usr cores var dev 用户信息 etc

按两下tab键目录/命令补全

目录处理命令(下)

删除空目录

rmdir【目录名】

删除非空目录或文件

rm -rf 【目录/文件】
-r 删除目录
-f 强制
单纯rm或者rm -r会问你真的要删文件或者目录吗?
千万别打rm -rf /会删掉根目录下的所有文件!!!

复制命令

cp 【选项】【原文件/目录】【目标目录】
-r 复制目录
-p 连带文件属性复制
-d 若原文件是链接文件,则复制链接属性
-a 相当于-pdr,保证和原文件属性一模一样!

cp -r japan/ /Users/Jeff/Documents //复制japan目录下的目录到文稿目录下cp -r japan /Users/Jeff/Documents //复制japan目录到文稿目录下

另外,ll就是ls -l命令!

剪切或改名命令

mv 【原文件或目录】【目标目录】
在同一目录下就是改名

其他帮助命令

选项帮助

命令 --help,如ls --help

shell内部命令帮助

help shell内部命令
whereis cd用来确定是否是shell内部命令,help cd用来获取内部命令帮助

详细命令帮助

info 命令 不推荐使用!!
-回车 进入子帮助页面
-u up进入上层页面
-n next进入下一个帮助小节
-p previous进入上一个帮助小节
-q quit退出

输出重定向

标准输入输出

设备设备文件名文件描述符类型键盘/dev/stdin0标准输入显示器/dev/sdtout1标准输出显示器/dev/sdteer2标准错误输出

输出重定向

ipconfig > ~/desktop/test.log,将内容保存在日志文件中
只要命令有输出就能重定向到文件中
特别注意,错误输出大于号和文件之间不能有空格!!!

正确和错误输出同时保存

3和4作用是一样的!推荐3,4,5!
特别这个文件/dev/null,被称为『黑洞』,如果把命令重定向到这儿,系统就直接抛弃了

输入重定向

wc【选项】【文件名】
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数
这里首先引入这个例子——wc < test.logwc命令原本的输入是键盘,现在重新定向为文件,当然,其实不需要<
另外一个例子是——wc << ddy,它会要求你不断输入,知道再遇到ddy,就会停止并做相关统计,实际工作中基本不会用到

通配符

通配符

通配符作用?匹配一个任意字符*匹配0个或任意多个任意字符,也就是可以匹配任何内容[]匹配中括号中任意一个字符。例如[abc]代表一定匹配一个字符,或者a或者b或者c[-]匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母[^]逻辑非,表示匹配不是中括号内的一个字符。例如[^0-9]代表匹配一个不是数字的字符

Bash中其他特殊符号

符号作用''单引号。在单引号中所有的特殊符号,如"$"和"`"(反引号)都没有特殊含义""双引号。在双引号中特殊符号都没有特殊含义,但是"$"、"`"和"\"是例外,拥有"调用变量的值"、"引用命令"和"转义符"的特殊含义``反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。$()和反引号一样,用来引用系统命令#在Shell脚本中,#开头的行代表注释$用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。\转义符,跟在\之后的特殊符号将失去特殊含义,变味普通字符。如\$将输出"$"符号,而不当作是变量引用

举例

aa=123echo $aa# 输出123echo '$aa'# 输出$aaecho "$aa"# 输出123aa=`ls` # 先执行,再赋值,易弄错,不推荐echo $aa# 输出ls的输出aa=$(ls) # 推荐echo $aa# 输出ls的输出echo \$aa # 让特殊符号失去作用# 输出$aa

文件搜索命令

文件搜索命令

locate 文件名在后台数据库中按文件名搜索,速度更快
这个数据库是/var/lib/mlocate,它的更新速率默认是一天一次,Linux版本的不同,名字不同,Mac下在/var/db/locate.datebase
可以使用updatedb命令强制更新数据库,Mac下是sudo /usr/libexec/locate.updatedb,根据距上次更新后更改的文件数目多少,速度不同
只能通过文件名来搜索
遵守/etc/updatedb.conf配置文件里的筛选规则,所以即使你更新了数据库也不一定能locate到所要寻找的文件

搜索命令的命令

  • whereis【选项】命令名
    -b 只查找可执行文件
    -m 只查找帮助文件
    Mac用不了这两个选项

  • which 命令名
    可以查看别名,Mac也没这个功能
    cd命令是shell自带的,找不到,whereiswhich能找到的都是后来安装的命令

PATH环境变量

Linux从PATH定义的路径中找寻命令,所有命令不用麻烦打绝对路径
echo $PATH查看路径,:隔开

文件搜索命令

find【搜索范围】【搜索条件】
-name 按照文件名搜索
-iname 文件名不区分大小写

Linux中的通配符

#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配的。
* 匹配任意内容(任意多个字符)
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
find desktop/ -name "ab[cd]"匹配abc或abd

按照所有者来搜索

-user 按照所有者搜索,如find /root -user root是找root目录下所有者为root的文件
-nouser 是找没有所有者的文件,如find /root -nonuser是找root目录下没有所有者的文件

按照时间来搜索

find 【搜索范围】 -(X)time (+/-)时间
find /root -mtime +10是查找十天前修改的文件
+10 10天前修改的文件
10 10天当天修改的文件
-10 10天内修改的文件
atime 访问文件的时间
ctime 改变文件属性的时间
mtime 修改文件内容的时间

按照大小来搜索

find 【搜索范围】-size (+/-)X(k/M)
小写k是kB,大写M是MB
find /root -size +10k是查找root目录下大小大于10kB的文件

按照i节点来搜索

find 【搜索范围】-inum 【i节点号】
ls -i 【文件名】正好相反

多条件查询

find /root -size +20k -a -size -50k查找20~50kB大小的文件
find /root -size -20k -o -size +50k查找小于20或者大于50kB的文件
find /root -size +20k -a -size -50k -exec ls -lh {}\;查找20~50kB的文件,并列出详细信息
-exec/-ok 命令 {} \;用来继续处理搜索到的文件
find /root -inum 606838 -exec rm -rf {} \;找到i节点号为606838的文件然后删除

压缩命令1

Linux中最常见的压缩格式有:.zip .gz .bz2 .tar.gz .tar.bz2

.zip格式压缩

zip 压缩文件名 原文件 #压缩文件
zip -r 压缩文件名 源目录 #压缩目录

JeffsMacBook-Pro:~ Jeff$ zip ~/desktop/install.zip ~/desktop/install.log  adding: Users/Jeff/desktop/install.log (stored 0%)JeffsMacBook-Pro:~ Jeff$ ls -l ~/desktop-rw-r--r--   1 Jeff  staff        0  4 13 18:35 install.log-rw-r--r--   1 Jeff  staff      210  4 15 23:07 install.zip

.zip格式解压缩

unzip 压缩文件 #在哪个目录下操作就解压到那个目录下

.gz格式压缩

gzip 源文件 #压缩后源文件会被删除
gzip -c 源文件 > 压缩文件 #源文件被保留
gzip -c cangls > cangls.gz
gzip -r 目录 #只能压缩目录下所有的子文件,但不能压缩目录

可以使用通配符统一处理多个压缩文件,如rm -rf *.zip

.gz格式解压缩

gzip -d 压缩文件
等价于gunzip 压缩文件,会把源压缩文件删除

.bz2格式压缩

bzip2 源文件 #压缩后源文件会被删除
bzip2 -k 源文件 #源文件被保留
此命令不能压缩目录!

.bz2格式解压缩

bzip2 -d 压缩文件可以用-k保留源文件
等价于bunzip2 压缩文件同样可用-k

压缩命令2

通过打包.tar解决.gz和.bz2压缩目录的不便之处

常用压缩格式:.tar.gz.tar.bz2

打包命令

tar -cvf 打包文件名 源文件
-c 打包
-v 显示过程
-f 指定打包后的文件名
tar -cvf longzls.tar longzls
然后对打包文件进行压缩

解打包命令

tar -xvf 打包文件
-x 解打包
tar -xvf longzls.tar

.tar.gz格式

tar -zcvf 压缩包名.tar.gz 源文件 压缩
tar -zxvf 压缩包名.tar.gz 解压缩
tar -ztvf 压缩包名.tar.gz 查看压缩包内容

.tar.bz2格式

tar -jcvf 压缩包名.tar.bz2 源文件 压缩
tar -jxvf 压缩包名.tar.bz2 解压缩
tar -jtvf 压缩包名.tar.bz2 查看压缩包内容

可以在解压缩命令后加上-C 指定目录将解压出来的文件放到其他目录

可以在压缩命令的源文件处空格分开多个文件一起压缩,如tar -zcvf jp.tar.gz japan install.log

用户登录查看命令

查看用户登录信息

w 用户名 (不加用户名也可以)
命令输出:

  • USER:登录的用户名

  • TTY: 登录终端

  • FROM:从哪个IP地址登录

  • LOGIN@:登录时间

  • IDLE:用户闲置时间

  • JCPU:指的是该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间

  • PCPU:是指当前进程所占用的时间

  • WHAT:当前正在运行的命令

who 用户名 和w一样,只不过更简单(不加用户名也可以)
命令输出:

  • -用户名

  • -登录终端

  • -登录时间(登录来源IP地址)

查看过去所有用户的开关机重启信息

last 默认是读取/var/log/wtmp文件数据,这是一个二进制文件,防止人为修改
命令输出:

  • -用户名

  • -登录终端

  • -登录IP

  • -登录时间

  • -退出时间(在线时间)

查看所有用户的最后一次登录信息

lastlog 默认读取/var/log/lastlog文件数据

字符串搜索命令

grep 【选项】"字符串" 文件名
#在文件中查找字符串
-i 忽略大小写,因为Linux严格区分大小写
-v 搜索不包含字符串的文件
grep需要使用正则表达式进行匹配

Shell概述

Shell是什么?

  • 是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动,挂起,停止甚至是编写一些程序

  • 还是一个功能强大的变成语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令

Shell的分类

  • Bourne Shell,也称为B Shell,1979年起Unix就开始使用它,主文件名为sh

  • C Shell,主要是BSD版的Unix系统中使用,因其语法和C语言相类似而得名

Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。前者主要包括sh, ksh, Bash, psh,后者主要包括csh, tcsh

Linux的标准Shell是BashBashsh是相互兼容的。通过执行echo $SHELL就可以看到当前系统支持的哪种Shell

Linux支持的shell

vi /etc/shells 可以看到当前Linux支持的所有Shell
sh 就从Bash进入到了sh
exit 退出当前Shell
使用bash命令可以在已有的Bash下创建一个子Shell,同样使用exit退出,调用和退出都是一级一级连贯的
后续课程会讲自己当前所处的shell是什么

原创粉丝点击