shell
命令类型查询:type
读入配置文件:source
操作系统内核(kernel)负责管理整个计算机硬件,但是这个内核是需要保护的,用户不能直接操作内核,因此就需要一个可以帮助我们操作内核的工具。Shell功能就在于此,他可以将我们输入的命令与内核通信,好让内核可以控制硬件来正确无误地工作
我们使用的是linux默认shell即bash shell,其主要功能是:
Ø 命令记忆功能:
Ø 命令与文件不全功能
Ø 命名别名设置功能
Ø 作业控制,前台,后台控制
Ø 程序脚本
Ø 通配符
命令类型查询(type)
对于shell能够识别的变量分为:
内部命令:由bash内置的命令
外部命令:来字外部的命令,非bash内置
语法:type [-tpa] name
选项与参数:不加任何参数是,会显示出是内部命令还是外部命令
-t:会已以下关键字说明命令的意义
File:外部命令
Alias:通过别名设置的命令
Builtin:内置命令
-p:-如果后面接的是外部命令时才会显示完整文件名
-a:会有PATH变量定义的路径中,所有name命令列出来,包括alias
举例:
[root@localhost ~]# type ls ls is aliased to `ls --color=tty' [root@localhost ~]# type -t ls alias [root@localhost ~]# type cd cd is a shell builtin [root@localhost ~]# type egrep egrep is hashed (/bin/egrep) [root@localhost ~]# type -t egrep file [root@localhost ~]# type -p egrep /bin/egrep
路径与命令查找顺序
在我们系统中存在多个名字相同的名字,那么bash shell究竟使用的是哪个命令呢?其遵循的顺序如下:
1. 以相对/绝对路径来执行命令
2. 由alias找到命令来执行
3. 由bash内置命令来执行
4. 通过$PATH的顺序找到的第一个命令来执行
举例
[root@localhost ~]# alias echo='echo -n' [root@localhost ~]# type -a echo echo is aliased to `echo -n' echo is a shell builtin echo is /bin/echo =>可以看到先找alias在内置命令 最后PATH
Bash的环境配置文件
当我们进如bash之后虽然我们什么也没有设置,但是系统的一些变量已经别名等信息就已经设置好了,这些信息就存在环境配置文件中,bash启动时就会读取这些文件,对配置信息进行加载和设置
环境配置文件分类:
整体配置文件
个人配置文件
配置文件读取流程
用户输入完正确的用户名密码获得的bash首先会读取
1. /etc/profile
这个文件设置的只要变量有PATH,MAIL,USER,HOSTNAME.HISTSIZE,接下来调用其他文件加载数据
2. /etc/inputrc
3. /etc/profile.d/*.sh
这个目录下的文件规定了bash的操作借口颜色,语系,公共别名等信息
4. /etc/sysconfig/i18n
这个文件由/etc/profile.d/lang.sh调用复制设置语系
以上为整体配置文件,设置完成后开始设置个人配置文件
5. ~/.bash_profile
~/.bash_profile,~/.bash_login ~/.profile三个文件只读取一个,而且顺序按照前面的顺序
root@localhost ~]# cat ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH unset USERNAME
在这个文件中将用户主目录添加到PATH中,并将PATH变为环境变量。并且还回去读取~/.bashrc文件(我通常将我个人的配置信息写到这里,如别名)
其他重要配置文件
/etc/man.config: 这个文件中记录了帮助信息在哪里
~/.bash_history:记录操作命令历史记录
~./bash_loyout:注销时系统做的事情记录在这里
读入环境配置文件(source)
环境配置文件只有bash在启动时读入,如果启动以后再修改就需要重新登录,才能让配置文件再一次被读入,source命令就是避免重新登录,使修改后的配置文件重新读入后立即生效
语法:source配置文件名
终端机环境设置
终端机中有的按键代表特殊的意义,如[backspace]代表删除,[ctrl+c]代表终止命令。在不同的Linux distributions中终端机环境设置不尽相同。Stty可以查看并设置这些命令
语法:stty –a
stty name 热键
选项与参数:
-a:查看所有环境中所有按键设置
name:按键设置名称
举例:查看所有按键信息
[root@localhost ~]# stty -a speed 38400 baud; rows 41; columns 143; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -cdtrdsr -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
几个重要的内容:
Eof:代表输入结束
Erase:删除字符操作
Intr:终止目前命令
Kill:在提示符下,将正行命令删除
Quit:送出quit给正在运行的程勋
Start:暂停屏幕的输出
Stop:回复屏幕的输出
Susp: 暂停目前命令
举例2:修改按键信息
[root@localhost ~]# stty erase ^h =>将删除字符按键变为[ctrl+h],此时[backspace]按键变成[ctrl+?]操作, [root@localhost ~]# stty -a speed 38400 baud; rows 41; columns 143; line = 0; intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
通配符
Bash shell特点之一就是通配符,可以方便我们查找。
说明:通配符和正则表达式不是一个东西
常用的通配符:
*:代表0~n个任意字符
?: 代表一定有一个字符
[]:代表一定有一个括号内的字符
[-]代表一定是连续字符中的一个.例如:[0-9]代表一个是0-9中的一个字符。前提字符必须是连续的
[^]:^表示反向选择例如[^abc]代表一个非abc的字符
举例:
[root@ localhost ~]# LANG=C <==由于与编码有关(字符连续),先配置语系 找出 /etc/ 底下以 cron 为开头的档名 [root@ localhost ~]# ll -d /etc/cron* <==加上 -d 是为了仅显示目录而已 找出 /etc/ 底下文件名『刚好是五个字母』的文件名 [root@ localhost ~]# ll -d /etc/????? 找出 /etc/ 底下文件名含有数字的文件名 [root@ localhost ~]# ll -d /etc/*[0-9]* 找出 /etc/ 底下,档名开头非为小写字母的文件名: [root@ localhost ~]# ll -d /etc/[^a-z]*
相关推荐
【linux学习笔记-16】shell管道重定向程序的实现.doc 【linux学习笔记-1】使用GDB调试简单的用户程序.doc 【linux学习笔记-2】父子进程共享文件描述符.doc 【linux学习笔记-3】文件操作(stat,chmod,umask).doc ...
【linux学习笔记-1】使用GDB...【linux学习笔记-16】shell管道重定向程序的实现 【linux学习笔记--17】POSIX IPC——消息队列 【linux学习笔记--18】POSIX IPC——信号量 【linux学习笔记--19】POSIX IPC——共享内存
这份“Linux学习笔记-很不错适合linux入门者”文档恰好为初学者提供了一个很好的起点。 首先,笔记可能会从Linux的起源和发展讲起,包括Linux之父Linus Torvalds创建Linux内核的故事,以及GNU项目与自由软件运动...
标题提到的"record-linux-shell-history.rar_history_shell"显然与Linux Shell历史记录的管理和保存有关。下面我们将深入探讨Linux Shell历史功能及其相关的知识。 1. **Shell历史记录功能** - Linux中的Shell,如...
《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...
【Linux学习笔记】这篇超全总结涵盖了Linux操作系统的基础知识,特别是关于命令行的使用和快捷键,以及一些桌面环境下的快捷操作。以下是笔记中的主要内容: 1. **LINUX常用操作命令**: - `clear`:清空终端屏幕...
### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...
如果你希望深入学习,可以阅读《The Linux Command Line》等经典书籍,或者参考CSDN博客上的"一起回顾一下linux常用命令 - sunxing007的专栏"等在线资源,如uuu.rar中可能包含的相关教程或笔记。 记住,Linux命令行...
### Linux学习笔记-初学者 #### 一、Linux分区命名规则及理解 Linux系统中的分区命名规则对于初学者来说非常重要,因为这直接影响到如何管理和识别不同的存储设备。下面详细介绍几个关键概念: - **MBR(Master ...
### Linux学习笔记精要 #### 一、Linux操作系统概述与常用命令 - **Shell与GUI**: Linux系统提供了两种主要的用户交互方式,图形用户界面(GUI)如Gnome和命令行界面(CLI)如Bash。GUI适合初学者,而CLI对于高效地...
我自己看完韩顺平老师在尚硅谷发布的新版的Linux的视频,看到了在Linux下安装Tomcat,JDK这个地方,不包含shell编程的笔记。因为以前我觉得Linux很难,所以一直想学会,这次笔记做得比较详细。另一个亮点是使用...
在Linux学习笔记中,你将接触到以下几个关键知识点: 1. **命令行基础**:了解如何在终端中启动和使用shell,学习基本的文件和目录操作,如`cd`(改变目录)、`ls`(列出目录内容)、`touch`(创建新文件)、`mv`...
这个名为"Linux-Shell-Tutorial.rar_Linux shell"的压缩包文件显然包含了一个关于Linux Shell的教程,旨在帮助用户深入理解和掌握这个强大的工具。其中的"Linux Shell Tutorial.chm"是一个帮助文档,很可能包含了...
### 学习笔记-基础Shell编程 #### 一、Shell编程概述 Shell编程是指利用Shell命令语言编写脚本来实现特定功能的过程。Shell不仅是Linux操作系统下的命令行解释器,还是一种强大的脚本语言,广泛应用于自动化任务...
LINUX课程设计-shell编程 ...本资源摘要信息总结了LINUX课程设计-shell编程的主要知识点和要求,涵盖了Linux操作系统、Shell编程、用户信息管理等方面的内容,为学生和教师提供了一个系统的学习和教学资源。
linux运维学习笔记:企业Shell面试题总结-2
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
### Shell学习笔记 #### Shell的发展与分类 Shell作为Unix及类Unix系统(包括Linux)的主要用户界面之一,其历史可以追溯到20世纪70年代。最初,Shell仅仅作为一个简单的命令解释器,随着时间的推移,它发展成为了...
通过学习《Linux高级Bash Shell脚本编程指南》,你将能够编写出更复杂、更智能的脚本来自动化工作流程,提升工作效率,同时也会对Linux系统的管理有更深的认识。无论你是新手还是经验丰富的开发者,这本书都将帮助你...
### 学习Linux---不得不知的Linux命令 在Linux操作系统中,掌握一系列基本且重要的命令是每个用户必备的技能之一。这些命令可以帮助我们更高效地管理服务器、进行日常操作及故障排查等工作。以下是对给定内容中列出...