设为首页收藏本站language 语言切换
楼主: smile
收起左侧

[分享] 鸟哥私房菜之linux免费视频开播啦!!!!!!!!!!!!

  [复制链接]
发表于 2017-6-14 10:30:16 | 显示全部楼层
求资源求资源啊
3961# 2017-6-14 10:30:16 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-6-14 12:03:40 | 显示全部楼层
学习学习学习学习
3963# 2017-6-14 12:03:40 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-7-1 00:21:17 | 显示全部楼层
的点点滴滴多多多多多多多
3966# 2017-7-1 00:21:17 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-7-9 00:12:43 | 显示全部楼层
Linux系统学习第一天_Linux简介
1、        UNIX历史
UNIX操作系统诞生于60年代末期的Bell实验室
美国电话电报公司(AT&T)在70年代中期开始发行UNIX的非商业许可证
从70年代末开始在市场上出现了不同的UNIX商品化版本
解释:
a)        UNIX系统的发展历史UNIX操作系统诞生于60年末期,是由美国贝尔实验室计算科学研究中心的二位年轻的计算技术专家Ken Thompson 和Dennis Ritchie发明
b)        1971-72年期间Dennis Ritchie发明C,用C重写了UNIX
c)        1972年UNIX中首次实现了极为重要的“管道”(pipe)机制,这是进程间进行通信的重要手段,它们的实现,使UNIX中许多小的功能片断能方便地连接组装以完成复杂的功能,逐步形成了软件工具和工具间相互集成的概念。
d)        1974年美国电话电报公司(AT&T)开始发行UNIX的非商业许可证,随后的年代里开始出现各种版本的UNIX系统,其中最为著名的有加州大学伯克莱分校的BSD版UNIX,支持:页式管理的虚存系统•TCP/IP通信协议•进程通信机制Sockets,高速文件系统•vi全屏幕编辑程序•C-shell等
e)        1977年,AT&T公司开始向计算机软硬件厂商提供UNIX系统的商用OEM许可证,从而迈出了UNIX商品化的重要一步。从70年代末开始在市场上出现了不同的UNIX商品化版本,比较有影响的版本包括:SUN公司的SUNOS,Microsoft和SCO公司的XENIX,Interactive公司的UNIX386/ix,DEC公司的ULTRIX。后来陆续出现比较著名的UNIX系统包括:IBM的AIX,HP的HP-UX,SCO的UNIX和ODT,以及SUN的Solaris等产品。
f)        95年9月UNIX阵营发生了另一次重要变动,即HP,SCO,和Novell三家宣布结成新的联盟,共同推动发展UNIX技术,这是UNIX与NT竞争企业服务器平台主流地位决战前夜的一次力量的重新集结和部署。通过这此变动,SCO成为UNIX主流技术的拥有者,而且使HP和SCO二家公司成为开发企业服务器主流UNIX平台和下一代UNIX技术的领头者。
2、UNIX特点
•        可靠性高
•        伸缩性强
•        开放性好
•        植根于网络
•        面向数据库使用
解释:
可靠性高
实践表明,UNIX是达到主机(mainframe)可靠性要求的少数操作系统之一,许多UNIX主机和服务器在国外大中型企业中每天24小时,每年365天不间断地运行。这是NetWare、WindowsNT和OS2等操作系统所不能比拟的。不久前HP公司宣布关闭了最后一台主机系统,整个企业的所有信息处理工作全部由UNIX机器来承担。
伸缩性强
极度强的伸缩性 UNIX系统是世界上唯一能笔记本电脑,PC,直到巨型机上运行的操作系统,最近已宣布用于NC的UNIX系统。没有其他操作系统能做到这一点。此外,由于采用SMP、MPP、和Cluster等技术,使得商品化UNIX系统支持CPU数达到了32个,这就使得用一种平台的UNIX扩充能力有了进一步的提高。
开放性好
这是UNIX系统最重要的本质特征,也是UNIX强大生命力之所在。开放系统的概念已被计算机工业界普遍接受,而且成为发展的主要趋势。所有的计算机厂商都声称自己的产品是开放系统,而且开放的概念也在不断地发展和完善,它是一个覆盖面很宽的谱,几乎所有的系统都可在其中找到自己的位置。但程序上是有明显差别的,我们认为开放系统最本质的特征应该是其所用技术的规格说明是可以公开得到并免费使用的,而且是不受一家具体厂商所垄断和控制的。UNIX是最能充分体现这一本质特征的开放系统,正是这种较为彻底的开放性,使UNIX的发展充满动力和生机。
网络功能强
        这是UNIX系统的又一重要特色,特别是作为Internet网络技术基础的TCP/IP协议就是在UNIX上开发出来的,而且成为UNIX系统的一个不可分割的成分。UNIX几乎所有系统都包括对TCP/IP的支持。因此,在Internet网络服务器中,UNIX服务器占80%以上,占绝对优势。此外,UNIX支持所有最通用的网络通讯协议,其中包括NES、DCE、IPX/SPX,SLIP,PPP等,使得UNIX系统能方便地与主机、各种广域网和域网相连。
强大的数据库支持功能
由于UNIX系统对各种数据库,特别是关系型数据库管理系统提供了强大的支持能力,因此主要的数据库厂家,包括Oracle,Informix,Sybase,Progress等都将UNIX作为优选的运行平台,而且创造出极高的性能价格比。
3、        UNIX基本原则
所有对象,包括硬件都是文件
配置数据以文本形式保存
由短小的单目的程序构成
避免不必要的用户交互
可使用多个程序合作完成复杂任务.
解释:
一切都是文件
Unix 系统有强大的文件创建和操作功能.Unix的安全模型是基于文件的权限的,并且对所有对象的处理都沿用对文件的操作,保持了操作的一致性.也就是说你可以安全的对你的硬件设备做与文档同样的操作,例如数据写入和消息的发送!
配置数据以文本形式保存
编写文本是Unix中常见的配置系统和服务的方法,把配置保存在文本中方便了系统管理员在多台服务器之间移动配置文件,方便了系统管理员对配置参数的修改,方便了系统管理员对配置的备份恢复.
由短小的单目的程序构成
Unix 提供了许多很好用的短小精悍的程序,它们多被设计用来完成单一的任务.当有新的问题要处理时,明智的做法是设计一个简单的程序而非在以有的程序上再做扩充!
避免不必要的用户交互
在Unix中交互式的程序只是少数,大多数的命令从命令行接收操作符和参数然后把运行结果显示到屏幕上,如果运行出错则产生错误输出。交互式的程序交互的接收预先设定的指令,并产生相应的操作,如vi 等文本编辑器(当然,也有非交互式的文本编辑器)。
可使用多个程序合作完成复杂任务
Unix基本的设计理念是可以把一个程序的输出作为另一个程序的输入。这可以给用户更多的弹性,结合多个小程序来完成一个复杂的任务!
4、        GNU项目介绍
GNU是GNU’s not UNIX的缩写
1984,Project GNU  由Richard Stallman发起
GNU的基本体系是micro kernel
GNU的基本原则是共享
解释:
GNU Project开始于1984年,由自由软件基金(FSF for Free Software Foundation)支持,目的是为了建立免费的UNIX系统。到1990年,建立了一套包括gcc,emac等在内的近乎完备的系统
5、GPL–GNU通用公共授权
•        FSF,Free Software Foundation
•        Free Software的概念 不是免费(gratis)
•        copyleft
•        open source
解释:
著名的黑客Richard Stallman1983年启动GNU计划时提出了copyleft的想法。简而言之,他的目标是“开发一个完全免费的与UNIX兼容的操作系统”。作为目标的一部分,他创造了 GNU通用公共许可证(GPL),一个法定的版权声明,但附带(或,在技术上去除了某些限制),在条款中,允许对某项成果以及由它派生的其余成果的重用,修改和复制对所有人都是免费的。
标准的copyright确认作者的所有权和标志,同时禁止将类似作者的名字之类的标志使用在被歪曲的版本中; 同时也防止他人对该成果故意的歪曲以及毁坏。同时也有对成果复制与修改的限制。
Copyleft带有标准的copyright声明,确认作者的所有权和标志。但它 放弃 了标准copyright中暗含的一些其它权利:它声明,你不但可以自由分发该成果,你也可以自由地修改它。但你不能声明你做了原始的工作,或声明是由他人做的。最终,所有派生的工作必须遵循这些条款。
除了GPL授权还有其他一些开源的授权方式,例如像Netscape 或 BSD。
5、        Linux 起源
核心编写者 Linus Torvalds
自由的类Unix操作系统
遵循 GNU 和GPL
解释:
L i n u x操作系统可以说是U N I X操作系统的一个克隆体,它最初是在1 9 9 1年1 0月5日由它的作者 L i n u s T o r v a l d s 于芬兰赫尔辛基大学发布的。首次公布于c o m p . o s . m i n i x  新闻组上;同年11月,该系统0 . 1 0版被发行;一个月后,也就是1 2月,0 . 11版被发行。L i n u s允许免费地自由运用该系统源代码,并且鼓励其他人进一步对其进行开发。人们也的确开始这样做。今天,在L i n u s带领下,通过I n t e r n e t,一个世界范围内的开发组正在对L i n u x进行坚持不懈的开发。
6、为何选择Linux?
•        支持UNIX的API,可以实现所有UNIX的功能
•        遵循开源许可协议
•        多用户多任务系统
•        广泛的网络协议和配置支持
•        广泛的硬件支持
•        广泛的技术支持
解释:
Linux 一种类Unix操作系统
Linux是一种类Unix操作系统,原则上说,在Unix你可实现的功能和命令操作,使用Linux你也可以用同样的方式实现,虽然两者有略微的差异。
Linux遵循开源GPL许可协议
从根本上说,此协议规定三项内容:
1) 最初的创造者Linus Torvalds 保留版权。
2) 其他人可随意地处置该软件,包括对它进行修改、以它为基础开发其他程序以及重新发布或转卖它,甚至可以为了赢利而对软件进行销售,但源代码必须和程序一起提供。
3) 版权不能完全地被限制。这意思是说,如果你以一美元卖了一个产品,购买的人便可以以任何方式改变它(或者根本不对它进行改变),并且可以以十美元的价格卖给第二个人,或者无偿地奉送给一千个人。
多用户多任务系统
Linux的关键特点就是支持多用户多任务,多用户是指在同一时刻可以有多个用户同时登陆系统并完成各自的工作或操作,多任务是指在同一时刻用户可以有多个系统进程同时运行且完成各自的工作或操作。
7、Red Hat Linux
•        最新的系统内核
•        拥有常用的实用程序和应用软件
•        简单的安装和配置软件
•        提供技术支持
解释:
Red Hat Linux 是世界上最大的开放源代码软件公司,他拥有52%的Linux操作系统市场份额,在过去的一年中,Linux在服务器市场上的占有率超过27%,其增长率超过Windows操作系统4个百分点。
Red Hat Linux使用最新的内核,提供易用的安装和管理软件,且拥有良好的技术支持。
RHCE 是最富挑战的认证之一,他高含金量且为Linux的公认的认证标准。
8、推荐硬件配置(比较老了,新的可以自己百度)
•        奔腾系列或者更高的CPU
•        128 MB或更大的内存
•        最少600MB(文本模式)或1.2GB(图形模式)的硬盘空间
•        可以用于引导系统的CD-ROM或3.5寸软驱。
解释:
在这个表中列出的数字是在假定你只需要L i n u x操作系统提供的最小功能集合。如果你还想安装开发工具、GUI应用程序、电子邮件和We b浏览、网络功能、系统服务等等特色,系统的硬件要求会根据你需要安装多少种类特色功能而提高。一般情况下, CPU速度的快慢不如系统中安装的内存大小重要。计算机中的内存越多, L i n u x操作系统在其上就运行得也就越好。
9、Linux图形环境
XFree86:标准的Linux X Window系统
      XFree86 3.3.X
      XFree86 4.2.X
