第一堂课
单元一:概述
UNIX由贝尔实验室(Bell Labs)发明。UNIX为AT&T的注册商标,所以其他公司开发的UNIX都有自己的名字,例如IBM的AIX,Sun的Solaris等。
UNIX中,任何事物都是文件。基于这个定理,UNIX的配置文件都储存在文本文件中,并可以将多个程序链起来完成复杂的任务。
GNU Project开始于1984年,由自由软件基金(FSF for Free Software Foundation)支持,目的是为了建立免费的UNIX系统。到1990年,建立了一套包括gcc,emac等在内的近乎完备的系统。
GPL=GNU General Public License。GPL鼓励自由软件,所有对遵循GPL的软件进行的改进和修改也都必须遵循GPL。
而Linux起源于1991年有个大学毕业生Linux Torvalds建立了一个叫做"Linux"的操作系统内核。虽然该内核当时只支持gcc和bash两个GNU产品,但它预示着组合Linux内核和GNU应用程序使得建立免费的类UNIX系统成为可能。
Linux具备的特性有:
#Linux是一个类UNIX系统
#支持多任务和多用户
#并有广泛的硬件支持(至少是越来越广泛)
#Red Hat发行版Linux提供了相当多Red Hat推荐的、普遍使用的、有用的程序。
Red Hat Linux是Linux的一个发行版本(distribution)。它具有的特性有:
#最新的系统内核
#常用的实用程序和应用软件
#安装和配置软件
#提供技术支持
Red Hat Linux推荐的硬件配置
#Pentium级以上的CPU
#128M内存
#600M-1.2G的硬盘空间,取决于使用目的。
#可启动的CDROM或者软驱
Linux在图形用户界面(GUI)环境上,提供标准的X Window系统:XFree86。两种桌面环境:KDE和GNOME,分别建立在Qt和GTK+开发包上。
单元二:快速教程
Linux用户环境组件包括:
#内核(Kernel)
#Shell
#终端模拟器(Terminal Emulator)
#X Window系统
#窗口管理器(Window Manager)
#桌面环境(Desktop Environment)
本地登录时,若是在虚拟终端中以文本界面登录,运行级别(runlevel)为3;当在图形界面登录是,运行级别(runlevel)为5。可使用init来切换runlevel,如 init 3 或者 init 5。
ls命令通常用于查看文件系统,Red Hat Linux使用“彩色的”ls来区分不同的文件。命令例如:
$ ls -lh 文件以KB大小列出并列出属性等详细信息
$ ls -a 列出所有文件(显示隐藏的以"."开头的文件)
$ ls -al 列出所有文件及其详细信息
$ ls -R 列出目录下所有子目录及文件
所有的硬件设备都是以文件形式存在的,只不过它们是特殊的文件,并存放在/dev目录下。设备分为块设备(block)和字符设备(character)两种。在用ls -l命令显示时,设备文件的类型会在属性的第一位以"b"或者"c"分别表示。块设备是可随机读写的设备,例如硬盘;字符设备必须是顺序读写的,比如串口。
进程(process)是一个正在执行的程序的实例(程序的一次运行),每个进程都有一个唯一的进程号PID,从1-32768取值。其中PID 1为init进程所保留。线程(thread)可以看作是一个进程内部的“小进程”,和系统中的进程有些相似。
用ps -ef和pstree可以罗列当前的进程列表。top可即时监视当前所有进程,gtop是一个图形界面的进程监视程序。
在命令行Shell中,最常用和最著名的是bash(Bourne Again SHell),也是Linux的缺省shell。bash的全局设置文件为 /etc/profile和 /etc/bashrc。当然还有其他的shell比如csh等。
两个以上的命令/程序的连续执行可使用分号“ ; ”。若需要连续执行命令并保证前一个命令没有返回错误的前提下执行下一个命令的话,可在命令间加上“ && ”。若命令在一行打不下或想人为换行,可在行末尾加“ \ ”然后回车,继续这个命令的后面的部分。
man命令后跟命令名可找到相应的帮助页面,按q 退出。例如man ls 或者ls --help。info 命令后跟section_name 可找到相应部分的帮助。在/usr/share/doc/HOWTO/ 中有编译好的HowTos可供查阅。
env 命令显示环境变量;set命令显示环境变量和本地shell变量。下面是一些通用变量:
PATH - 可执行文件搜索路径
PWD - 当前目录
TERM - 登录终端类型
SHELL - 登录Shell的路径
HOME - 用户的home目录
USER - 用户名
DISPLAY - X显示名
VISUAL - 可视化编辑器名
EDITOR - 缺省编辑器名
root用户拥有对系统的完全控制,用户号(UID)为保留的0。任何非特权用户的UID都大于0。可以用id 命令查看当前用户信息。用passwd 命令改变密码,密码长度应在6-255位之间,并且大小写敏感。passwd [用户名] 用来修改某特定用户的密码。
虚拟终端(virtual console)的设计支持非GUI的多重登录。缺省情况下有6个虚拟终端,可通过CTRL-ALT-F[1-6] 在之间切换。在虚拟终端中可使用Shift+PageUp和Shift+PageDown卷动显示。如果运行了X,则X用CTRL-ALT-F7 来切换。
单元三:文件与Shell基础
命令pwd(Print Working Directory)显示当前所在目录的绝对路径。cd 命令用于改变当前目录,后跟绝对路径或相对路径。绝对路径以“ / ”开始,而相对路径通常以“.”、“..”或者下级目录名开始。例如:
$ cd /tmp/mydir
$ cd ..
$ cd mydir
$ cd - (到前一个所在目录)
$ pwd
/tmp
每个用户都有一个home 目录,一般在/home 目录下。home 目录中包含了用户特定的配置和用户文件。字符“ ~ ”代表当前用户的home 目录。例如,当前用户为feng_ye,则他的home 目录下的某个文件就可以这样写:~/text/example.txt ,即/home/feng_ye/text/example.txt 。如果feng_ye用户可以访问别的用户home 目录,则~kim/text/another.txt 代表了kim用户home 目录下的text/another.txt 文件,即/home/kim/text/another.txt 。
文件名可以长达255个字符,以“ . ”开头的文件为隐藏文件,在ls 时必须加-a 显示才能看到。文件名一般来说避免在其中使用 / , >, <, ?, *, ", ' 和控制符号(不可打印的字符)。如果想要使用特殊字符,比如空格,那么将文件名用双引号“ " ” 括起来,例如:
$ ls -l "file name with spaces.txt"
或者
$ ls -l file\ name\ with\ spaces.txt
Red Hat Linux 和大多数Linux 发行版一样,遵循FHS(Filesystem Hierarchy Standar

投稿指南


