`
tiankefeng0520
  • 浏览: 147317 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Linux学习记录--shell简介

阅读更多

shell

 

命令类型查询:type

读入配置文件:source

 

操作系统内核(kernel)负责管理整个计算机硬件,但是这个内核是需要保护的,用户不能直接操作内核,因此就需要一个可以帮助我们操作内核的工具。Shell功能就在于此,他可以将我们输入的命令与内核通信,好让内核可以控制硬件来正确无误地工作

 

我们使用的是linux默认shellbash 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]* 
0
0
分享到:
评论

相关推荐

    Linux学习笔记Linux学习资料Linux教程

    【linux学习笔记-16】shell管道重定向程序的实现.doc 【linux学习笔记-1】使用GDB调试简单的用户程序.doc 【linux学习笔记-2】父子进程共享文件描述符.doc 【linux学习笔记-3】文件操作(stat,chmod,umask).doc ...

    非常宝贵的LINUX学习笔记

    【linux学习笔记-1】使用GDB...【linux学习笔记-16】shell管道重定向程序的实现 【linux学习笔记--17】POSIX IPC——消息队列 【linux学习笔记--18】POSIX IPC——信号量 【linux学习笔记--19】POSIX IPC——共享内存

    Linux学习笔记-很不错适合linux入门者

    这份“Linux学习笔记-很不错适合linux入门者”文档恰好为初学者提供了一个很好的起点。 首先,笔记可能会从Linux的起源和发展讲起,包括Linux之父Linus Torvalds创建Linux内核的故事,以及GNU项目与自由软件运动...

    record-linux-shell-history.rar_history_shell

    标题提到的"record-linux-shell-history.rar_history_shell"显然与Linux Shell历史记录的管理和保存有关。下面我们将深入探讨Linux Shell历史功能及其相关的知识。 1. **Shell历史记录功能** - Linux中的Shell,如...

    兄弟连linux教程1-16章学习笔记(全)

    《兄弟连Linux教程1-16章学习笔记》是一份全面涵盖Linux基础知识的学习资料,特别适合初学者和希望快速提升Linux技能的人群。这个压缩包包含了一系列文本文件和辅助图片,旨在帮助用户深入理解Linux系统的基本操作和...

    Linux学习笔记-超全总结值得一看(带标签目录)- 154页.pdf

    【Linux学习笔记】这篇超全总结涵盖了Linux操作系统的基础知识,特别是关于命令行的使用和快捷键,以及一些桌面环境下的快捷操作。以下是笔记中的主要内容: 1. **LINUX常用操作命令**: - `clear`:清空终端屏幕...

    linux学习笔记-01linux操作基础

    ### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...

    一起回顾一下linux常用命令----shell和unix和linux命

    如果你希望深入学习,可以阅读《The Linux Command Line》等经典书籍,或者参考CSDN博客上的"一起回顾一下linux常用命令 - sunxing007的专栏"等在线资源,如uuu.rar中可能包含的相关教程或笔记。 记住,Linux命令行...

    Linux学习笔记-初学者

    ### Linux学习笔记-初学者 #### 一、Linux分区命名规则及理解 Linux系统中的分区命名规则对于初学者来说非常重要,因为这直接影响到如何管理和识别不同的存储设备。下面详细介绍几个关键概念: - **MBR(Master ...

    linux学习笔记-2

    ### Linux学习笔记精要 #### 一、Linux操作系统概述与常用命令 - **Shell与GUI**: Linux系统提供了两种主要的用户交互方式,图形用户界面(GUI)如Gnome和命令行界面(CLI)如Bash。GUI适合初学者,而CLI对于高效地...

    尚硅谷Linux学习笔记(不包含shell)超级详细版

    我自己看完韩顺平老师在尚硅谷发布的新版的Linux的视频,看到了在Linux下安装Tomcat,JDK这个地方,不包含shell编程的笔记。因为以前我觉得Linux很难,所以一直想学会,这次笔记做得比较详细。另一个亮点是使用...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    在Linux学习笔记中,你将接触到以下几个关键知识点: 1. **命令行基础**:了解如何在终端中启动和使用shell,学习基本的文件和目录操作,如`cd`(改变目录)、`ls`(列出目录内容)、`touch`(创建新文件)、`mv`...

    Linux-Shell-Tutorial.rar_Linux shell

    这个名为"Linux-Shell-Tutorial.rar_Linux shell"的压缩包文件显然包含了一个关于Linux Shell的教程,旨在帮助用户深入理解和掌握这个强大的工具。其中的"Linux Shell Tutorial.chm"是一个帮助文档,很可能包含了...

    学习笔记-基础Shell编程

    ### 学习笔记-基础Shell编程 #### 一、Shell编程概述 Shell编程是指利用Shell命令语言编写脚本来实现特定功能的过程。Shell不仅是Linux操作系统下的命令行解释器,还是一种强大的脚本语言,广泛应用于自动化任务...

    LINUX课程设计-shell编程.doc

    LINUX课程设计-shell编程 ...本资源摘要信息总结了LINUX课程设计-shell编程的主要知识点和要求,涵盖了Linux操作系统、Shell编程、用户信息管理等方面的内容,为学生和教师提供了一个系统的学习和教学资源。

    linux运维学习笔记:企业Shell面试题总结-2.pdf

    linux运维学习笔记:企业Shell面试题总结-2

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    shell学习笔记-2018-01-09

    ### Shell学习笔记 #### Shell的发展与分类 Shell作为Unix及类Unix系统(包括Linux)的主要用户界面之一,其历史可以追溯到20世纪70年代。最初,Shell仅仅作为一个简单的命令解释器,随着时间的推移,它发展成为了...

    linux - Advanced Bash Shell Scripting Guide

    通过学习《Linux高级Bash Shell脚本编程指南》,你将能够编写出更复杂、更智能的脚本来自动化工作流程,提升工作效率,同时也会对Linux系统的管理有更深的认识。无论你是新手还是经验丰富的开发者,这本书都将帮助你...

    学习Linux---不得不知的Linux命令

    ### 学习Linux---不得不知的Linux命令 在Linux操作系统中,掌握一系列基本且重要的命令是每个用户必备的技能之一。这些命令可以帮助我们更高效地管理服务器、进行日常操作及故障排查等工作。以下是对给定内容中列出...

Global site tag (gtag.js) - Google Analytics