GNOME(The GNU Network Object Model Environment)--基于GTK的工具包
KDE    --基于QT的工具包
解释:
什么是X
X Window System 是UNIX系统上强大的网络透明的图形化作业环境,你可以叫它“X”或“X Window”。 X服务器程序提供了建立和运行G U I的引擎;窗口管理器程序提供了管理窗口本身(比如标题栏和滚动栏)的环境,桌面环境提供了一系列的工具程序和应用程序。这些工具和程序中的许多都可以让用户控制其环境的设置值(屏幕保护器、字体、图标、窗口尺寸等等方面),还可以让用户管理他们的机器(比如:基于G U I的挂装、Z i p档案文件以及网络管理工具等等)。这些工具越多、桌面环境越复杂,需要的内存也就越多,因此一定要把这一点记在心上。
最常用的X桌面环境
X图形界面中最经常被提起的两个桌面环境是G n o m e和K D E。
GNOME(The GNU Network Object Model Environment)的目标是在完全免费的基础之上提供一套完整的,友好的桌面系统。GNOME所做的工作与KDE有些类似的地方,它不仅做一套window管理器,而且通过CORBA技术使计算机之间,平台之间具有良好的互操作性。GNOME 是Red Hat Linux 默认的图形环境。
KDE是一个全新的桌面系统,其中包括window管理器,文件管理器,面板,控制中心和其他一些Unix工作站应用程序。这些元素之间配合默契,让人觉得就像是一个完整的操作系统。KDE一度因为QT库的不开放问题而被质疑,但2000年时QT库已经开始遵循GPL协议了!



