linux用户接口实验报告,Linux的用户接口

Linux的用户接口

操作系统为用户提供了两种接口:

第1种是命令接口,用户利用这些命令来组织和控制作业的执行,或者对计算机系统进行管理。

第2种是程序接口,编程人员使用他们来请求操作系统服务。

命令接口为:CLI(命令行界面)和GUI(图形用户界面),TUI(文本用户界面)。

什么是Shell?

想要听音乐需要什么?

首先需要声卡

操作系统的核心可以支持这个声卡(有相应的声卡驱动程序)

用户发出播放音乐的指令

必须发出指令,硬件才会工作。如果可以直接同硬件沟通,那么不需要内核。否则,用户的指令必须先发送给内核,然后内核再去控制硬件。shell正是用户与内核沟通的平台:

用户可以通过shell给内核发送指令

内核也可以把指令执行的过程或者结果信息发送到shell给用户看。

Shell为用户提供了输入命令和参数,并且可得到命令执行结果的环境。

Shell作为操作系统的外壳,为用户提供使用操作系统的接口,是命令语言、命令解释程序及程序设计语言的统称。

BASH Shell

早年的Unix年代,Unix发展者众多,所以shell有很多不同版本,例如常听到的 Bourne Shell (sh) 、在Sun中默认的C Shell、 商业上常用的K SHell以及TCSH 等,每一种Shell都各有其特点。

Linux 使用的是Bourne Again Shell(简称 bash),这个 Shell是Bourne Shell的增强版本,也是基于GNU的架构下发展出来的。

BASH Shell的特点:

命令记忆能力

Linux可以记忆以前输入过的命令,只要使用上下键就可以找到以前执行的指令来执行。

这些命令按照先后顺序记录在用户Home目录下的隐藏文件.bash_history中

.bash_history里面记录了上一次登录以前执行过的命令,本次登录执行的命令都保存在内存中,只有成功注销之后,内存数据才会刷新到.bash_history文件中

bash执行命令时,不会立刻将命令写入历史命令文件,而是先存放在内存的缓冲区中,该缓冲区被称为历史命令列表,等bash退出再将历史命令列表写入历史命令文件,

可以使用 bash 的内部命令 history ,来显示和编辑历史命令。

语法1:history [n]

功能:当 history 命令没有参数,将显示整个历史命令列表的内容。如果使用 n 参数,将显示最后 n 个历史命令。

语法2:history [-a|n|r|w] [filename]

history 命令各选项及其功能说明见表。

选项功能

-a把当前的历史命令记录追加到历史命令文件中

-c清空历史命令列表

-n将历史命令文件中的内容加入到当前历史命令列表中

-r将历史命令文件中的内容更新(替换)当前历史命令列表

-w把当前历史命令列表的内容写入历史命令文件,并且覆盖历史命令文件的原来内容

filename 如果 filename 选项没有被指定,history 命令将使用环境变量HISTFILE指定的文件名

命令别名与历史:

执行历史命令的方法

方法1:!number

执行历史命令中编号为number的那个命令

方法2:!command

执行历史命令中最近一次以command开头的命令

方法3:!!

执行上一条命令

BASH Shell的特点:

命令补全补全功能

如果在执行命令的时候不想按下太多的按键(例如命令pcprofiledump),在输入了 pcprofile 之后,再按下 [Tab] 键的话,那么 bash 马上会自动的将后面的dump接上来。

如果有重复的命令,那么按下两次 [Tab] 将会把所有重复的命令列出来。

直接在提示字符后面连按两次 键,则系统会将所有可以使用的命令都列出来。

例如,如果想要知道目前系统里面,所有以b开头的命令呢?就是按下 b 之后,连按两次就ok。

文件名称补全功能

如果用 vi 来读取某个文件,例如 /etc/man.config 这个文件,那么可以输入 vi /etc/man之后,直接按下 键,该文件名称就会被自动的补上。

同样,出现文件多个匹配项时,可以按下两个TAB键来显示所有匹配项。

这样大大增加了指令输入的正确率。

命令别名设置功能

假如我需要知道某个目录底下的所有文件信息(包含隐藏文件)及所有的文件属性,那么我就必须要输入ls -al 这样的指令。

每次都输入多麻烦!

可以通过为自己经常使用的命令(包括参数)定义别名来避免过多输入。

例如:alias lm='ls -al' (注意=两边不要有空格)

那么以后lm就等于执行ls -al

直接输入alias,可以显示目前以及定义好的所有别名

语法:alias [别名]=[命令名称]

功能:设置命令的别名,如果不加任何参数,仅输入alias命令,将列出目前所有的别名设置。alias命令仅对该次登录系统有效,如果希望每次登录系统都能够使用该命令别名,可以编辑~/.bashrc文件(root用户是/root/.bashrc,普通用户是/home/*/.bashrc),按照如下格式添加一行命令:

alias 别名="要替换的终端命令"

保存.bashrc文件,注销,再次登录系统,就可以使用命令别名了。

实例: 设置命令别名

执行不加任何参数的alias命令,将列出目前所有的别名设置,如下所示。

[root@localhost ~]# alias

alias 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 showhome=‘ls -l /home’,为“ls -l /home”命令设置别名showhome,

使用showhome命令,再执行unalias showhome命令,取消别名设置,此时showhome已经不是命令了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值