开始正式学习

回顾:

ROM:只读存储器,寻址地址空间的组成部分

RAM:随机存储器

南桥:低速

北桥:高速

将底层的细节隐藏起来,并提供一个统一的规范的,简介的接口提供出来,这就是操作系统的用途

posix 可移植操作系统(规范)

启动内核,启动外壳

init用来作为所有进程的父进程,由它来启动别的进程

linux被称为类unix,Unix—like

linux内核的官方站点

www.kernel.org

版本说明:

主版本号:此版本号、修正号

init:6以后使用Ubuntu研发的upstart,7以后可能使用systemd

shell:bash 

源码:

linux发行版:

RadHat

SuSE

Debian

LFS:

bt:BackTrace

管理包工具:

RadHat,SuSE:RPM

Debian:deb

 硬盘:分区、格式化(创建文件系统)、选择语言、键盘布局、时区、设置用户、选择安装需求、

 安装程序:

 RadHat:anaconda支持自动安装,有kickstart、cobbler

 Linux终端:

 物理终端、

 /dev/console

 串行终端、

 /dev/ttys#

 虚拟终端(Ctrl+Alt+F(1-6))

 /dev/tty#(数字)

 图形终端Ctrl+Alt+F7,

 伪终端(远程终端、图形界面下的终端)

 /dev/pts/#(数字)

 startx 启动图形界面

 Ctrl+c:取消正在执行的命令

 &立即释放命令提示符(后台执行)

 shfit+PageUp/PageDown:翻屏

 

tty命令:显示当前终端对应终端设备文件

who 查看当前系统上登陆的所有账号的命令

who am i 查看当前终端登陆的账号


linux哲学思想:

1.一切皆文件

2.由众多目的的单一应用程序组成:一个程序只做一件事,且做好

3。组合目的的单一的小程序完成复杂的任务

4.尽量避免跟用户交互

5.使用文本文件保存配置信息

6.提供机制,而非策略


自由软件的含义:

    自由使用

    自由学习和修改

    自由分发

    自由创建衍生版


shell:

   GUI:

      Windows

      Gnome

      KDE

      Xfce

   CLI:

      bsh

      csh

      tcsh

      ksh

      bash

      zsh

bash 

   管理员:提示符 #

   普通用户 提示符 $

   环境变量:

      PS1:一级提示符

变量:是一段内存空间,

       echo 回显

       引用一个变量${变量名}

 宏:

 echo $PS1

 [\u@\h \W]\$

  \u:当前用户

  \h:主机名

  \W:工作目录的路径基名

  基名:当前目录的最后一段

  basename 显示当前目录的基名

  dirname  显示当前目录的目录名

对于linux来讲,路径分隔符:/

绝对路径:从顶层开始的路径

相对路径:从当前位置开始的路径

目录是路径映射符

 


linux文件系统结构:

层次化

在启动的时候需要使用文件,需要载入内存,有一个分区作为起始分区,这个分区被称为根分区

根是由内核直接访问的

挂载

卸载

每个用户都有自己所有操作权限的目录,这个目录称之为家目录(主目录)

每次登陆目录,一定处在某个目录中

工作目录:当前所处的目录,叫做工作目录

cd:change directory

 cd 目标目录


Linux文件系统的特性:

1、文件名可以使用除/意外的任意字符,但总长度不能超过255个

2、严格区分大小写



如何获取命令帮助:

bash中,命令分为:

内部命令:在bash中内部实现的命令叫做内置命令

外部命令:在文件系统上的某个位置有一个与命令名称对应的可执行文件

如何判断:?

使用type命令

shell 事先通过一个变量设定好了多个路径,当用户输入命令时,shell会自动到这些路径(由左向右)以此查找与命令名称相同的可执行文件

hash 用来保存以前曾经执行过的命令,以哈希表的方式保存,可以通过hash来查看

查看一个可执行程序的具体路径:使用 which+程序名来查看

获取帮助:

    内置命令:

    # help 命令名

    外部命令:

     # 命令 --help

     有使用手册

     # man 命令(先解压后显示)

      里面有很多段落:

        NAME

SYNOPSIS 格式

OPTIONS 

EXAMPLES

DESCRIPTION

      使用帮助中命令格式中的字符意义:

      []:可选的部分

      {a|b}:分组,a和b作为一个使用单元来使用

      |:或者,只能选其一

      <>:必不可少的部分

      ...:同类内容可以出现多个

      简要使用机制

      翻屏:

       空格键:向文件尾部翻一屏

       b:向文件首部翻一屏

       回车键:向文件尾部翻一行

       k:向文件首部翻一行

       ctrl+d:向文件尾部翻半屏

       ctrl+u:向文件首部翻半屏

       1G:第一行

       G:最后一行

       文本搜索:

        /keyword : 顺向,向文件尾部搜索

查看下一个被匹配到的

 n 跟命令方向一致

 N 跟命令方向相反

?keyword : 逆向,向文件首部搜索

       q:退出

  补充:man其实能为命令(普通命令、管理命令)、程序的配置文件格式、系统调用、库调用、游戏及其他不便归类的文件提供帮助手册

        man命令的分段机制:

1:用户命令:

2:系统调用

3:库调用

4:设备文件

5:文件格式

6:游戏

7:杂项

