跟着鸟哥学Linux系列笔记0-扫盲之概念

跟着鸟哥学Linux系列笔记0-如何解决问题

跟着鸟哥学Linux系列笔记1

跟着鸟哥学Linux系列笔记2-第10章VIM学习

认识与学习bash

1. 硬件、内核与shell

2. 用户界面《=====》核心Kernal(cpu进程,内存管理、磁盘输入输出)《=====》硬件

3. Shell定义:只要能够操作应用程序的接口,狭义的shell指的是命令行方面的软件,包括bash,广义的shell则包括图形界面的软件

为何要学shell:

1. 命令行界面的shell支持所有distribution

2. 远程管理,命令行界面快

3. Linux的任督二脉

bash简称:Bourne Again SHell

shell命令存储于/etc/shells/...,shell有多种:sh, bash, ksh, tcsh, csh, zsh

bash shell 功能:

命令记忆能力(history),默认记忆功能达到1000个,记录在~/bash_history

命令与文件补全功能(tab多按几次就知道了)

命令别名设置功能(alias): ln='ls -al'

作业控制,前台,后台控制(job control, foreground, background)

脚本程序(shell script)

通配符(wildcard): ls -l /usr/bin/X*

bash shell 内置命令:type,用于查看是内置bash命令还是外部命令

  type [-tpa] name

  type ls

  type cd

  type -t ls

shell 的变量功能

  变量的可变性与方便性

  影响bash环境操作的变量:PATH, HOME, MAIL, SHELL

  脚本程序设计(shell script)的好帮手

  变量就是以一组文字或符号等,来替代一些设置或是一串保留的数据

变量的显示、设置:echo, unset

  输出变量:echo $PATH 或echo ${PATH}

  设置变量值:myname=Garin

  变量定义规则:

    1. 等号两边之间不能有空格

    2. 变量名只能是英文字母与数字,但开头不能为数字

    3. 若有空格,则使用双引号:双引号内可以使用变量

            或单引号:单引号内不能使用变量(命名规则跟PHP字符串相似)

    4. 可以使用转义字符"\",将特殊符号变为一般字符

    5. 反单引号"`",提供其他命令提供的信息:

      例如:取得内核版本:version=$(uname -r) 或version=`uname -r`

                echo `version` /echo $version

    6. 若变量需要修改,则可用"$变量名称"或${变量}累加内容

        PATH="$PATH":/home/bin

    7. 若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量,例:export PATH

    8. 通常大家的字符为系统默认变量,自行设置变量可以使用小写字符,方便判断

    9. 取消变量的方法为使用"unset 变量名称"

        unset myname

子进程:在目前这个shell情况下,去打开另一个新的shell,新的shell就是子进程,在一般状态下,父进程的自定义变量是无法在子进程内使用的,但是通过export将变量变成环境变量后,就能够在子进程下面应用了

例如:如何进入到你目前内核的模块目录:

  cd /lib/modules/`uname -r`/kernal

  cd /lib/modules/${uname -r}/kernal

环境变量的功能:

nev: 查看环境变量与学见环境变量说明

HOME: 可以直接cd去

SHELL: 目前使用的是哪个shell程序,默认/bin/bash

HISTSIZE: 历史命令条数

MAIL: 读取邮件信箱文件

PATH: 文件路径

LANG: 重要,语系数据,很多信息都会用到它,中文编码通常是zh_CN.gb2312或zh_CN.UTF-8

RANDOM: 在bash下随机数范围为0~32767,例如取得0~9之间的随机数:

  declare -i number=$RANDOM*10/32767

  echo $number

set查看所有变量(包含环境变量与自定义变量)

与目前shell操作接口有关的变量,通常会被设置为大写字母,以下为比较重要的环境变量:

  PS1: 提示符的设置(登录进Linux后会显示的字符)

    \d: 日期格式;\H: 完整的主机名;\h: 仅取主机第一个小数点之前的名称;\t: 显示时间为24小时格式;\T: 显示时间为12小时格式

    \A: 显示时间格式24小时格式:HH:MM;\@: 显示时间,12小时,am/pm;\u:目前用户的帐户名称如root;\v: bash版本信息

    \w: 完整的工作目录名称,主文件夹会以~替代;\W: 利用basename函数取得工作目录名称;\#: 执行的第几条命令

    \$: 提示符,如果是root时,提示符为#,否则是$,

    例如提示信息为:[root@www /home/dmtsai 16:50 #12]#

            PS1='[\u@\h \w \A #\#]\$'

  $(关于本shell的PID)

    $本身也是个变量,这个代表的是目前这个shell的线程代号,即是所谓的PID(ProcessID), 用echo $$, 可显示PID号码

  ?(关于上个执行命令的回传码)

    问号也是一个特殊的变量,这个变量是上一个执行的命令所回传的什,当一个命令执行后会有一个返回值,若命令执行成功,就会返回0, 若发生错误,则会返回错误码,打印上一个命令的错误码:echo $?

  OSTYPE, HOSTYPE, MATCHTYPE:主机硬件与内核等级

  export:自定义变量转成环境变量

    自定义变量与环境变量的区别就是该变量是否会被子进程所继续引用,bash有子进程,子进程会继承父进程的环境变量,但不会继承环境变量

  影响显示结果的语系变量:locale

    查询linux到底支持多少语系:locale -a

    语系文件放在/usr/lib/locale

    系统默认语系定义在:/etc/sysconfig/i18n

  变量的有效范围

跟着鸟哥学Linux系列笔记3-第11章BASH学习的更多相关文章

  1. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  2. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  3. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  4. 跟着鸟哥学Linux系列笔记0-扫盲之概念

    相关缩写全称: POSIX(Portable Operation System Interface):可携式操作系统接口,重点在于规范内核与应用之间的接口,由IEEE定义发布 IEEE: 美国电气与电 ...

  5. 鸟哥的Linux私房菜——第十六章:学习Shell Scripts

    视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script       (shell写的脚本)1.1 干嘛学习 shell s ...

  6. 鸟哥的linux私房菜——第十六章学习(程序管理与 SELinux 初探)

    第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的 ...

  7. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)

    第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...

  8. 鸟哥的Linux私房菜——第十九章:例行命令的建立

    视频链接:http://www.bilibili.com/video/av11008859/ 1. 什么是例行性命令 (分为两种,一种是周期性的,一种是突发性的)1.1 Linux 工作排程的种类: ...

  9. 鸟哥的Linux私房菜——第十四章:Bash Shell

    视频链接:http://www.bilibili.com/video/av10094012/ 本章目录: 1. Bash shell1.1 什么是 shell ? (我们通过shell与Kernel核 ...

随机推荐

  1. HTK学习2:工具使用

    选自:http://www.cnblogs.com/mingzhao810/archive/2012/08/03/2617674.html 这个是重点,呵呵,本部分会讨论到如下内容: 1. 建立语音材 ...

  2. python操作Excel文件

    参考: http://www.cnblogs.com/tianyajuanke/p/4048844.html http://blog.chinaunix.net/uid-24701781-id-334 ...

  3. 为什么学习c++?该怎么学?

    本人最近刚开始学习C++,准备记录下学习C++的历程.以下都是记录欢迎指教. 第一堂课,我们的老师告诉我们为什么学习C++,学习C++有啥用?这我也想了.但是我不了解C++,所以肯定是想不了多少的. ...

  4. springMVC 访问404

    问题:404 但是其他的controller可以访问!!!

  5. Windows下配置Java开发环境

    学习Java第一步是配置本地开发环境,学习最基本的桌面开发,下面以win7为例配置Java开发环境,即:JDK+JRE+Eclipse,安装JDK的时候会默认安装JRE,根据提示安装就可以了. 首先去 ...

  6. 去掉mysql数据库字段中的个别字符

     update 表名 set 列名 = REPLACE (mcategory,"要去掉的字符","") where 列名 like "%要去掉的字符% ...

  7. Divide and conquer:Garland(POJ 1759)

     挂彩灯 题目大意:就是要布场的时候需要挂彩灯,彩灯挂的高度满足: H1 = A Hi = (Hi-1 + Hi+1)/2 - 1, for all 1 < i < N HN = B Hi ...

  8. jQuery中attr()方法用法实例

    本文实例讲述了jQuery中attr()方法用法.分享给大家供大家参考.具体分析如下: 此方法设置或返回匹配元素的属性值. attr()方法根据参数的不同,功能也不同. 语法结构一: 获取第一个匹配元 ...

  9. Android Multimedia框架总结(二)MediaPlayer框架及播放网络视频案例

    前言:前面一篇我们介绍MediaPlayer相关方法,有人说,没有实际例子,看得不是很明白,今天在分析MediaPlayer时,顺带一个播放网络视频例子.可以自行试试.今天分析的都是下几篇介绍各个模块 ...

  10. EF查询视图只得到一条记录

    1.出错结果:数据库表视图有多条数据,在使用EF框架进行查询时却只得到一条数据(注:拦截EF得到的sql语句在数据库进行查询并没有任务问题). 2.出错原因:该视图中没有ID或者主键,EF查询时进行反 ...