Linux系统学习第二天_基础操作
1、Linux用户环境
•        内核(Kernel)
•        Shell
•        终端模拟器(Terminal Emulator)
•        X Window系统
•        窗口管理器(Window Manager)
桌面环境(Desktop Environment
解释:
Kernel
系统内核用于在计算机启动时载入基本内存、 管理基本输入输出、管理进程初始化和进程的调度。
Shell  
系统的命令解释器,用于操作系统与用户的通信,相当于Dos中的command.com。Red Hat Linux 默认的shell 是Bash !
Shell与系统及子进程的层次关系
                                        + - - - - - - - - - - - - - - - - - - - - - - +
                                         |                用户进程                 |
                                         | + - - - - - - - - - - - - - - - - - - - -+ |
                                         |  |                 shell                 |  |
                                         |  | + - - - - - - - - - - - - - - -- - -+ |  |  
                                         |  |  |              Kernel             |  |  |
                                         |  |  | + - - - - - - - - - - - - - - -+ |  |  |
                                         |  |  |  |          Hardware       |  |  |  |   
                                         |  |  | + - - - - - - - - - - - - - - -+ |  |  |
                                         |  | + - - - - - - - - - - - - - - - - - +  |  |
                                         | + - - - - - - - - - - - - - - - - - - - - +  |
                                         + - - - - - - - - - - - - - - - - - - - - - - -+
Terminal Emulator 用户交互的窗口界面
终端模拟器是用户shell运行的平台,在终端模拟器上用户可以交互的操作系统及运行程序并得到提示和反馈,就像在文本编辑器中一样。
X Window 以C/S模式提供的图形界面接口
在X中操作,你会重新找回Windows的感觉。当然不只是这样Red Hat Linux中图形界面的易用性已经有了显著的提高,并且通过像GTK+和QT这样的开放的开发工具包,你好可以创立自己的图形应用程序。
Window Manager 提供图形功能
Window manager是个可以帮你移动窗口和改变它们大小的程序。它通常也支持把一个窗口缩成一个图标或任务条。通常有某种程序执行机构。用户可以使用window manager来做他想做的——任何X应用程序应该可以在任何窗口管理器上工作。但是你一次只能能运行一个Window Manager。也就是说,你可以切换于任何多个window manager,但是同一时刻你只能运行一个。屏幕上的所有程序都可以被正在运行的window manager管理。
Desktop Environment 桌面环境
GNOME和KDE不是窗口管理器(它们是桌面环境)。KDE是和一个叫KWM的窗口管理器一起的。GNOME则没和任何窗口管理器做在一起,你可以使用任何你想用的窗口管理器,虽然有一些是特地为GNOME写的(Enlightenment就是一个)。但是它们都需要X来运行 。

2、本地登录
Red Hat Linux release 9.0  (Shrike)
Kernel 2.4.20-8 on an i686
login:root(用户名)
password:______(密码)
解释:
本地登录
本地登录分为字符方式(运行级别3即runlevel 3)登录与图形方式(运行级别5即runlevel 5)登录。上图中演示的是字符方式登录,当用户选择图形方式登录时,系统将运行xdm、gdm或kdm实现图形登录。
在字符方式登录时,用户的password不回显!你会看到如下显示:
Red Hat Linux release 9.0  (Shrike)
Kernel 2.4.20-8 on an i686
login:root                                     (用户名)
password:                                   (不回显的密码)
[root @stationxx root]#                    (系统提示符)
3、提示符与home目录
[root@stationXX root]#
•        [当前用户名@主机名 当前目录]
•        提示符因用户而异
•        home目录是用户登入系统后即所在的默认目录。
解释:
提示符与home目录
•        一个可用来登录的账号即是linux系统的固有账号 ,他可以拥有自己的文件、目录,并且对自己的文件或目录有相应的权限
•        特殊 root 被称为超级用户,对系统有至高无上的控制权,不受任何限制。
•        提示符的最后一个字符:超级用户使用#,一般用户使用$ 如:
   [root @stationxx root] #                        超级用户
   [kevinz @stationxx keinz]$                   一般用户
•        提示符和home目录是可以更改的
•        每一个用户的home目录可以用 ~ 来代表
•        一般来说,一般用户的home目录集中在/home目录下,root的home目录为/root
4、创建用户
#useradd [用户名]
#password [用户名]
•        example:
        [root@stationXX root]# useradd student
        [root@stationXX root]# passwd student
        Changing password for user student
        New password:                                      (无回显)
        Retype new password:                           (无回显)
        passwd: all authentication tokens updated successfully
        [root@stationXX root]#
解释:
•        useradd和adduser两个命令都可以使用。
•        在useradd创建用户之后,虽然用户已存在但不能使用,需使用password激活这个账号。
•        password可以用来更改密码。当更改的新密码是坏密码时,root会被警告,但仍可更改密码。一般用户则会被通知新密码被拒绝。
        好密码准则:
        至少6位但不多于255位
        包含至少一个非字母字符
        不是在字典中可以找到的词
        构成不是太简单,或与原密码一样
        不使用用户名作密码
        密码不是一个敏感字符串
        用一定意义且方便记忆
5、运行指令
•        指令名 [选项] [参数]
        例子: ls -l /etc/X11
•        帮助和在线帮助
        指令 --help
        例:mknod --help
        man 指令
        例:man mknod
        info 指令
        例:info mknod
解释:
在Linux中运行程序
•        指令名、选项、参数,每一项之间都应用空格格开,例如 :
    [kevinz@stationXX kevinz] $ ls –l /etc/X11
                                            ( ls 为指令名、 –l 为选项 、/etc/X11为参数。)
•        选项和参数并不是必须的。
•        许多选项前需要 “ --”开头,例如 ls --help 。
6、        基础指令(一)
man 的使用技巧
    man -k   keyword
    man -f    keyword
    man -a    keyword
    man  -n    keyword
解释:
•        man -k    keyword     在whatis 数据库中查找关键字;
•        man -f     keyword     同上,但keyword 为一个整字(whole word)
•        man -a    keyword     通常man 会显示第一个找到的keyword的man page,但是若需要找到全部的man page,使用-a 选项。
•        使用man来查询帮助时,有可能需要帮助主体前给出一个数字(例如 man 1 ls ),如果没有这个数字系统默认从1开始查找第一个匹配的项。
1                用户指令                        5        文件格式
2                系统调用                        6        游戏
3                库调用                            7        混合
4                特殊文件                        8        管理员用指令
例如:
[kevinz @stationxx kevinz] $ man 1 passwd   (得到命令passwd的帮助 )
[kevinz @stationxx kevinz] $ man 5 passwd   (得到文件passwd的帮助 )
7、基础指令(二)
•        ls        -        查看文件
•        cp        -        拷贝文件
•        mv        -        移动或重命名文件
•        rm        -        删除文件
•        touch-        创建空文件或更新文件时间
解释:
ls
ls是list的缩写,可以用来查看一个目录内有什么文件,或某一个文件是否存在。我们可以用ls -l 来察看文件的详细信息。ls相当于dos中的dir。
cp
cp是copy的缩写,可以用来将一个文件复制为另一个文件。所以cp的格式应该是cp[源文件][目标文件]。cp相当于dos中的copy。
mv
mv是move的缩写,可以用来将一个文件移动到另一个位置。同时,移动的过程中可以改变文件的名字,当目标文件名与源文件名不一致时,mv就起到了rename的作用。mv相当于dos中的move和rename。
rm
rm是remove的缩写,可以用来删除一个文件。rm相当于dos中的delete。
touch
touch可以用来创建一个空文件,但当touch的文件已存在时,touch会将当前的系统时钟赋予该文件。

7、        基础指令(三)
cd        -        改变当前路径
pwd-        察看当前完整路径
mkdir-        创立新目录
rmdir-        删除空目录
解释:
cd
cd [绝对路径/相对路径]可以用来改变用户的当前路径。cd .. (在cd和..之间有一个空格)可以回到上一层目录。直接键入cd可以回到该用户的home目录。cd相当于dos中的cd。
绝对路径和相对路径
以 / 开头的是绝对路径,在系统中是唯一的。没有 / 即相对路径,其实际位置要根据当前的路径来决定。
pwd
pwd是Print name of current/Working Directory的缩写,可以用来显示用户当前所在的绝对路径。
mkdir
mkdir是make directory的缩写,可以用来创立新的目录。相当于dos中的md。
rmdir
rmdir是remove directory的缩写,可以用来删除一个空的目录。当目录有内容存在的时候,我们通常用rm –rf 来删除。
8、基础指令(四)
•        cat        -        察看文件内容
•        more-        逐屏察看文件内容
•        less-        逐行察看文件内容
•        date-        显示当前时间
•        cal        -        显示月历
解释:
cat
cat是concatenate的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于dos中的type。
more
当一个文件的内容超过一屏后,我们可以用more这个指令来逐屏察看文件内容。
less
less在more的基础上,更可以逐行察看,前后翻页。
date
显示系统的当前时间。也可以用来更改系统的当前时间。
cal
显示系统时间所在月的月历。也可以用cal 2 2002这样的格式来要求显示2002年二月的月历。
9、基础指令(五)
•        df         -显示磁盘用量
•        du  -计算目录下文件占用磁盘的大小
解释:
df
df 命令显示磁盘用量,加-h 选项可以以KB、MB、GB等单位输出,加-H 也以KB、MB、GB输出,但是是以1000B为1KB,而非1024B。
[kevinz@stationXX kevinz] $ df  -h
Filesystem           Size  Used   Avail  Use%  Mounted on
/dev/hda5            12G  1.6G   10G   14%   /
/dev/hda1            36M  2.5M  31M   8%    /boot
[kevinz@stationXX kevinz] $df  -H
Filesystem           Size  Used   Avail  Use%  Mounted on
/dev/hda5            13G  1.7G   10G   14%   /
/dev/hda1            37M  2.6M  31M   8%    /boot
du
du命令计算目录下文件占用磁盘的大小,以KB为单位,也加-h 选项。例如du -sh (–s 用来察看文件夹实际情况)。   

10、基础指令(六)
•        head - 显示文件开头部分内容
•        tail  -显示文件结尾部分内容
解释:
head
head 显示文件开头部分内容,默认显示十行参数 --lines或者 –n 指明显示行数
tail
tail显示文件结尾部分内容,命令用法同head,参数 -f 显示文件的实时更新,用于监视日志文件

11、设 备 文 件
•        设备在Linux中以特殊文件的形式存在
•        块(block)设备文件
•        字符(character)设备文件
•        设备文件所在位置
•        查看设备类型
解释:
设备文件
Linux继承了Unix的风格把所有的硬件设备都当作文件来处理,只不过它们是特殊的文件,并存放在/dev目录下。设备分为块设备(block)和字符设备(character)两种。在用ls -l命令显示时,设备文件的类型会在属性的第一位以"b"或者"c"分别表示。块设备是可随机读写的设备,例如硬盘;字符设备必须是顺序读写的,比如串口。

12、虚拟控制台及用户身份切换
•        在系统中有12个虚拟控制台,前6个可供用作本地登录
•        用户可以用Alt+Fn(n=1~12)来切换。
•        用su可以用来切换用户身份
          su - username
解释:
虚拟控制台
•        系统中有12个系统虚拟控制台,默认开启六个(F1-F6)。
•        因为前六个控制台用于本地登录。所以第一个图形界面一般对应Alt+F7,第二个是Alt+F8,依次类推。
•        如果当前在图形界面下,系统快捷键Alt+Fn已经被占用,我们需要用Ctrl+Alt+Fn来切换入其他虚拟控制台。
•        应注意从图形界面中切换入其他虚拟控制台,可能造成原图形界面关闭。
•        登录用的虚拟控制台是可以根据需要增添或删减的(配置文件为/etc/inittab)。
用户身份切换
•        任一用户都拥有自己的环境变量,单用su的切换是不完整,用su - username 完整的切换成另一个用户。
•        root 切换成普通用户不需要密码。普通用户切换为其他用户需要对方用户的密码。
•        当需要退出当前用户时,用Ctrl+D、exit或logout退回上一个用户,当前为最后一个用户时退回登录窗口。

12、离开系统
•        重启
        reboot
        shutdown -r now
        init 6
•        关机
        halt
        shutdown -h now
        poweroff
        init 0
注意:
离开系统
重启与关机都需要当前用户是root

Linux 学习第三天_文件

1、检查文件
用ls –l以长模式察看文件的详细信息
        包含当前目录的硬盘使用空间、文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名。
用file检查文件类型
        由于linux中的文件名中没有扩展名,所以可能需要用file来查看文件类型

解释:
•        用ls –l 以长模式显示文件的信息,例:
[root@Server1 root]# ls -l /var/lib/dhcp/
total 8
-rw-r--r--    1 root     root          864 Feb 14 15:09 dhcpd.leases
-rw-r--r--    1 root     root          864 Feb 14 15:05 dhcpd.leases~
•        用file检查文件类型
     [root@server1 root]# file /etc/fstab
     /etc/fstab  : ASCII text
   file命令从系统配置文件/usr/share/magic中读取相应的文件规范。

2、文件类型
•        在linux中,所有东西都被当成文件。
•        文件权限前的第一个字母用来标识文件类型:
-:一般文件
d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
解释:
文件类型
Linux沿用了Unix风格,在系统中所有东西都被当成文件,并且都可以适用文件的操作。
对于不同类型的文件,通常ls会用不同的颜色来标识,这些标识颜色的定义在文件/etc/DIR_COLORS中。
文件分类
一般文件
  这是一类常见的文件,也是常使用的一类文件,其特点是不包含有文件系统的结构信息。通常所接触到的文件,包括图形文件、数据文件、文档文件、声音文件等都属于这种文件。这种类型的文件按其内部结构又可细分为文本文件和二进制文件。
目录文件
  目录文件是用于存放文件名及其相关信息的文件,是内核组织文件系统的基本节点。目录文件可以包含下一级目录文件或普通。对于习惯于使用Windows的用户来说,这可能有些难于理解,目录怎么会是文件呢?的确,在Linux中,目录文件是一种文件。但Linux的目录文件和其它操作系统中的“目录”的概念不同,它是Linux文件中的一种。当然,在实际使用中可以不仔细区分这两种说法。实际上,在很多Linux的书籍和资料中就是将目录文件简称为目录的。不过,我们必需清楚此“目录”非彼“目录”。
链接文件
  链接文件是一种特殊的文件,实际上是指向一个真实存在的文件的链接。这有点类似于Windows下的快捷方式。根据链接文件的不同,它又可以细分为硬链接文件和符号链接文件。
设备文件
  设备文件是Linux中最特殊的文件。正是由于它的存在,使得Linux系统可以十分方便地访问外部设备。Linux系统为外部设备提供一种标准接口,将外部设备视为一种特殊的文件。用户可以像访问普通文件一样访问外部设备,使Linux系统可以很方便地适应不断发展的外部设备。通常Linux系统将设备文件放在/dev目录下,设备文件使用设备的主设备号和次设备号来指定某外部设备。根据访问数据方式的不同,设备文件又可以细分为块设备和字符设备文件。
管道文件
  管道文件是一种很特殊的文件,主要用于不同进程间的信息传递。当两个进程间需要进行数据或信息传递时,可以通过管道文件。一个进程将需传递的数据或信息写入管道的一端,另一进程则从管道的另一端取得所需的数据或信息。通常管道是建立在调整缓存中。

3、文件权限  
•        对于每一个文件,Linux都提供了一套文件权限系统。
•        文件权限系统,将操作文件的用户都分成三类
        文件的拥有者(u)
        文件所属组的成员(g)
        其他用户(o)
解释:
文件权限
      Linux系统是一个典型的多用户系统,不同的用户处于不同的地位。为了保护系统的安全性,Linux系统对不同用户访问同一文件的权限做了不同的规定。
  对于一个Linux系统中的文件来说,它的权限可以分为三种:读的权限( r )、写的权限( w )和执行的权限( x )。不同的用户具有不同的读、写和执行的权限。
  对于一个文件来说,它都有一个特定的所有者,也就是对文件具有所有权的用户。同时,由于在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。文件所有者以外的用户又可以分为文件所有者的同组用户和其它用户。因此,Linux系统按文件所有者、文件所属组的成员和其它用户三类规定不同的文件访问权限。

4、文件权限类型
•        对于每一类用户,权限系统又分别提供他们三种权限
•        读(r) :用户是否有权力读文件的内容
•        写(w) :用户是否有权利改变文件的内容
•        执行(x) :用户是否有权利执行文件
解释:
权限的概念
     Linux文件系统安全模型是通过给系统中的文件赋予两个属性来起作用的,这两个赋予每个文件的属性称为所有者(ownership)和访问权限(access rights)。Linux下的每一个文件必须严格地属于一个用户和一个组。
每个文件的目录条目都是以下面类似的一些符号开始:
  - r w - r - - r - -
      这些符号用来描述文件的访问权限类别,也就是常说的文件权限。这些访问权限指导Linux根据文件的用户和组所有权来处理所有访问文件的用户请求。总共有10种权限属性,因此一个权限列表总是10个字符的长度。它的格式遵循下列规则:
  第1个字符表示一种特殊的文件类型。其中字符可为d(表示该文件是一个目录)、b(表示该文件是一个系统设备,使用块输入/输出与外界交互,通常为一个磁盘)、c(表示该文件是一个系统设备,使用连续的字符输入/输出与外界交互,如串口和声音设备),“-”表示该文件是一个普通文件,没有特殊属性。
  第 2~4个字符用来确定文件的用户(user)权限,第5~7个字符用来确定文件的组(group)权限,第8~10个字符用来确定文件的其它用户(other user,既不是文件所有者,也不是组成员的用户)的权限。其中,2、5、8个字符是用来控制文件的读权限的,该位字符为r表示允许用户、组成员或其它人可从该文件中读取数据。短线“-”则表示不允许该成员读取数据。与此类似,3、6、9位的字符控制文件的写权限,该位若为w表示允许写,若为“ - ”表示不允许写。4、7、10位的字符用来控制文件的制造权限,该位若为x表示允许执行,若为“ - ”表示不允许执行。

5、改变文件权限  
•        使用chmod 来改变文件的当前权限
chmod  [-R]  权限  文件名
•        只有文件的拥有者和root才可以改变文件的权限
解释:
•        字符方式的基本语法是:chmod [ugoa] +或者-或者= [rwx] [文件...] 例如:
[kevinz@stationXX kevinz] $ chmod o+r .bash_profile                    ( 赋予其他用户对文件.bash_profile可读的权限)
[kevinz@stationXX kevinz] $ chmod u=rw .bash_profile                 ( 赋予文件拥有者对文件.bash_profile的权限是可读写)

6、使用数字来改变文件权限  
•        chmod后可以用三个数字来表示用户权限
        第一位代表文件拥有者权限
        第二位代表文件所属组成员权限
        第三位代表其他用户权限
•        每一个数字都采用加和的方式
        4(读)
        2(写)
        1(执行)
解释:
•        赋予权限的另一种方法是chmod nnn [文件...]
n 是 0—7 数字 ,其中第1、2、3个n分别表示用户、组成员和所有其它用户。各个位置上的n要么是一个0,或者是一个由赋予权限的相关值相加得到的单个阿拉伯数字之和。这些数字的意义如下所示:
值           表示的意义
     4        表示文件或者目录的读权限
     2      表示文件或者目录的写权限
     1           表示文件或者目录的执行权限
一般而言,作为系统管理员,更喜欢使用数字方式,因为这种方式的速度明显快得多。

7、建立链接
•        ln
        硬链接
        语法:ln 源文件 新建链接名
        软链接
        语法:ln –s 源文件 新建链接名
解释:
•        硬链接文件完全等同于原文件,原文件名和连接文件名都指向相同的物理地址。不可以跨文件系统,也不可以建立目录的硬链接。文件在磁盘中只有一个拷贝,节省硬盘空间; 由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。如下所示:
  [kevinz@stationXX kevinz] $  ln file1 file2   ( 建立file1的硬链接file2 )
  [kevinz@stationXX kevinz] $  ls –il            ( 显示file1和file2的属性)
   4029       -rw-r--r–     2                root                        root                 0     Jul    25  16:13      file1
   4029       -rw-r--r–     2                root                        root                 0     Jul    25  16:13      file2
   inode号    权限      硬链接数       文件的拥有者            文件的拥有组          文件大小   最后修改时间     文件名

注意: 文件硬链接的默认inode数是1,每增加一个硬链接,inode数增加1。目录没有硬链接。
        目录软连接的默认inode数是2,每增加一个软连接,inode数增加1,原因是目录包含本目录和上级目录(. 和 ..),所以目录的默认软连接数是2。
        文件软连接的默认inode数是1,每增加一个软连接,inode数增加1。
                                                  
•        软链接文件相当于为原文件建立了一个快捷方式,可以跨文件系统,也可以为目录建立。软链接和硬链接不同,软链接有自己的inode,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。 可以删除原有的文件而保存连接文件,没有防止误删除功能。

8、ext2/3中文件的构成
•        在ext2和ext3文件系统中,文件以inode+block的方式存在。
•        一但用rm指令删除文件中的inode记录。文件无法被找回。
•        stat指令可以用来检查文件的block与inode状况。
[root@www ~]# stat file
  File: `file'
  Size: 0                 Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d        Inode: 265857      Links: 3
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-04-28 09:53:58.601645612 +0800
Modify: 2012-04-28 09:53:58.601645612 +0800
Change: 2012-04-28 10:00:07.770607631 +0800

9、所属用户
•        每一个文件都有一个拥有者。文件的拥有者可以改变文件的权限。
•        root用户可以用chown来改变文件的拥有者。
解释:
改变文件的拥有者
[kevinz@stationXX kevinz] $ ls  -l  file1
-rw-r--r–     2                root                        root                 0     Jul    25  16:13      file1
[kevinz@stationXX kevinz] $ chown  username  file1
[kevinz@stationXX kevinz] $ ls  –l  file1
-rw-r--r–     2                username                        root                 0     Jul    25  16:13      file1

10、所属组
•        每一个文件只能属于一个指定的组。
•        文件的拥有者与root用户,可以用chgrp来改变文件所属的组
解释:
改变文件的拥有者
[kevinz@stationXX kevinz] $ ls  –l  file1
-rw-r--r–     2                root                        root                 0     Jul    25  16:13      file1
[kevinz@stationXX kevinz] $ chgrp  username  file1
[kevinz@stationXX kevinz] $ ls –l  file1
-rw-r--r–     2                root                        username                 0     Jul    25  16:13      file1

11、文件名
•        文件名最大为255个字符。
•        开头为.的文件为隐藏文件。
解释:
文件名
无论是ext2或ext3文件系统,文件名最多包含255个字符。文件名是字母大小写敏感的,也就是说FILE、file、File、FilE等是不同的文件名。同时Linux还可以使用特殊字符,但尽量避免使用“ / , > , < , ? , * , ” , ‘ “等特殊字符,不是他们不可用而是使用他们会产生操作时的麻烦。当然你也可以使用一段话作为文件名,例如 :
[kevinz@stationXX kevinz] $   ls  -l  “file name with spaces.txt”
隐藏文件
在Windows系统中隐藏是文件的一种属性,在Linux中没有这样的属性,隐藏是系统对文件的一种显示的判断。当系统需要显示文件名时,一般情况首先看文件的第一个字符是否为“ . ” ,如果是的就不显示他,所以在Linux中隐藏文件是以点开头的文件,同时因为目录也是文件,所以隐藏目录也是以点开头的。
用ls –a可以显示隐藏文件。例如:
[kevinz@stationXX kevinz] $ ls –a  /home/kevinz
    .bashrc    .bash_history   .bash_logout   .bash_profile  


Linux 学习第四天_目录
1、目录
&#8226;        目录在文件类型上用d标识
&#8226;        用 / 分隔目录层
&#8226;        Linux 操作系统都有且仅有一个起始目录,我们用一个单独的 / 来表示,称其为根目录。
&#8226;        对每一个shell和操作环境,都有一个当前工作目录。
解释:
目录
Linux中一切都是文件,目录也不例外,只不过目录是一种特殊的文件,目录的属性以“d”开头。
[kevinz@stationXX kevinz] ls –l
drwxrwxr-x     2             kevinz      kevinz             4096                Jul 25  09:50      test
目录属性    硬链接数    目录的拥有者和所属组        目录block大小         最后更改时间    目录名

2、.文件与..文件
&#8226;        在每一个目录下都有一个.文件与..文件。
&#8226;        .文件是对当前目录的一个硬连接
&#8226;        ..文件是对上级目录的一个硬连接

3、目录权限
&#8226;        目录也是一种文件
&#8226;        目录上的读写执行权限与普通文件有所不同:
        读:用户可以读取目录内的文件
        写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件。
        执行:用户可以进入目录,调用目录内的资料
解释:
目录权限
目录的读权限位意味着可以列出其中的内容。写权限位意味着可以在该目录中创建文件,如果不希望其他用户在你的目录中创建文件,可以取消相应的写权限位。执行权限位则意味着搜索和访问该目录。如下图所示:
________________________________________________________________________________________________________________________
|                r                 |                     w                      |                  x                 |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|  可列出目录中的文件             | 可在目录中删除或建立文件                  |     可搜索或进入目录               |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果把同组用户或其他用户针对某一目录的权限设置为- - x,那么他们将无法列出该目录中的文件。如果该目录中有一个执行位置位的脚本或程序,只要用户知道它的路径和文件名,仍然可以执行它。用户不能够进入该目录并不妨碍他执行该目录中的文件。

4、强制位与冒险位
&#8226;        除了读写执行权限以外,ext2文件系统还支持强制位(setuid 和setgid)与冒险位(sticky)的特别权限。
&#8226;        针对u,g,o,分别有set uid,set gid,及sticky。
&#8226;        强制位与冒险位添加在执行权限的位置上。如果该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。
&#8226;        set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t。
解释:
强制位
suid 意味着如果某个用户对属于自己的程序设置了这种权限,那么其他用户在执行这程序时也会具有其文件拥有者相应权限。于是,如果超级用户( root )的某一程序设置了这样的权限,那么其他普通用户在执行它的期间也同样具有超级用户的权限。同样的原则也适用于sguid,执行相应程序的用户将具有该文件所属用户组的权限。
为什么要使用suid/guid
为什么要使用这种类型的脚本?这里有一个很好的例子。你管理着几个大型的数据库系统,而对它们进行备份需要有系统管理权限。你写了几个脚本,并设置了它们的suid,这样你指定的一些用户只要执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,而且在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。另一个例子是/bin/passwd ,要读写/etc/passwd文件需要超级用户权限,但一般用户也需要随时可以改变自己的密码,所以/bin/passwd就设置了suid,当用户改自己密码的时侯就拥有了超级用户权限。

5、set gid对目录的作用
&#8226;        默认情况下,用户建立的文件属于用户当前所在的组。
&#8226;        目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。

6、冒险位对目录的作用
&#8226;        默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。
&#8226;        一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。

7、强制位对文件的作用
&#8226;        在可执行文件上,用户可以添加set uid和set gid。
&#8226;        默认情况下,用户执行一个指令,会以该用户的身份来运行进程。
&#8226;        指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。

8、设置强制位与冒险位
&#8226;        用户可以用chmod指令来为文件设置强制位与冒险位。
        set uid:chmod u+s 文件名
        set gid:chmod g+s 文件名
        sticky:chmod o+t 文件名
&#8226;        强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定。
        4(set uid)
        2(set gid)
        1(sticky)
解释:
设置s u i d  /    g u i d
命令                    结果                                            含义
chmod 4755            -rwsr-xr-x                 suid、文件属主具有读、写和执行的权限,所有其他用户具有读和执行的权限
chmod 6711            -rws--s--x                 suid、sgid、文件属主具有读、写和执行的权限,所有其他用户具有执行的权限
chmod 4511            -rwS--x—x               suid、文件属主具有读、写的权限,所有其他用户具有执行的权限
上面的表中有具有这样权限的文件:rwS --x -- x,其中S为大写。它表示相应的执行权限位并未被设置,这是一种没有什么用处的suid设置可以忽略它的存在。
注意,chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但 chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。

9、umask
&#8226;        每个用户建立文件时,此文件都会有默认权限。
&#8226;        默认权限的值由环境中的umask值来确定
&#8226;        用户可以自主改动umask值,并在改动后建立的文件上得到体现。
&#8226;        一般用户的默认umask值为002,系统用户的默认umask值为022。
解释:
umask
当你最初登录到系统中时, umask 命令确定了你创建文件的缺省模式。这一命令实际上和chmod命令正好相反。你的系统在安装时为你设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在 /etc/profile 文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久性地设置自己的umask值,那么就把它放在自己 $HOME 目录下的 .profile 或 .bash_profile 文件中。这些我们将在“用户”一章中作具体介绍。
在shell下直接输入umask,显示的是当前umask值。umask 022,则表示把umask值改为022,只在此次登录中生效。
计算 umask 值
umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的 umask 值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说, umask 中各个数字最大可以到7。
对普通用户而言,其umask值为002,即其建立起来的普通文件默认权限为664,目录权限为775。超级用户的umask值为022,即建立普通文件默认权限为644,目录权限为755。

10、根目录下的目录
&#8226;        /bin:存储常用用户指令。
&#8226;        /boot:存储核心、模块映像等启动用文件
&#8226;        /dev:存储设备文件
&#8226;        /etc:存储系统、服务的配置目录与文件
&#8226;        /home:存放个人主目录
&#8226;        /lib:存放库文件,诸如核心模块、驱动
&#8226;        /lost+found:存储fsck用的孤儿文件
&#8226;        /mnt:系统加载文件系统时用的常用挂载点
&#8226;        /opt:第三方工具使用的安装目录
&#8226;        /proc:虚拟文件系统,包含系统讯息等资料
&#8226;        /root:root用户的主目录
&#8226;        /sbin:存储系统管理用指令
&#8226;        /tmp:临时文件的暂存点
&#8226;        /usr:存放与用户直接相关的文件与目录
&#8226;        /var:存储在系统运行中可能会更改的数据
解释:
&#8226;        用户常用的指令,除了/bin目录以外,也常常存放在/usr/bin目录下。
&#8226;        /lost+found下的fsck用孤儿文件不可见。
&#8226;        库文件不但存放在/lib下,也存放在/usr/lib目录下。

虚拟目录
&#8226;        /proc在系统每次启动时自动在内存中生成,并不记录在任何硬件上。
&#8226;        你可以在/etc/fstab中看到:
&#8226;        [root@stationxx  root] # cat /etc/fstab
&#8226;        LABEL=/           /             ext3               defaults     1 1
&#8226;        LABEL=/boot    /              ext3               defaults     1 2
&#8226;        none                /dev/pts   devpts             gid=5,mode=620    0 0
&#8226;        none               /proc          proc                defaults     0 0
&#8226;        none               /dev/shm   tmpfs              defaults     0 0                 


Linux 学习第五天_过滤器、输入输出及管道

1、过滤器
&#8226;        Linux中的应用工具分为三种:
        交互工具
        过滤器
        编辑器
&#8226;        能够接受数据,过滤再输出的工具,称为过滤器
&#8226;        对过滤器和进程,存在着输入源与输出对象

2、输入、输出、重定向
&#8226;        输入:过滤器的数据来源
        标准输入stdin(0):默认是键盘
&#8226;        输出:过滤器的数据去向
        标准输出stdout (1):默认是终端屏幕
&#8226;        错误输出 :报错讯息与标准输出走不同的I/O通道
        标准错误输出stderr(2):默认是终端屏幕
&#8226;        重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向
解释:
标准输入输出
当一个shell命令行启动时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这三个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
直接使用标准输入/输出文件存在以下问题:
输入数据从终端输入时,用户费了半天劲输入的数据只能用一次。下次再想用这些数据时就得重新输入。而且在终端上输入时,若输入有误修改起来不是很方便。输出到终端屏幕上的信息只能看不能动。我们无法对此输出作更多处理,如将输出作为另一命令的输入进行进一步的处理等。
重定向
重定向即把命令(或可执行程序)的标准输入(或输出)发送到指定的文件(或命令)。也就是说,输入可以不来自键盘,而来自一个指定的文件(或是某一命令产生的屏幕输出);输出可以不来出现在屏幕,而添加到一个指定的文件。

3、输入重定向
&#8226;        使用“<”来重定向输入源
&#8226;        大多数工具都会以其后的文件名为输入源
&#8226;        有一些过滤器一定需要添加 < 以明确输入源
解释:
输入重定向
输入重定向大多使用在文件流的引入中,由于大多数命令都以参数的形式在命令行上指定输入文件的文件名,所以输入重定向并不经常使用。尽管如此,当要使用一个不接受文件名作为输入参数的命令,而需要的输入内容又存在一个文件里时,就能用输入重定向解决问题。
命令的使用格式
command <  file                  命令command的输入原从file文件得到。

4、从当前文档输入
&#8226;        使用 << 让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,然后一次性输入
&#8226;        需要一对字母、符号或字符串作为起始终结标识符
&#8226;        可以选择任意符号作为起始终结标识符
解释:
从当前文档输入
我们可以使用入下的方式实现一个简单的文本输入器:
[kevinz@stationXX kevinz] $ cat > file <<!
>This is test!
>!
[kevinz@stationXX kevinz] $ less  file
This is test!

5、输出重定向
&#8226;        使用>改变数据输出目标
&#8226;        范例:
ls –l > listfile
–        将当前目录下的文件以长模式显示,然后写入listfile文件
&#8226;        文件已有内容会被消除
解释:
输出重定向
输出重定向比输入重定向更常用,很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,那么将输出重定向到一个文件中,然后再用文本编辑器打开这个文件,就可以查看输出信息;如果想保存一个命令的输出,也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入 。

6、覆盖与追加
&#8226;        使用>进行输出重定向,文件的原内容会被覆盖
ls –l > listfile
&#8226;        使用>>,可以将输出追加入文件
ls –l >> listfile
解释:
覆盖与追加
为避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,shell提供了输出重定向的一种追加手段。输出追加重定向与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是把命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。

7、错误输出重定向
&#8226;        系统错误与标准输出使用的I/O管道不同
&#8226;        默认情况下,系统报错会显示到终端屏幕上

使用2>将报错讯息重定向入一个文件
find / -type s 2> /dev/null
使用2>>将报错讯息追加入一个文件
find / -name passwd 2>> results
解释:
错误输出重定向
系统错误与标准输出使用的I/O管道不同,虽然他们都默认显示到屏幕上,但系统错误使用stderr通道而标准输出使用stdout通道。
我们在这里提到了一个设备文件/dev/null,它是我们常说的黑洞设备,无论你发送何种大小的文件它都忽略并删除。
当我们需要回显错误输出时可以采取如下方式:
[kevinz@stationXX kevinz] $ find / -name passwd 2 >>results >&1
其中&1就是指标准输出!

8、双重输出重定向
&#8226;        使用>和2>可以将一次操作的正确、错误输入,被单独地送到不同的地方:
find / -perm -2 2> error > results

&#8226;        使用&>将所有输入都送向同一个地方:
find / -perm +6000 > file

9、管道
&#8226;        使用 | 将前一个过滤器的输出直接送入后一个过滤器的输入
ls –l | grep pass
&#8226;        允许多重管道
&#8226;        注意管道前过滤器的输出与管道后过滤器的输入数据类型匹配
解释:
管道
将一个程序或命令的输出作为另一个程序或命令的输入,有两种方法,一种是通过一个临时文件将两个命令或程序结合在一起,另一种是Linux所提供的管道功能。这种方法比前一种方法更好。
管道可以把一系列命令连接起来,这意味着第一个命令的输出会作为第二个命令的输入通过管道传给第二个命令,第二个命令的输出又会作为第三个命令的输入,以此类推。显示在屏幕上的是管道行中最后一个命令的输出(如果命令行中未使用输出重定向)。
管道前过滤器的输出与管道后过滤器的输入数据类型需匹配,如果有不匹配的数据,后过滤器就会把不匹配的数据丢弃。例如:
[kevinz@stationXX kevinz] $ls -l                                            (屏幕回显是有颜色的)
[kevinz@stationXX kevinz] $ls -l |  less                                   (屏幕回显是没有颜色的)

10、重定向、管道的常用范例
&#8226;        ls –l | more
        分屏显示当前目录下的文件
&#8226;        cat < filea > fileb
        拷贝filea到fileb
&#8226;        cat file.* > file
        将数个小文件合并成一个文件

Linux 学习第五天_文件查找与文件管理

1、可执行文件的搜索
&#8226;           which
        显示一个可执行文件的完整路径
        按照alias -> $PATH的顺序查找
&#8226;        whereis
        搜索一个可执行工具及其相关配置、帮助
解释:
which
which用于显示查找可执行文件的完全路径,例如:
[kevinz@stationXX kevinz] $which ls
alias       ls = ‘ls    --color=tty ‘
              /bin/ls
which 首先查找系统中别名记录(alias),然后查找系统路径($PATH)。一般我们不把当前目录” . “加入系统路径,所以当前路径中的文件命令不在显示中。
whereis
whereis用于显示查找文件的路径、该文件的帮助文件路径、该文件的相关原程序的路径,例如:
[root@www ~]# whereis mkdir
mkdir: /bin/mkdir /usr/share/man/man2/mkdir.2.gz /usr/share/man/man3p/mkdir.3p.gz /usr/share/man/man1/mkdir.1.gz /usr/share/man/man1p/mkdir.1p.gz
[root@www ~]# whereis chdir
chdir: /usr/share/man/man2/chdir.2.gz /usr/share/man/man3p/chdir.3p.gz
[kevinz@stationXX kevinz] $whereis fstab
fstab:     /etc/fstab   /etc/fstab.REVOKE   /usr/include/fstab.sh  /usr/share/man/man5/fstab.5.gz  /usr/share/man/man5/fstab.5.gz

2、slocate
&#8226;        语法:
        slocate         [关键字段]
        locate        [关键字段]
&#8226;        所有文件名及其所在路径包含关键字段的文件与目录都会显示
&#8226;        slocate先将当前目录结构做成一个数据库,然后再在此数据库中搜索匹配记录
解释:
slocate
首先locate是slocate的一个符号链接,我们可以这样查看:
[kevinz@stationXX kevinz] $ls -l /usr/bin/locate
lrwxrwxrwx      root  slocate    7  Jul   22   23:03  /usr/bin/locate -> slocate
slocate的数据库由守护进程(crond )在每天早上4:02自动更新,也就是说如果你现在对系统文件作的修改不会在slocate反映出来。当然我们可以使用updatedb指令来手动更新数据库,不过这是需要花费时间的工作。

3、find
&#8226;        语法:
find  [路径]  [参数]   [表达式]
&#8226;        从指定路径下递归向下搜索文件
&#8226;        支持按照各种条件方式搜索
&#8226;        支持对搜索得到的文件进一步用指令操作
解释:
find
find 是我们最常用的文件查找工具,相比slocat 而言它有纪实性的优点,语法如下:
find  [路径]  [参数]   [表达式]            
例如:
[kevinz@stationXX kevinz] $ find       /usr/share/doc       -name        filename
                        命令          路径             参数         表达式
find的常用find参数如下:
&#8226;        -user:根据文件拥有者寻找文件
&#8226;        -group:根据文件所属组寻找文件
&#8226;        -name:根据文件名寻找文件
&#8226;        -perm:根据文件权限寻找文件
&#8226;        -size:根据文件大小寻找文件
&#8226;        -type:根据文件类型寻找文件,参数对应c、b、l、f、d
find的表达式使用通配符时需要使用” ”圈界。例如:
[kevinz@stationXX kevinz] $ find . –name “*.html”

4、操作找到的文件
&#8226;        语法:
find [路径]  [参数] [表达式]  -exec  指令 {} \;
–        {}代表find找到的文件
–        \ 禁止转意
–        ;表示本行指令结束
解释:
find 操作找到的文件
当使用-exec 指令时,{} \ ; 必须一同添加 例如:
[kevinz@stationXX kevinz] $find . –exec ls  {} \;
当操作指令需要征询用户意见,可以添加-ok自动回答‘是’ 例如:
[kevinz@stationXX kevinz] $find . –ok rm {} \;

5、常用的文件操作指令
&#8226;        wc - 统计文件的行、词、字数
&#8226;        grep - 显示文件中匹配关键字的行
&#8226;        sort -   按序重排文本并送显示
解释:
wc
wc用来统计一个文件的行数、词数、字数并送到标准输出。也可以用-l(行数)、-w(词数)、-c(字数)来指定输出内容。
grep
grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出。结合管道,我们通常用它来过滤搜索结果,例如:
[kevinz@stationXX kevinz] $ ls  -a | grep bash
.bash_history
.bash_logout
.bash_profile
.bashrc  
grep支持用扩展的正则表达式来进一步定义关键字,具体如下:
.        替代任何一个单一字符
.*       替代零个或任意个字符
[abc]  替代a、b或c
[^abc] 替代除了a、b、c以外的字符
a*      替代空、a、aa、aaa、乃至更多个a
a?            替代一个或零个单独的a
a+            替代a、aa、aaa乃至更多个a
a\{n\}  替代重复了n次的a
^a            替代以a为首的行
a$      替代以a为尾的行
sort
sort用来按各种需要重新排列文本,一般运用在一个管道之后。例如:
[kevinz@stationXX kevinz] $ ls  -a | grep bash | sort
.bash_history
.bash_logout
.bash_profile
.bashrc
[kevinz@stationXX kevinz] $ ls  -a | grep bash | sort -r
.bashrc
.bash_profile
.bash_logout
.bash_history
默认情况下sort按照字母顺序排列文本。
-n      按照数字排序
-r           反向排序
-u      将重复的行去除

6、常用的文件操作指令(二)
&#8226;        diff -  报告文本差异内容
&#8226;        comp - 报告文本差异位置
&#8226;        uniq - 去除文件中重复的行
&#8226;        cut -显示文件中的某一列
&#8226;        paste - 将文本按列拼接
解释:
diff
diff用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。
<表示是前一个文件的内容 ,>表示后一个文件的内容。例如:
[kevinz@stationXX kevinz] $echo “begin1”>file1
[kevinz@stationXX kevinz] $echo “begin2”>file1
[kevinz@stationXX kevinz] $diff  file1  file2
1c1
<begin1
----
>begin2
comp
comp同样可以用于比较文件,但comp只报告两个文件什么地方不同,并不显示差异。
uniq
uniq用于去除文本中重复的行。-u参数可以只显示那些没有被重复过的行。-d显示有被重复过的行。
cut
cut可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示,例如:
[root@stationXX root] $ cut –f1 –d: /etc/shadow
表示以:为分隔符,显示/etc/shadow的第一列
paste
paste将几份文集那按照列的方式拼接。默认情况下,新文件的列分隔符是tab,也可以用-d参数指定。

7、压缩
&#8226;        gzip,gunzip
        Linux标准压缩工具
        对文本文件可以达到75%的压缩率
&#8226;        compress,uncompress
        旧的Unix压缩工具
&#8226;        bzip2,bunzip2
        更新的Linux压缩工具
        比gzip有着更高的压缩率

8、Z系列指令
&#8226;        对于用gzip压缩的文件,有一系列以z为开头的文件,可以在不经解压的情况下,直接操作文件
        zcat:直接显示压缩文件的内容
        zless:直接逐行显示压缩文件的内容
        zdiff:直接报告压缩文件的差异内容
        zcmp:直接报告压缩文件的差异处

9、tar
&#8226;        用于在磁带机、软盘、ZIP设备上做备份。也可以备份在一个硬盘文件上。
&#8226;        主要参数:
        c:将文件备份出来
        v:将过程输出
        x:从一个文件中解出备份
&#8226;        范例
        备份:tar cvf backup.tar *.txt
        解开:tar xvf backup.tar –C backup/

解释:
tar
tar支持在备份同时压缩备份文件,或在解出备份同时解压缩。
[kevinz@stationXX kevinz] $tar xjvf   test.tar.bz    (  j:使用bzip2 )
[kevinz@stationXX kevinz] $tar xzvf   test.tar.gz  ( z:使用gzip )
[kevinz@stationXX kevinz] $tar xZvf   test.tar.Z     (  Z:使用compress )

10、dump/restore
&#8226;        备份与还原ext2/3文件系统
        不可以在其他文件系统上使用
&#8226;        可以选择进行完全备份或增量备份
&#8226;        范例:
        dump –0u –f  /var/tmp/hda2dump /dev/hda1
        restore –rf /var/tmp/hda2dump



Linux 学习第六天_交互工具与编辑器


1、交互工具
&#8226;        mesg   -- 控制终端是否接收讯息
&#8226;        常用的交互工具:
&#8226;        write:指定一个在线用户发送短消息
&#8226;        wall:向所有在线用户广播
解释:
mesg
mesg负责控制你是否接收其它控制台发出的讯息,选项有y和n。
[kevinz@stationXX kevinz] $ mesg  y        (用户愿意接受与发送讯息)
[kevinz@stationXX kevinz] $ mesg  n        (用户不愿意接受与发送讯息)
write
write 用户名 [终端] ,然后输入短消息的内容,用ctrl+d结束。
[root@stationXX root] $ ls –l  /usr/bin/write
-rwxr-sr-x       1   root  tty           43593    Feb  25   08:11   /usr/bin/write
你会发现write设置了sgid,它的组是tty,所以普通用户使用write也可以向控制台写入。
wall
在shell下输入wall然后回车,然后输入需要广播的内容。用ctrl+d结束。
wall和write相似,也设置了squid。

2、编辑工具
&#8226;        我们通常用各种编辑工具来处理文本文件
&#8226;        常用的编辑工具:
        VIM
        EMACS

3、Vi
&#8226;        作为一个编辑器,vi被广泛地运用在各种Unix操作系统上。
&#8226;        Vi是Linux中的标准文本编辑器。
&#8226;        在Red Hat Linux上,一般采用的“可视编辑器 / visual editor” 是vim(vi improved)
解释:
Vi
vi是个可视化的编辑器(vi就意味着可视化--VIsual)。 那么,什么是可视化的编辑器呢? 相对于非可视化的编辑器而言,可视化的编辑器就是可以让你在编辑文本的时候看到它们。 今天,这听起来似乎非常普通,反之非可视化的编辑器似乎很奇怪.,其实非可视化的编辑器的例子可以举出不少:如ed,sed 和 edlin  等 。vi是威廉.侨伊写的,作为BSD UNIX的一部分, 后来AT&T也开始用vi, 于是标准UNIX也开始用vi了。
vi是UNIX下面的缺省编辑器, 因此几乎近来所有的UNIX都捆绑了vi(近来是指1984年左右)。这意味着无论何时你跨平台使用某种UNIX,你都知道在你指尖下面有一个强力的编辑器。为什么不是别的呢??vi是个强大的编辑器。同样一旦你了解了vi,你就能很快的编辑你的文件,因为它非常能节省你的敲键次数。 由于它在插入和命令两种情况下使用不同的模式,它比大多数的不基于这种模式的编辑器要快。 而且vi非常小(我机器上面的版本只有445K)。还有,vi几乎能做任何事,只要你知道如何使它做你想做的事。.


4、打开文件
&#8226;        vi 文件名
        如果文件已存在,则此文件被打开且显示文件内容
        如果文件不存在,则vi在第一次存盘时自动建立在硬盘上
解释:
使用vi打开文件
直接键入vi,打开一个vi 窗口:
[kevinz@stationXX kevinz] $ vi
~                              VIM - Vi IMproved
~
~                                version 5.8.7
~                           by Bram Moolenaar et al.
~
~                         Vim is freely distributable
~                type  :help uganda<Enter>     if you like Vim
~
~                type  :q<Enter>               to exit
~                type  :help<Enter>  or  <F1>  for on-line help
~                type  :help version5<Enter>   for version info

5、存写文件
&#8226;        从命令模式下:
        :w 保存当前文件
        :q  如果未对文件做改动则退出
        :wq /:x /ZZ 保存当前文件并退出
        :q!  放弃存储并退出
        :e 文件名 打开另一文件并开始编辑
&#8226;        如果文件发生更动,:w 文件名 可以将当前内容存为另一个文件。

6、vi 模式
&#8226;        vi 提供两种模式
        命令模式
        浏览、删除、剪贴、查找等
        可以用各种命令进入插入模式
        插入模式
        输入新文档
        用<ESC>退出插入模式回命令模式

解释:
Vi的模式
vi将命令模式和插入模式区分开来,这经常被认为是vi的一个大问题,但往往这也被认为是 vi的优势所在。 理解其中的区别是掌握vi的关键,vi启动时,开始处于命令模式。在这种模式下,我们可以在文件中到处移动,改变文本的某个特定区域、 剪切、 复制和粘贴文本,还有更 多。 插入模式是指用户可以真正插入文本。换句话说,命令模式是用来在文件中移动,而插入模式是用来在文件中键入文本。
&#8226;        从命令模式进入插入模式:
        i:光标在当前位置进入插入模式
        I:光标跳到行首并进入插入模式
        a:光标后退一格并进入插入模式
        A:光标退到行尾并进入插入模式
        o:在光标所在行下新起一行并进入插入模式
        O:在光标所在行上新起一行并进入插入模式
        s:删除光标所在字符并进入插入模式
        S:删除光标所在行并进入插入模式

7、删除与块操作
&#8226;        在命令模式下可以直接删除字符
&#8226;        在命令模式下键入v则进入块操作:
1.        移动光标以选定操作块
2.        c 剪切选定块  或  y 复制选定块
p 将选定内容贴在光标所在位置右手
解释:
在vi中删除
&#8226;        x/<del>:删除一个字符
&#8226;        nx:删除下n个字符
&#8226;        dd:删除当前行
&#8226;        dw:删至词尾
&#8226;        ndw:删除后n个词
&#8226;        d$:删至行尾
&#8226;        nd$:删除后n行
在vi中剪贴
&#8226;        yy:选定光标所在行复制
&#8226;        yw:选定光标所在词复制
&#8226;        nyw:选定光标所在位置到之后n个单词复制
&#8226;        y$:选定光标所在位置到行尾的部分复制
&#8226;        p:贴在光标所在位置之右
&#8226;        P:贴在光标所在位置之左

8、取消操作
&#8226;        u:取消上一个更动
&#8226;        U:取消一行内的所有更动
&#8226;        <ctrl-r>:重做
&#8226;        :e! :放弃所有更动,重新编辑
&#8226;        如果vi因shell关闭或一些特殊事件而被关闭,我们可以用vi -r 文件名来恢复之前的编辑状态。
9、查找文本
&#8226;        vi支持用户在全文中查找一个关键字段
&#8226;        在命令模式下,用 / 向上查找或用 ? 向下查找
&#8226;        查找一直到文件尾或文件头
&#8226;        在查找后,可以用 n 继续寻找下一个关键字段。
&#8226;        /<文本>将向前查找
&#8226;        ?<文本>将向后查找
&#8226;         ??或者//将重复上次查找

10、命令模式的输入选项
&#8226;        : r <文件名>    把文件插入到光标处
&#8226;         :r !<命令>      把<命令>的输出插入到当前文本中
&#8226;        :nr <文件>       把<文件>插入到第n行
&#8226;        :!<命令>          运行<命令>,然后返回
&#8226;        :sh                    转到SHELL
:so <文件>       读取<文件>,再执行文件里面的命令





Linux 学习第七天_BASH

1、Shell简介
&#8226;        Shell:命令行解释器,是用户与系统沟通时的媒介。
&#8226;        在Unix系统中有各种Shell,Linux采用bash为其默认shell
&#8226;        系统可以使用的shell记录在/etc/shells中
解释:
Shell简介
Shell 只不过是一个程序,它被用于解释用户输入的命令,有四、五个常用的shell和几个其他的变种。
解释用户命令可能看上去是很简单的,但是在用户按下RETURN键和计算机真正去完成用户所希望的事情的这段时间里发生了许多事情。解释进程非常复杂,因此shell不得不将命令分成词、扩展别名、历史操作符以及shell 变量和环境变量。它也会创建标准的输入输出流,并执行许多其它工作。实际上如果某个命令看上去很正确却不能正常工作,原因就很有可能是下面的两个之一:
&#8226;        文件权限的设置不正确。
&#8226;        用户不理解shell是如何处理命令行的。
Bash简介
“Bourne-again shell” 来源于自由软件基金会。超过60个的shell变量,可以让用户得到所需的有关shell设置文件的信息,同时有利于将shell配置成可以完成用户交给它的任务。有像vi和Emacs这样的命令行编辑,也有原始的C shell历史替换。还有许多非常好的针对脚本和Shell函数的特性---像功能强大的串操作符、文件测试和内置的整型算术运算。
Red Hat Linux 中可用的shell
[root@stationxx root] # cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/bash2
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh

2、bash
&#8226;        bash:Bourne Again Shell的缩写。
&#8226;        GNU计划的一个组件。
&#8226;        与Unix上的Bourne Shell完全兼容。
&#8226;        支持命令行输入、操作历史查询、快捷键、使用变量等功能。
解释:
Bash简介
“Bourne-again shell” 来源于自由软件基金会。超过60个的shell变量,可以让用户得到所需的有关shell设置文件的信息,同时有利于将shell配置成可以完成用户交给它的任务。有像vi和Emacs这样的命令行编辑,也有原始的C shell历史替换。还有许多非常好的针对脚本和Shell函数的特性---像功能强大的串操作符、文件测试和内置的整型算术运算。

3、预定义环境变量
&#8226;        在bash中有很多预定义环境变量
&#8226;        系统通过预定义环境变量来定义shell的环境
&#8226;        用户可以用set或env查询当前的环境变量
&#8226;        常用的预定义变量:
        HOME:当前用户的主目录
        PATH:当前用户的可执行文件搜索路径
        LANG:程序应该使用的默认语言
        PS1:行提示符
解释:
Bash的预定义环境变量
预定义变量用于储存用户不需要关心的一些信息,并且有相当数量的预定义变量可以为许多Linux程序所使用。并不是因为它们的值被预定义了,而是因为它们的名子和使用被预定义了。
用户可以在许多情况下使用预定义变量,例如:
[root@stationxx /]# cd $HOME/bin
[root@stationxx bin]#pwd
/root/bin                    (可以直接进入用户主目录下的bin目录)
用户也可以用 ”echo $变量“ 的方式来查询变量的值。例如:
[root@stationxx /]# echo $LANG
zh_CN.GB18030        (显示当前用户的可执行文件路径)
在bash下,用户执行一个文件不会先检查当前路径下是否有该文件。而是直接在$PATH下搜索。所以如果当前目录不包含在$PATH中,系统会报告‘无此命令或文件’。
屏幕中显示无法识别的乱码,很有可能是LANG设置不对所致。输入LANG=en,一般可以解决这个问题。

4、history
&#8226;        在bash中输入history指令可以查询用户的过往操作。
&#8226;        内存中记录的过往指令数根据环境变量中HISTSIZE而定。
&#8226;        history表存储在内存中,在用户logout时会记录入用户主目录下的.bash_history文件中。在下次login时载入。
.bash_history中的指令数根据环境变量中的HISTFILESIZE而定

解释:
历史机制
大部分shell中都包括一个强大的历史机制,bash也不例外。它容许用户重新调用和重复过去的命令,也可以在执行之前编辑它们。
history命令会列出已经保存的命令,每个命令都有一个标识号。例如,history 20 会显示最后的20个命令。
内存中记录的过往指令数根据环境变量中HISTSIZE而定,你也可以这样去定义它:
[kevinz@stationxx kevinz]$ HISTSIZE=100  (把记录的历史指令数定义为100条)

5、调用过往指令
&#8226;        使用 ! 来调用过往指令:
        !!:重复执行上一条指令
        !a:重复执行上一条以a为首的指令
        !number:重复执行上一条在history表中记录号码为number的指令
        !-number:重复执行前第number条指令
&#8226;        可以用<ctrl+r>来在history表中查询某条过往指令
解释:
调用过去的指令
我们经常用到的是“!”,我们把它叫做“当”,两个“!”我们叫它“当当”,这是我们经常会用到的。
还有一些常用的,例如:
[kevinz@stationxx kevinz]$ ls /bin/ls
[kevinz@stationxx kevinz]$ ls  -l !$
ls –l /bin/ls
-rwxr-xr-x     1  root     root    67668  Ful 2  20:11  /bin/ls
“ !$ “它表示获得前面命令行中的最后一项内容。

6、alias
&#8226;        在shell下键入alias可以查询当前alias列表。
&#8226;        用户可以alias来为一条命令取一个简单的别名
&#8226;        用户也可以用unalias来取消一条别名记录。
&#8226;        alias记录在shell中总是先行。
解释:
alias 别名
大多数的shell中,别名是用来缩短长命令行或执行一连串短明令的一个简单方法。
我们可以在命令行下键入alias a=‘ls –l’,以定义a为ls –l的一个别名,例如:
[kevinz@stationxx kevinz]$ alias a=‘ls –l’
[kevinz@stationxx kevinz]$ a  /bin/ls
-rwxr-xr-x     1  root     root    67668  Ful 2  20:11  /bin/ls
这样我们在系统中输入a,其作用相当于键入ls –l。
也许我们并不想使用”a”这个alias,我们可以使用 unalias a ,例如:
[kevinz@stationxx kevinz]$unalias a
则能取消这条别名记录。
如果alias rm=‘ls –l’,则我们键入rm,系统就会当成ls –l,而不管rm的原本用处。

7、命令行表达式
&#8226;        命令行输出——“ ”
        将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义。
&#8226;        命令行输出——‘ ’
        将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义。
&#8226;        执行引用符——` `
        引用命令的执行结果
解释:
命令行表达式
双引号可以对引号内特殊字符转义,例如:
[kevinz@stationxx kevinz]$ echo “hello, $HOSTNAME”
hello,stationxx.example.com
单引号不对引号内特殊字符转义,例如:
[kevinz@stationxx kevinz]$ echo ‘hello, $HOSTNAME’
hello, $HOSTNAME
执行引用符是我们键盘左上角和~同一键,它引用命令的执行结果,例如:
[kevinz@stationxx kevinz]$ echo `pwd`
/home/kevinz

8、命令行表达式(二)
&#8226;        数学运算——$[ ]
        在中括号内的表达式会被数学计算
逸脱符——\
        用于取消命令行中字符的特殊含义
        用于表示一行未结束
解释:
命令行表达式
算术运算符 $[]
在bash中可以进行数学计算,例如
[kevinz@stationxx kevinz]$ echo $[ 2 + 3 ]
5
它的运算过程是先进行数学计算,然后把结果付给一个临时变量,最后显示这个临时变量!
逸脱符  \
逸脱符用于取消命令行中字符的特殊含义,例如:
[kevinz@stationxx kevinz]$ mkdir a\ b
[kevinz@stationxx kevinz]$ ls l
a b
如果不加逸脱符‘ \ ’,系统认为是建立两个目录’ a ’ 和‘ b ’,加逸脱符‘ \ ’后,系统认为空格非间隔符,所以建立了一个目录’a b’。
逸脱符还可用于表示一行未结束,例如:
[kevinz@stationxx kevinz]$ iptables –t nat –A POSTROUTING –s  \
192.168.0.0/24 –j MASQUERADE

9、命令行表达式(三)
&#8226;        命令行结束符——;
        用于在一行内分隔两个独立命令,表示一行已结束,作用相当于回车键
pwd ; ls –l
&#8226;        子shell激活——()
        在小括号内的命令行表示激活一个子shell后在子shell中运行
解释:
命令行表达式
命令行结束符“ ; ” ,用于在一行内分隔两个独立命令,例如:
[kevinz@stationxx kevinz]$ pwd ; ls –l
/home/kevinz
total 1
-rw-r--r--   1    kevinz   kevinz     7   Jul 25  01:06   file1
子shell激活 “( )”,在小括号内的命令行表示激活一个子shell后在子shell中运行,子shell中的变量不传递到父shell。例如: [kevinz@stationxx kevinz]$ (HOME=/usr/share ) echo $HOME
stationxx.example.com

10、逻辑运算符
&#8226;        shell命令行支持在同一行的两条命令中插入&&(逻辑与)与  ||(逻辑或)
        &&:当前一条指令执行成功时再执行后一条指令
          ||:当前一条指令执行失败时再执行后一条指令

11、登录shell
&#8226;        默认情况下,在shell下改变变量、umask、alias,只在此次登录中有效。一旦logout后再login,则设定恢复初始值。
&#8226;        一个通过登录而得到的shell,一般是用户的初始shell。
&#8226;        在登录shell下激活的shell采用登录shell的环境设定
&#8226;        登录shell从配置文件中读取其环境设定

12、定制登录shell
&#8226;        bash 在用户登录时从四个文件中读取环境设定:
        全局设置文件:
     /etc/profile
     /etc/bashrc
–        用户设置文件:
     ~/.bashrc
     ~/.bash_profile
解释:
定制登录shell
任何时侯我们都可以手工设置变量和创建别名,但是在退出系统后shell会“ 忘记 ”这些设置。为了每次登录时都有相同的设置,可以将命令写入shell的设置文件,这些文件不仅仅是用来设置诸如shell变量这类事的,还可以在用户登录和退出时运行任何Linux命令。这就可以节省时间,并且可以让登录会话为用户做更多的事情。
使用bash在登录时一般从以下四个文件中读取环境变量,它们分为全局设置文件和用户设置文件两类:
全局设置文件:
     /etc/profile
     /etc/bashrc
用户设置文件:
     ~/.bashrc
     ~/.bash_profile
用户在登录时,bash 会首先读取全局设置文件,而后读取用户设置文件,全局设置文件对所有用户都生效但只有root能改动。用户设置文件可以被用户自己所改动但只对个人生效。后读入的设置会覆盖先读入的,用户设置会覆盖全局设置。用户需要长期性地改变shell环境,可以通过在这些文件中添加来完成。

13、其他shell设定文件
&#8226;        ~/.bash_logout:在用户logout的时候自动执行。
&#8226;        ~/.bash_history:用户login时自动读取其内容并加载到内存history记录中,logout时将内存history记录写入。
&#8226;        /etc/profile.d/*.sh:在/etc/profile中被执行,其中的环境设定,也会被全局引用
解释:
/etc/profile.d 目录下的文件也会在用户登录时执行,但必须是有可执行权限的文件,且其他用户也要有可执行权限!

14、常用快捷键
&#8226;        Ctrl + d:输入已结束。在shell下相当于一个exit
&#8226;        Ctrl + c:键盘中断请求。
&#8226;        Ctrl +s & Ctrl + q:暂停/恢复屏幕输出
&#8226;        Ctrl + l:清屏,相当于clear。
&#8226;        Tab:自动补完命令行与文件名
        Tab键双击可以列出所有可能匹配的选择
&#8226;        其它快捷键
&#8226;        Ctrl+a   光标移到行首
&#8226;        Ctrl+e   光标移到行尾
&#8226;        Esc+f   光标移到下一个单词的开始处
&#8226;        Esc+b  光标移到前一个或当前单词的开始处
&#8226;        Ctrl+k   从光标所在处删除到行结尾
&#8226;        Ctrl+u   删除整行


Linux 学习第八天_ X window 系统

1、X window 系统
&#8226;        支持在Linux上运行图形界面
&#8226;         创立于1986年,至今仍在被使用
&#8226;        客户端/服务器端模型
&#8226;        XFree86 – 自由、开放源代码的执行X
解释:
X window system
X window system(X窗口系统)是Linux操作系统使用的缺省图形化接口。此系统最初是由一些计算机公司与麻省理工学院(Massachusetts Institute of Technology,简称M I T )组成的集团开发的,X的第一个商业版本X10 在8 0年代中期推出,X11R1版本在1 9 8 7年推出。尽管最初的M I T (麻省理工学院)开发团体已解散, X现在属于The Open Group,但X 11通用的客户/服务器操作模式一直没有改变。X设计时即支持网络图形。在X中的程序或应用程序称为客户。X客户并不直接对显示器绘制或操作图形,而是与X服务器通信,服务器再控制显示器。尽管在一台计算机上许多用户可以运行客户和一个X服务器,同样可以在单台计算机上运行多个X服务器(和X会话)并从远程计算机启动客户—并通过本地服务器在本地显示。这表明可以在各种类型的网络上运行X,甚至通过串行拨号线路。
同时X window system(也被称为X或X11,但绝不会被称为X windows)是Red Hat Linux上运行图形界面的基础。X窗口系统一直在X联盟(http://www.X.org.)的维护之下。

2、GNOME
&#8226;        三个主要构件
        稳定,易于使用的桌面环境
        为开发工具提供的完整工具组与库
        GNOME office的应用工具
&#8226;        使用GTK+来设置桌面装饰
解释:
什么是GNOME
GNOME是一组支持X11桌面环境的软件库和X11客户程序。GNOME可以和任何GNOME可以识别的窗口管理器,或者支持其面板组件和客户程序功能(如拖放动作)的窗口管理器一起工作。GNOME在窗口管理器启动前初始化和运行。和KDE一样,GNOME提供良好的用户环境,包括应用程序框架、文件管理器、面板、一组外观一致的应用程序以及会话管理,因此可在X 11会话之间保存和恢复工作桌面。

3、KDE
&#8226;        KDE是K Desktop Environment的缩写
&#8226;        稳定的桌面环境
&#8226;        Koffice应用工具
&#8226;        使用QT来设置桌面装饰
解释:
什么是KDE
Linux最新的X 11窗口管理器之一是K桌面环境( K D E )。但是,K D E不仅仅是窗口管理器,它是一个完整的桌面环境,包括150多个客户程序和一个统一的界面,和GNOME中的非常相似。K D E支持在现代桌面环境中用户常要的许多功能,包括通常在商业软件库(如M o t i f和通用桌面环境,或者说CDE )中才有的功能。这些特性包括:
&#8226; 个人工作工具集,如磁盘和网络工具,使用桌面界面,能够向其他工具导出或导入数据。
&#8226; 会话管理,在会话之间记住打开应用程序和窗口的位置。
&#8226; “Sticky Buttons(粘贴按钮)”在每个桌面放置应用程序或者窗口
&#8226; 网络传输访问,或者说NTA,在一个FTP窗口中通过点击或者拖放图形文档的图标显示或者传输图形。
&#8226; 几乎任何桌面动作和KDE客户程序都有弹出菜单和内置的帮助。
&#8226; 桌面垃圾桶可以使删除更安全。
&#8226; 对系统的桌面、键盘、鼠标和声音进行图形化的配置。
&#8226; 程序和其他数据在桌面上或者在有文件夹图标的窗口中以图标表示。
&#8226; 对文件和设备的拖放动作(如复制、链接、移动和删除)。

4、Sawfish
&#8226;        GNOME的默认窗口管理工具
&#8226;        可主题化
        http://sawfish.themes.org
&#8226;        非常灵活且易于定制
        sawfish-ui
        同样也是GNOME配置工具的一部分

5、其他X环境
&#8226;        无GNOME或KDE的X11
        一个可以为低性能硬件考虑的解决方案
&#8226;        WindowMaker
        以NeXTSTEP GUI为范本的窗口管理器
&#8226;        fvwm
        成熟、稳定的窗口管理器,在许多版本的Linux中采用过
&#8226;        twm
        一个古旧的X窗口管理器

6、切换桌面
&#8226;        可以在桌面环境中使用switchdesk切换桌面
        可以选择使用GNOME、KDE或其他窗口管理器
&#8226;        建立~/.Xclients、~/.Xclients_defaults或其他主机配置文件,并在其中指定桌面:
        GNOME        (exec  gnome-session)
        KDE                (exec  startkde)

7、鼠标配置
&#8226;        X为三键鼠标而设计
&#8226;        双键鼠标可以用双键齐按的方式来模拟中键
&#8226;        支持鼠标滚轴轮
        并不是对所有的应用工具都生效
&#8226;        鼠标配置工具  —redhat-config-mouse         
                                  或 mouseconfig

8、拷贝与粘贴
&#8226;        以鼠标左键来选择文本(高亮化)
&#8226;        用鼠标中键来粘贴
        在双键鼠标中可以双键齐按来模拟中键

9、启动XFree86
&#8226;        设定runlevel为5自动激活图形登录窗口进入X
&#8226;        用gdm、kdm、xdm开启图形登录窗口进入X
&#8226;        用startx在字符界面下进入X
解释:
&#8226;        在/etc/inittab中设定id:5:initdefault决定开机默认进入x window
&#8226;        使用gdm、kdm、xdm开启图形登录窗口进入X,很像我们登录Windows,需要用户认证!

10、GUI 终端
&#8226;        xterm
        XFree86的一个组件(不支持中文)
&#8226;        gnome-terminal
        标准GNOME终端
&#8226;        konsole
        标准KDE终端

11、nautilus
&#8226;        GNOME文件管理器
&#8226;        从面板上可以点选“start here”来开启nautilus
&#8226;        支持http及ftp连接
&#8226;        支持text、html、man、info、mp3等文件句柄的嵌入
12、文书编辑器
&#8226;        gvim
        GUI下的vim
&#8226;        kwrite
        默认的KDE文本编辑器
&#8226;        xemacs
        x下的emacs编辑器
&#8226;        gedit
        简单的GNOME文本编辑器
13、图片浏览器
&#8226;        gimp
        强大的GNU图片处理程序
&#8226;        display
        图片阅览器
&#8226;        convert
        图形格式转换工具
&#8226;        gqview
        图片目录册
&#8226;        ee
        高性能图片浏览器

14、声音工具
&#8226;        xmms
        Linux上的winamp
&#8226;        gmix
        GNOME标准混声器
&#8226;        gtcd
        GNOME下的CD播放器
&#8226;        Red Hat 8.0之后的xmms默认不再携带mp3的解码器,因为mp3算法已经在2002年底开始收费。如果你需要使用mp3解码请自行在网络上搜索其解码器!

15、网络应用工具
&#8226;        gftp
        FTP客户端
&#8226;        xchat
        IRC客户端
&#8226;        evolution
        邮件客户端
&#8226;        mozilla
        网页浏览器

16、Office组件
&#8226;        Open Office
        源代码开放的staroffice组
        oowriter ,ooimpress,oodraw,oomath,oocalc
        koffice
        完整的KDE下的office组件
        kword,kspread,kpresenter,kontour,kchart
17、X中有用的快捷键
&#8226;        Ctrl+Alt+Backspace     退出X
&#8226;        Ctrl+Alt+Fn                      切换到虚拟控制台n
&#8226;        Alt+Tab                            改变窗口
&#8226;        Ctrl+Alt+Backspace
&#8226;        这个快捷键会退出X,但这又有两种结果:当你的运行级别为3时,你会退出到虚拟控制台;当你的运行级别为5时,你会退回到X的登录画面。
18、配置 X 环境
redhat-config-xfree86
&#8226;           Red Hat 开发的X配置工具
&#8226;           需要root的权限
&#8226;           显卡的选择
&#8226;           显示器的选择
&#8226;           分辨率的选择
&#8226;           色彩的选择

Linux学习第九天_系统监视

1、了解系统状况
&#8226;        uname:显示系统信息
&#8226;        hostname:显示主机名
&#8226;        last:列出最近的用户登录
&#8226;        lastlog:列出每一个用户的最近登录情况
&#8226;        free:显示内存使用状况
&#8226;        top:系统监视器
解释:
uname
uname -a,可以用来显示系统的完整鉴定信息,包括主机名、核心版本等。例如:
[root@stationxx root] # uname –a
Linux stationxx.example.com 2.4.20-8  #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux
hostname
hostname指令可以用来临时改变主机名。如果想永久更换主机名,需要编辑/etc/sysconfig/network。
last
last指令显示系统最近的登录状况,包括用户名、来自、登录时间。例如:
[root@stationxx root] # last
root     tty1                                  Thu Jul 31  09:24        still  logged in
root     pts/0      192.168.103.101   Thu Jul 31 10:13        still  logged in
…………..
top
按q退出top。另有gtop,则是top在图形界面下的一个优化版本。

2、进程
&#8226;        系统通过进程来完成工作
&#8226;        每一个进程都有一个独立的进程号,系统通过调用进程号来调度操控进程
&#8226;        系统的原始进程是init
        init的PID总是1
&#8226;        一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程
解释:
进程
Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。
进程的一个比较正式的定义是∶在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序 可以启动多个进程。
进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。
作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立 作业间进行切换。
每个进程都有自己的进程号,除了进程号每个进程通常还具有优先级、私有内存地址、环境、系统资源、文件描述、安全保证。象人类一样,一个进程可以同时身为一个进程的子进程,及另一个进程的父进程。我们可以使用pstree –p 查看进程间的关系和进程号。

3、查询进程
&#8226;        查询进程的指令:
        ps  [option]
&#8226;        pstree可以用来以树状的方式表现进程的父子关系
&#8226;        top是一个常用的系统监视工具。
解释:
ps
ps的常用参数:
-a  显示所有进程,但不包括不隶属于任何一个终端的进程
-x  显示不属于任何一个终端的进程,诸如各类系统网络服务的后台程序
-l   以长模式显示进程的信息
-u  显示进程的拥有者信息
在ps的参数中,是否加-号,表示不同的参数。
ps显示中的STAT,可以为:
&#8226;        R:正在运行。
&#8226;        S:进程睡眠中,通常可以因事件发生而被唤醒。
&#8226;        T:进程已停止。
&#8226;        D:进程睡眠中,除非发生指定事件,否则不会被唤醒。
&#8226;        Z:僵尸进程,例如未能被父进程回收的子进程。通常是一个系统bug或非法操作。
&#8226;        < :高优先级进程。
&#8226;        N:低优先级进程。
top
14:01:53  up  4:47,  3 users,  load average: 2.05, 2.04, 2.01
82 processes: 79 sleeping, 3 running, 0 zombie, 0 stopped
CPU states:   0.4% user   2.6% system  82.4% nice   0.0% iowait  14.4% idle
Mem:   254252k av,  247392k used,    6860k free,       0k shrd,  108348k buff
                    183312k actv,       4k in_d,    4360k in_c
Swap:  262072k av,   16032k used,  246040k free                   55616k cached
PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
3739 root      26   1 14344  14M   616 R N  53.0  5.6  89:58   0 set
2932 root      26   1 15104  14M   596 R N  46.2  5.9 148:25   0 set
4472 root      20   0  1064 1064   844 R     0.9  0.4   0:00   0 top
    1 root      15   0   468  460   420 S     0.0  0.1   0:03   0 init
    2 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 keventd
    3 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kapmd
    4 root      34  19     0    0     0 SWN   0.0  0.0   0:00   0 ksoftirqd_CPU
    9 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 bdflush
    5 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kswapd
    6 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kscand/DMA
    7 root      15   0     0    0     0 SW    0.0  0.0   0:06   0 kscand/Normal
    8 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kscand/HighMe
   10 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kupdated
   11 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 mdrecoveryd
   15 root      15   0     0    0     0 SW    0.0  0.0   0:00   0 kjournald
   73 root      25   0     0    0     0 SW    0.0  0.0   0:00   0 khubd
Unknown command `' -- hit `h' for help

4、控制进程
&#8226;        kill:
        语法:kill  [-signal]  PID
向进程传送一个特定的讯号
–        默认为15(终结)
–        kill -l:列出所有可以由kill传递的讯号
&#8226;        killall
解释:
进程控制
当需要中断一个前台进程的时候,通常是使用Ctrl+c组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。
kill可以通过向一个进程发送一个讯号来控制进程。这个讯号既可以是数字,也可以是名称。默认情况下,kill向进程传送进程号15,即terminate,以通知进程结束。我们可以使用kill –l列出所有可以由kill传递的讯号。
[root@stationxx  root]# kill –l
1) SIGHUP         2) SIGINT         3) SIGQUIT         4) SIGILL
5) SIGTRAP         6) SIGABRT         7) SIGBUS         8) SIGFPE
9) SIGKILL        10) SIGUSR1        11) SIGSEGV        12) SIGUSR2
13) SIGPIPE        14) SIGALRM        15) SIGTERM        17) SIGCHLD
18) SIGCONT        19) SIGSTOP        20) SIGTSTP        21) SIGTTIN
22) SIGTTOU        23) SIGURG        24) SIGXCPU        25) SIGXFSZ
26) SIGVTALRM        27) SIGPROF        28) SIGWINCH        29) SIGIO
30) SIGPWR        31) SIGSYS        33) SIGRTMIN        34) SIGRTMIN+1
35) SIGRTMIN+2        36) SIGRTMIN+3        37) SIGRTMIN+4        38) SIGRTMIN+5
39) SIGRTMIN+6        40) SIGRTMIN+7        41) SIGRTMIN+8        42) SIGRTMIN+9
43) SIGRTMIN+10        44) SIGRTMIN+11        45) SIGRTMIN+12        46) SIGRTMIN+13
47) SIGRTMIN+14        48) SIGRTMIN+15        49) SIGRTMAX-14        50) SIGRTMAX-13
51) SIGRTMAX-12        52) SIGRTMAX-11        53) SIGRTMAX-10        54) SIGRTMAX-9
55) SIGRTMAX-8        56) SIGRTMAX-7        57) SIGRTMAX-6        58) SIGRTMAX-5
59) SIGRTMAX-4        60) SIGRTMAX-3        61) SIGRTMAX-2        62) SIGRTMAX-1
63) SIGRTMAX        
对于忽视讯号15的进程,我们可以用9来强制杀死。例如要结束一个bash时,你必须使用kill 9 !我们可以用man 7 signal,来查询每一个讯号的意思与作用。
除了进程号,我们还可以在killall后添加一个关键字,可以用来杀死一批进程。例如:
[root@stationxx  root]# killall httpd                      杀死所有http进程。(关闭http服务。)

5、进程的优先级
&#8226;        进程的优先级,用nice值来表示
&#8226;        nice:以一个不同的nice值来运行指令
        nice -n num command
&#8226;        renice:改变一个运行进程的nice值
        renice -n pid
解释:
进程的优先级
Linux系统用nice值来判断一个进程的优先级,修改进程运行的优先级,是通过增加或减少进程的nice值来实现。nicez值中负值( -n )表示高优先级,正值( n )表示低优先级。nice值的范围在-20~19之间,数值越大表示优先级越低。系统默认的进程nice值为0。当我们使用nice指令可设定以一定的nice值来执行一个命令时,默认情况下nice值为10。一般用户只能设定以一个正的nice值,即低优先级的方式来执行一个命令。只有root才可以指定以一个负的nice值,即高优先级的方式执行一个命令。我们通过renice可以更改一个运行进程的nice值,对于一般用户,只能提高nice值,降低优先级;只有root用户才能降低nice值,提升优先级。
nice命令的语法结构:  
nice   [increment]  [command]  [arguments]     例如:
[root @stationxx root] # vi abc  
[root @stationxx root] # ps -l -p 1401(   1401为vi进程值)  
F S UID PPID C PRI NI ADDR SZ WCAN TTY TIME CMD  
20 S 0 1401 0 75 20 fb117c18 400 f01af490 02 00:00:00 vi abc  
可见,执行这个vi的nice值时20(默认值).  
[root @stationxx root] #  nice -17 vi abc  
[root @stationxx root] #  ps -l -p 1404  
F S UID PPID C PRI NI ADDR SZ WCAN TTY TIME CMD  
20 S 0 1404 0 75 -17 fb118418 400 f01af4f4 02 00:00:00 vi abc  
nice值小的进程优先级高;nice值大的进程的优先级低