8:管理命令

 命令的使用格式:

  command options arguments

  命令   选项    参数

  选项:调整命令的执行特性的

     选项可以有多个,多个选项之间必须以空格分隔

     短选项:-char(字符)

     长选项:--word(单词)

     两个短选项可以合并,长选项一般不可以合并

     有些选项需要有参数

  命令参数:命令的作用对象:

          有些命令可以带多个参数,各参数之间需要使用空格隔开

  查看某关键字在哪些段落有使用帮助

   whatis Keyword 精确查找

   提示:如果whatis的数据库尚未生成,可以使用makewhatis手动进行

   man -k Keyword 模糊查找

info 命令:获取在线文档

很多应用程序自带的有文档:/usr/share/doc

   ChangeLog INSTALL README

 google:

   linux filetype:ppt 特定格式

   keyword site:magedu.com

Redhat官方文档

 www.redhat.com/docs


 shuitdown,如何关机和重启;

 reboot halt date hwcolck



  export LANG=en

  将语言设置为en

系统管理类的命令

     shutdown [option]...TIME

      -r :重启

      -h :关机

      -c:取消重启或关机命令

      时间格式:

      now

      +#:#分钟以后

      hh:mm

      reboot 一般情况下是调用shutdown进行关机处理

      halt

      poweroff


日期时间管理类命令

date,hwclock

date 显示当前系统时间

date MMDDhhmm[cc]YY.ss

date[+FORMAT]

%Y:四位年份

%y:两位年份

%m:月

%M:分钟

%d:日

%h:英文简写的月

%H:时

%S:秒

%s:现在距离1970年1月1号0点0分(unix元年)的秒数,timestamp(时间戳)

%D:月/日/年

%F:年-月-日

%T:时:分:秒


hwclock

  -s:以硬件时钟为准 --hctosys

  -w:以软件时钟为准 --systohc

Linux有两个时钟

硬件时钟:

软件时钟:开机时读取硬件时钟

cal 日历

 bash的特性至二:


命令行展开:能够把一个特殊字符换成别的字符

{,}展开为多个条目

文件和目录管理类的命令

  目录:

      cd ~[username]

      ~:指定用户的家目录

      cd -:回到上一次所在的目录

   路径:

     相对路径中:

     .:当前目录

     ..:父目录

pwd: print working directory 显示当前目录

mkdir:创建目录

-p:先创建父目录

-v:显示详细信息

rmdir:删除空目录

     -p:只能删除一线单的目录

shell的引用:

‘’:强引用,变量替换不会进行

"":弱引用,能够执行变量替换

``:命令替换,引用命令的执行结果,另外一种方式$()

变量替换:${变量名}

echo 显示



shell的特性之三:命令历史

bash默认会保持此前执行过的命令列表

  当前shell进程的保存在缓冲区中:

  缓冲区中的命令会在shell退出的保存在文件中 .bash_history

使用上下箭头键可以翻看此前执行过的命令:

history:

   !数字:执行history中第数字条的命令

   !!:上一条命令

   !-数字:表示执行命令列表中的倒数第数字条命令

   !$:执行上个命令中的最后一个参数:ESC,.

   !string:执行命令列表中的最近一次以string开头的命令

   -d 数字 删除第数字条记录

   -c 清空history列表

   -a:追加当前回话的命令到历史列表中去

   -n:读取所有在回话列表中的 但是不在当前回话列表中的

 命令历史相关的环境变量

  HISTSIZE:历史命令中可以保存的个数

  HISTFILE: 历史命令保存的文件

  HISTFILESIZE:历史文件中可以保存的命令个数

  HISTCONTROL:控制命令历史的生成机制

               ignoredups:忽略记录重复的命令,连续的相同命令

      ignorespace:以空格开头的命令不会被记录

      ignoreboth:同时具有上面两种特性



补充:Linux文件系统的另一个特性:以点开头的文件为隐藏文件 通过ls -a 查看


shell中的变量赋值

     变量名=值

     注意:变量在赋值是不能再前面带$

           变量名只能包含字母、数字和下划线,并且不能以数字开头

  变量名区分大小写

  尽量能见名知义




FHS:文件层次标准

    操作系统自身运行使用的

    /bin: 存放可执行的二进制程序,管理员和普通用户都可以使用

    /sbin:管理员才能执行的命令

    运行正常功能的程序存放位置

    /usr/bin

    /usr/sbin

    用来存放第三方软件的程序

    /usr/local/bin

    /usr/local/sbin

/boot:存放系统引导文件:内核、ramfs文件、bootloader(grub)

/dev:设备文件存放目录

/etc:配置文件的集中存放目录

    /etc/sysconfig:系统级别的应用

    /etc/init.d:系统服务脚本

 /home :普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录

 /root:管理员的家目录

 /lib,/lib64:库文件

/media:专用挂载位置,通常用来挂载便携式设备

/mnt:专用挂载位置,挂载额外的存储设备

/misc:杂项,备用目录

/opt:可选目录,但通常用来安装第三方软件

/proc:所显示的文件都不是文件,伪文件系统,运行中的内核参数的映射

/sys:伪文件系统,系统级别的用于配置硬件设备相关的参数

/srv:为服务提供数据存放位置的

/tmp:临时文件系统:默认存放30天

/usr:shared 所有遵循协议的系统都可以使用,readonly 只读

   /usr/include:头文件存放位置

/var:经常发生变化的文件

    /var/log

    /var/lock

    /var/run

    /var/cache


文件管理类的命令:

文件类型

bash的其他特性:

shell管道和重定向:

文本编辑器:正则表达式

文件查找: