Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐: 强烈推荐:Ylmf OS 3.0 正式版发布附迅雷高 XP系统下硬盘安装Fedora 14图文教程
搜索:
您的位置: Linux安全网 > Linux入门 > » 正文

第一章 linux shell入门

来源: [标签:出处] 分享至:

    一 、什么是linux—— linux的4个主要部分:

    1、linux内核

    2、GNU使用程序

    3、图形桌面环境

    4、应用软件

     

    1、了解linux内核——kernel控制计算机系统上的所有硬件和软件

    linux kernel的四大功能:

    1)系统内存管理

    2)软件程序管理

    3)硬件管理

    4)文件系统管理

    1)系统内存管理:kernel不仅可以管理服务器上的物理内存,还可以创建和管理虚

    拟内存,内存管理必须使用硬盘空间,该空间称为交换空间(swap space)大小一般设

    置为物理内存的2倍。

    什么是虚拟内存?

    Linux支持虚拟内存(virtual memory),虚拟内存是指使用磁盘当作RAM的扩展,这样可

    用的内存的大小就相应地增大了。内核会将暂时不用的内存块的内容写到硬盘上,这样一来,这

    块内存就可用于其它目的。当需要用到原始的内容时,它们被重新读入内存。这些操作对用户来

    说是完全透明的;Linux下运行的程序只是看到有大量的内存可供使用而并没有注意到时不时它

    们的一部分是驻留在硬盘上的。当然,读写硬盘要比直接使用真实内存慢得多(要慢数千倍),所

    以程序就不会象一直在内存中运行的那样快。用作虚拟内存的硬盘部分被称为交换空间。

    将内存位置分组为多个数据块称为分页,默认情况下,在linux系统上运行的每个进

    程都有自己专用的内存分页,内核跟踪使用的内存分页,并自动将一段时间内没有访问

    的内存分页复制到交换空间。

    查看内存使用情况:cat /proc/meminfo

    查看系统当前使用的共享内存分页:ipcs -m

    2)软件程序管理

    linux将正在运行的程序称为进程。

    3)硬件管理

    linux系统需要在内核中插入与之通信的设备的驱动程序代码,使内核能像设备传输数据。在

    linux内核中插入设备驱动程序代码有两种方法:

    在内核中编译驱动程序;

    想内核添加驱动程序模块

    linux将硬件设备标识为特殊文件,即设备文件,设备文件可以分为3类:

    字符,例如大部分调制解调器、终端类型

    块 ,例如磁盘驱动器

    网络 。例如网卡

    4)文件系统管理

    什么是文件系统(filesystem)呢?

    当前的操作系统大多数是从硬盘读数据的,每个操作系统使用的硬盘在x86架构上的都一

    样,都是同样的硬盘。但是,每种操作系统都有其独特的读取文件的方法,也就是说,每种

    操作系统对硬盘读取的方法不同,就造就了不同的文件系统。

    Linux的核心如何管理这些文件系统呢?

    整个Linux系统都通过虚拟文件系统交换(Virtual Filesystem Switch)的核心功能去读

    取文件系统。也就是说,整个Linux认识的文件系统其实都是VFS在管理,系统管理员编译内

    核以支持系统将使用的文件系统,VFS与每个文件系统进行连接,为内核与其他文件系统类型

    的通信提供一个标准接口。

    linux系统支持的文件系统

    文件系统

    描述

    ext

    extlinux扩展文件系统——原始linux文件系统

    ext2

    第二代扩展文件系统,提供比ext更高级得功能

    ext3

    第三代扩展文件系统,支持日志功能

    hpfs

    OS/2高性能文件系统

    iso9660

    ISO9660 文件系统(CD-ROM)

    minix

    MINIX文件系统

    msdos

    microsoft FTA16

    ncp

    netware文件系统

    ntfs

    支持microsoft NT文件系统

    nfs

    网络文件系统

    proc

    访问系统信息

    ReliserFS

    高级linux文件系统,性能更加而且支持磁盘恢复

    smb

    samba 文件系统,支持网络访问

    sysv

    旧式UNIX文件系统

    ufs

    BSD文件系统

    umsdos

    类似unix的文件系统,寄存在MSDOS上

    vfat

    windows 95文件系统,(FAT32)

    jfs

    IBM的日志文件系统

    XFS

    高性能64位日志文件系统

    2、GNU实用程序

           除了使用内核控制硬件设备外,计算机操作系统需要实用程序执行标准功能,如控制文件

    和程序,尽管Linus创建了linux内核,但他没有系统实用程序去运行它, 与此同时,Internet 上

    有一群人在尝试开发一套标准的计算机系统实用程序,用于模拟流行的Unix系统。GNU组织(

    GNU is not Unix)为了给大家提供一个类似Unix的环境,开发了一个完整的Unix实用程序集,

    而且是开源的,但是没有操作系统去运行它们。

    于是,Linus的linux内核与GNU操作系统使用程序结合诞生了一个完整、强大的免费操作系统。

    GNU提供给linux系统的核心实用程序包称为coreutils软件包。

    GNU coreutils软件包由三部分组成:

    1) 处理文件的实用程序

    2)操作文本的实用程序

    3)管理进程的使用程序

     

    二、linux发行版

    各种linux发行版可分为三个类型:

    1、完整核心发行版

    2、特定发行版

    3、LiveCD发行版

    核心linux发行版包括内核、一个或多个图形桌面环境,以及几乎所有的linux应用程序,它针

    对内核进行了预编译,只需该发行版即可完整安装linux。如red hat ,fedora,opensuse,debian

    特定发行版通常以一个主要的发行版为基础,但只包含对特定领域有用的应用程序子集,如

    Ubuntu是供学校和家庭使用的免费发行版。

    liveCD,无须在硬盘上安装即可从CD启动PC,并运行linux发行版。

     

    三、shell 是什么、shell中的特殊字符

    linux中的shell——命令解析器、程序语言,系统管理的重要工具。

    shell的种类:ash、bash、korn、csh、tcsh、zsh

    ash :简单的轻量级shell,运行于低内存环境,但与bash shell 完全兼容。

    korn:与bourne shell兼容的编程shell,但支持高级编程功能,如关联数组和浮点算法

    tcsh: 在shell脚本中吸收了c编程语言元素的shell

    zsh :吸收了bash、tcsh、korn等shell功能的高级shell,还提供高级编程功能、共享历史

               文件和主题提示符。

    GNU/linux系统中标准的shell——bash shell

    大部分linux发行版包含多个shell

    查看shell的类型:

    默认使用的shell

    [root@localhost ~]# echo $SHELL

    /bin/bash

    支持的shell

    [root@localhost ~]# cat /etc/shells

    /bin/sh

    /bin/bash

    /sbin/nologin

    /bin/tcsh

    /bin/csh

    /bin/ksh

    查看bash shell的版本:

    [root@localhost ~]# echo $BASH_VERSION

    3.2.25(1)-release

    编译安装最新版的bash

    http://ftp.gnu.org/gnu/bash 原始下载点

    http://ftp.twaren.net/UNIX/GNU/gnu/bash

    tar -xvzf bash-…….

    cd bash-……

    ./configure 默认安装到/usr/local/bin中,--prefix= 指定安装到某个目录下

    make 编译

    make tests 测试

    ./bash

    echo $BASH_VERSION

    make install 安装

    切换使用新版的bash shell——chsh (change shell)

    [root@localhost ~]# echo /usr/local/bin/bash >> /etc/shells

    把bash的安装路径加入/etc/shells文件中

    [root@localhost ~]# chsh

     

    通配符和转义字符

    通配符:

    * :代表任意字符串

    ?:代表一个字符,但不可为空

    例:

    ls /usr/bin/* 列出指定目录下的所有文件

    ls /usr/bin/??? 列出指定目录下文件名长度为3的文件

    ls *zip*

    ls py??o??

    转义字符:

    :使后接的字符恢复其原来作为单纯字符的用途,即出去特殊字符的作用

    [root@localhost ~]# echo 9*9 = 81

    echo: No match.

    [root@localhost ~]# echo 9*9=81

    9*9=81

    [root@localhost ~]# echo \'9*9 = 81\'

    使用单引号也行,但单引号内不能出现单引号就算有转义字符也不行

    9*9 = 81

    [root@localhost ~]# echo \'this is jack/s cat\'

    this is jack/s cat

    [root@localhost ~]# echo \'this is jack\'s cat\'

    Unmatched \'.

    [root@localhost ~]# echo this is jack\'s cat 正确的用法应该是以下三种

    this is jack\'s cat

    [root@localhost ~]# echo "this is jack\'s cat"

    this is jack\'s cat


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史