6、前台和后台
&#8226;        默认情况下,一个命令执行后,此指令将独占shell,并拒绝其他输入。我们称之为前台进程。反之,则称为后台进程。
&#8226;        对每一个控制台,都允许多个后台进程。
&#8226;        对前台/后台进程的控制与调度,被称为任务控制。

7、将进程丢入后台
&#8226;        command &:将一个进程直接丢入后台运行
        nohup command &:将一个进程直接丢入后台运行,而且在该控制台退出后,进程仍不挂断
&#8226;        ctrl + Z:将一个正在运行的前台进程暂停,并丢入后台

8、作业
&#8226;        jobs:列出系统当前的后台进程
&#8226;        fg:将后台进程拉回前台
&#8226;        bg:激活后台暂停的进程
解释:
jobs
进程这一概念是对系统而言,对每一个控制台,我们则称为job。与进程有进程号一样,使用kill、renice等指令操作进程使用进程号,使用fg、bg指令操作job使用工作号。
bg使挂起的进程在后台运行。例如,当你已经在前台启动了一个命令时(没有在此命令后面使用&),意识到这一命令将运行叫长一端时间,但此时还须使用shell。在这种情况下,可通过在按下Ctrl键的同时按下Z键挂起当前运行的进程。此时你即可以使它长期挂起,也可以通过输入bg 把这一进程放到后台运行。这样便可以把shell解放出来。从而用于其他命令的执行。
fg使被挂起的进程恢复到前台运行。
对于job,我们也可以通过 kill  [-signal]  %jobID来控制。

9、/proc目录
&#8226;        /proc目录是一个虚拟的文件系统,包含了来自正在运行着的核心的信息
&#8226;        用户可以通过cat /proc/下的文件,来获得系统的信息
&#8226;        这些信息包括系统硬件、网络设置、内存使用,及其他一些东西
&#8226;        /proc/sys目录下的文件,允许系统管理员更动,这些变动会直接影响当前核心
解释:
&#8226;        /proc目录在每次系统开机时由核心根据/etc/fstab自动在内存中创建,并不基于硬盘。
&#8226;        /proc目录下的文件与目录都是虚拟产生,因此绝大多数的文件大小为零。
&#8226;        不可以cat /proc/kcore。这是当前运行内核的一个镜象,尝试cat会造成当前终端无法使用。
&#8226;        常用的/proc下的文件:
        /proc/interrupts:IRQ设置
        /proc/cpuinfo:CPU信息
        /proc/dma:DMA设置
        /proc/ioports:输入输出设置
        /proc/meminfo:系统内存使用状况
        /proc/loadavg:系统负载平均值
        /proc/uptime:系统运行时间与发呆时间
        /proc/version:Linux核心版本、创建主机、创建时间等
&#8226;        /proc目录下的常用目录
        /proc/scsi:scsi设备信息
        /proc/ide:ide设备信息
        /proc/net:网络状态与配置信息
        /proc/sys:核心配置参数
        /proc/<PID>:进程的信息
&#8226;        改变/proc/sys目录下的文件,例如,我们可以用:
echo 1 > /proc/sys/net/ipv4/ip_forward
来打开IP转发功能
&#8226;        系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目录名,它们是读取进程信息的接口。
   进程目录的结构如下:
     Cmdline     命令行参数
     Environ      环境变量值
     Fd                 一个包含所有文件描述符的目录
     Mem           进程的内存被利用情况
     Stat         进程状态
     Status          Process status in human readable form
     Cwd           当前工作目录的链接
     Exe            Link to the executable of this process
     Maps       内存印象
     Statm        进程内存状态信息
     Root           链接此进程的root目录

10、系统日志
&#8226;        系统日志记录着系统运行中的记录信息
&#8226;        在服务或系统发生故障的时候,通过查询系统日志,可以帮助我们诊断。
&#8226;        系统日志可以预警安全问题
&#8226;        系统日志一般都存放在/var/log目录下
11、常用的系统日志
&#8226;        /var/log/dmesg
        核心启动日志
&#8226;        /var/log/messages
        系统报错日志
&#8226;        /var/log/maillog
        邮件系统日志
解释:
&#8226;        /var/log/dmesg,此日志文件写在系统每次启动时,包含了核心装入时系统的所有输出数据。
   我们可以使用dmesg命令直接查看!
&#8226;        /var/log/messages,这是一份标准系统日志,记录着大部分系统服务的输出,包括启动时非关核心的一些输出。
    我们一般只关心最近发生的事件,所以一般使用tail命令查寻文件的结尾。
&#8226;        /var/log/maillog,此日志包含所有由sendmail送出的信息和报错。

12、常用的系统日志(二)
&#8226;        /var/log/xferlog
        FTP服务用日志
&#8226;        /var/log/secure
        安全信息
        系统登录与网络连接的信息
&#8226;        /var/log/wtmp
        登录记录
解释:
&#8226;        /var/log/xferlog,此日志用于记录所有由ftp服务汇报的讯息和报错。
&#8226;        /var/log/secure,此日志包含了所有与系统相关的讯息,诸如登录,tcp_wrapper与xinetd服务。
&#8226;        /var/log/wtmp,系统的每一次登录,都会在此日志中添加记录。为了防止有人篡改,该文件为二进制文件。只能用last这一类的指令来读取。
3968# 2017-7-9 00:12:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-8-17 11:13:58 | 显示全部楼层
好好学习,天天向上
3969# 2017-8-17 11:13:58 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-9-14 13:16:00 | 显示全部楼层
谢谢分享,学习下!
3971# 2017-9-14 13:16:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-10-12 19:06:10 | 显示全部楼层
666666666666
3972# 2017-10-12 19:06:10 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2017-10-12 22:31:16 | 显示全部楼层
发的发的发的
3973# 2017-10-12 22:31:16 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-28 02:03 , Processed in 0.072014 second(s), 19 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表