选择哪个发行版?
就目前的情形看,Linux 发行版可以分为三个主要的分支:RedHat、Slackware 和 Debian。每一个分支都拥有一个最具代表性的商业服务器级的发行版,它们是:Red Hat Enterprise Linux 简称(RHEL);SUSE Linux Enterprise 简称(SUSE);Ubuntu Server 简称(Ubuntu)。
Linux 分支概念在当前的发行版中越来越模糊了,现在比较清晰的是软件安装方法的不同,有些使用 rpm,有些使用 deb,有些甚至直接采用源代码。当然,这样的差别只有在使用不同安装方法的发行版之间才能感觉到。在日常使用中,Linux 就是 Linux,跟发行版没什么关系。
比较理想的选择应该是--CentOS,它实际是 RHEL 的一个克隆,RHEL 有一个优势,就是对 KVM 虚拟机的支持。为什么要选择 RHEL 的一个克隆呢?原因非常简单,RHEL 要收费,当然 RHEL 也允许免费使用,但是你将得不到任何系统升级服务,也得不到任何技术支持。RHEL 在对外发行的时候采用两种方式:一种就是收费的二进制方式,一种就是完全免费的源代码方式。CentOS 就是利用完全免费的 RHEL 的源代码重新编译而成的。免费提供给大家,所以本质上与 RHEL 没什么区别。唯一的区别就是更新的频率没有付费的 RHEL 快。
安装系统
建议安装64位的版本,毕竟现在已经是21世纪又过了10多年了,老掉牙的32位系统应该在坟墓里歇息了!在安装 CentOS 6.x 以上时,确保能启动图形安装模式,那么必须保证你的机器内存大于628M。
CentOS 6.x 的图文安装教程:
登录系统
Linux 的用户被划分为根用户和普通用户两种。其中根用户是系统内置用户,用户名永远都是 root,所以也叫 root 用户。Linux 的 root 用户与 Windows 的 administrator 用户是一样的,都拥有系统的最高控制权。普通用户一般是用户自定义的,所以没什么特别的权限。
如果在安装 Linux 系统的时候,没有给系统添加任何普通用户,那么请用 root 登录,密码则是你安装系统时设置的初始密码。
不一样的图形操作
Linux 本身是没有图形界面的。不管你信还是不信,事实就是这个样子。这么说的原因并不是因为 Linux 只是一个内核,其实所有类 UNIX 操作系统本身都没有图形用户界面。
那为什么我们能通过图形用户界面来使用 Linux 或者其他类 UNIX 操作系统呢?原因是有一个软件提供了这样的功能。Linux 上提供这个功能的软件以前是 XFree86,现在是 xorg(X.Org)。虽然这两个软件名字上差别很大,但实际上是一个软件的不同分支。1992~2004年间就只有 XFree86,以 GPL 许可证发型。但是2004年就发生了变化,XFree86 的开发商改变了许可证。这引起了GNU社区的极大不满,于是从 XFree86 4.4 RC2 衍生出了 xorg。目前几乎所有开源的类 UNIX 操作系统使用的都是 xorg。
X 和 xorg 是什么关系?KDE、GNOME 跟它们又是什么关系?
首先,X 不是什么具体的软件,它是一种协议,和 HTTP 协议、SOAP 协议等是一样的。而 xorg 则是实现 X 协议的服务器软件,这跟实现 HTTP 协议的 IIS、Apache 是相同的概念。那么 xorg 通过 X 协议来提供什么服务呢?答案是图形用户界面服务。Apache 的客户端请求 Apache 得到的结果是 HTML 内容,而 xorg 的客户端请求 xorg 的结果则是向屏幕上画图。所以,Linux 上的那些用户图形用户界面的软件实际上都是 xorg 的客户端,它们利用 X 协议让 xorg 在屏幕上画出窗口或通过 xorg 获得键盘和鼠标事件。
如果系统中只有 xorg 是不可能有任何图形界面供大家使用的,至少还需要有个 X 客户端程序。而且这个X 客户端程序还有一个专有名称--窗口管理器,英文叫做 Window Manager,简称WM。WM 也不是一个具体的软件,而是一类软件。比如 KDE、GNOME 这些就是窗口管理器,它们控制窗口外观、位置和提供用户去操作这些窗口的方法。如果你当前使用的 Linux 系统没有配置成默认使用图形用户界面的话,可以使用命令:
来启动 xorg 和默认的 WM。对于 CentOS 6.4 来说,默认的 WM 应该是 GNOME 的 Metacity 窗口管理器(KDE 的是 KWin)。
目前比较流行的就有 GNOME、KDE、XFCE 和 LXDE,它们并称为 Linux 图形界面的杰,它们并不是单纯的单一软件,而是一套软件集合,比如 WM、DM(显示管理器:Display Manager)、应用框架库等。
返璞归真的命令行
Linux 系统上的软件向来是百花齐放,模拟器终端也不例外,例如 gnome-terminal、konsole、xterm、rxvt、kvt、nxterm 和 eterm 等,而大多数 Linux 发行版会同时支持几种。
要在文本和图形界面之间来回切换非常简单,只需要使用快捷键“Ctrl+Alt+F1”~“Ctrl+Alt+F6”来回切换就行,具体什么效果大家可以自己试验。
如果想在 Windows 平台下管理 Linux 系统,推荐使用 PuTTY(一个免费的 telnet、rlogin 和 SSH 客户端) 和 WinSCP(使用 SSH 的开源图形化 SFTP 客户端) 搭配使用。
Linux 命令太多了,数量至少有 200 多个,怎么记呀。其实谁也记不住这么多命令,剥丝抽茧抓重点,把重要的和经常使用的搞定了就行。按照它们在系统中所起的作用,我做一下简单地分类说明:
命令 |
说明 |
目录和文件处理: 在讲解之前,我们先认识一下几个好玩的符号 . :小点活在当下,即当前目录。例如:./jie_work执行当前目录下的jie_work文件 ..:两点跑上去,既到当前的上一级目录。举个例子,命令cd..修改当前工作目录到上一级目录 ~ :水波带我回家,即/home/我的登录名。例如我的登录名为zhangjie,cd ~命令就是cd /home/zhangjie。当然你直接输入cd,也有同样功效 |
mkdir |
建立目录 用法:mkdir [OPTION] DIRECTORY… 例:mkdir fangru |
ls |
列出目录下的内容 用法:ls [OPTION]…[FILE]… 例:ls -al fangru |
cd |
更换工作目录 用法:cd [DIRECTORY] 例:cd fangru |
pwd |
显示当前工作目录 用法:pwd |
vim |
增强版文本编辑器 用法:vim [OPTION] [file] 例:vim helloworld.c |
cp |
拷贝文件及其目录 用法:cp [OPTION]... SOURCE DEST 例:cp jie.txt jie.bak |
mv |
移动(重命名)文件 用法:mv [OPTION]…SOURCE DEST 例:mv jieold jienew |
rm |
删除文件或目录 用法:rm [OPTION]…FILE… 例:rm -rf jie_dir |
find |
在目录及其子目录查找文件 用法:find [OPTION] [path] [pattern] 例:find -name jie*.txt |
history |
显示最近使用过的命令 用法:history |
文本处理: 在讲解之前,有必要说明一下模式的定义。 模式是一种表达式,不列出所有元素,而是给出一系列字符串的一种精确描述 例如:ab*cd匹配了以ab开始和cd结束的一系列字符串 |
cat |
连结文件打印到标准输出 用法:cat [OPTION] [FILE]… 例:cat pic.png love.txt > pic1.png 还记得那个命令行的故事吧? |
echo |
显示一行文本 用法:echo [OPTION] [string] 例:echo $HOME |
grep |
搜索特定的内容并将含有这些内容的行标准输出 用法:grep [OPTION] PATTERN [FILE] 例:grep -i Jagen magicLinux.txt |
wc |
统计指定文件中的字节数、字数、行数,并将统计结果显示输出 用法:wc [OPTION]…[FILE] 例:wc -L magicLinux.txt |
sort |
对文件中的各行进行排序 用法:sort [OPTION]…[FILE] 例:sort -r magicLinux.txt |
系统管理: 在讲解这类命令之前,先谈谈文件权限的定义。Linux系统上文件有三种权限-读、写和执行。敲入ls -l命令后,我们会发现有10个字母表示文件类型和权限信息:第一个字母是文件类型,d代表目录,-代表普通文件;接下了的每三个字母为一组,分别代表拥有者(owner)群组成员(groups)其他人(others)的读、写和执行权限。 例:drwxrw-r--意味着这是一个目录,拥有者拥有读、写和执行三种权限,群组成员拥有读写权限,其他人只拥有可读权限。 权限位还可以用相应的数值来代表,读-4、写-2、执行-1,这些数字或它们的和就代表一个角色的权限。 例:rwxrw-r-- = 764 673 = rw-rwx-wx |
chmod |
控制用户对文件的权限 用法:chmod [OPTION] [MODE] [FILE] 例:chmod 764 count.sh |
chown |
改变档案的拥有者 用法:chown [OPTION]…OWNER[:[GROUP]] FILE 例:chown jie magicLinux.txt |
su |
su是切换到其他用户,但是不切换环境变量 su - 是完整的切换到一个用户环境 要知两者的区别,用export命令一查便知。 用法:su [OPTION] [LOGIN] 例:su zhangjie |
passwd |
更改使用者的密码参数 /etc/passwd 存储的是操作系统用户信息,该文件为所有用户可见 /etc/shadow 被称为/etc/passwd的影子文件。它们之间的内容是互补的。shadow内容包括用户及被加密的密码以及其它/etc/passwd不能包括的信息,比如用户的有效期限等 用法:passwd [OPTION] 例:passwd zhangjie |
who |
显示目前登入系统的用户信息 用法:who [OPTION] 例:who -b |
进程管理 |
ps |
强悍的进程查看命令 用法:ps [OPTION] 例:ps -aef |
kill |
删除执行中的程序或工作 用法:kill [OPTION] 例:kill -9 3154 |
jobs |
通过jobs命令查到后台正在执行的命令的序号(非进程号pid) 用法:jobs |
bg |
指定号码(非进程号)的命令进程放到后台运行 用法:输入'ctrl+z' 然后输入 'bg<job id>' 例:bg <job id> |
fg |
指定号码(非进程号)的命令进程放到前台运行 用法:fg <jobid> |
档案 |
tar |
压缩和解压 用法:tar [OPTION] DEST SOURCE 例:tar -cvf /home/archive.tar(压缩) tar -xvf /home/archive.tar(解压) |
zip |
打包压缩 用法:zip [OPTION] DEST SOURSE 例:zip original.zip original |
unzip |
解压缩zip文件 用法:unzip filename 例:unzip original.zip |
网络 |
ssh |
远程登录的客户端 用法:ssh [options] [user]@hostname 例:ssh [email protected] |
scp |
基于ssh登陆进行安全的远程文件拷贝命令 用法:scp [options] [[user]@host1:file1] [[user]@host2:file2] 例:scp file1.txt [email protected]:~/work/ |
文件系统 |
fdisk |
观察硬盘之实体使用情形与分割硬盘用 用法:fdisk [options] 例:sudo fdisk -l |
mount |
如果你要使用储存设备(Mo、硬盘、光驱等),就得先将它挂上(Mount),而当储存设备挂上了之后,就可以把它当成一个目录来进行访问。挂上一个设备使用mount命令 在使用mount这个指令时,至少要先知道下列三种信息: 1. 要Mount对象的文件系统类型? 2. 要Mount对象的设备名称? 3. 要将设备Mount到哪个目录去? 用法:mount -t type device dir 例:mount /dev/sda5 /media/target |
umount |
卸除文件系统 用法:umount [OPTIONS] dir | device 例:umount /media/target |
du |
查看目录或文件所占用磁盘空间的大小 用法:du [OPTION]……[FILE]…… 例:du |
df |
检查文件系统的磁盘空间占用情况。 用法:df [OPTION]……[FILE]…… 例:df |
quota |
显示磁盘使用情况和限制情况 用法:quota [OPTION] 例:quota -v |
扩展 |
reboot |
重启系统 用法:reboot [OPTION] 例:reboot |
poweroff |
关闭系统 用法:poweroff [OPTION] 例:poweroff |
sed |
一种在线编辑器,它一次处理一行内容 用法:sed [OPTION] [input-file] 例:sed 's/love/hate/g' loveletter.txt |
awk |
一种文本处理工具,Linux及Unix环境中功能最强大的数据处理引擎之一。 用法:awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ……] 例:awk '/^[ns]/{print $1}' test |
遇到问题寻找帮助能加快解决问题的速度。在 Linux 系统上,有以下几个途径使用帮助:
1、遇到问题,man 命令的帮助很靠谱。需要某个命令或者配置文件的帮助,就在终端输入:man 命令名 或 man 配置文件
屏幕就会显示对应命令系统的帮助手册。输入“Q”退出帮助浏览器。
2、info 和 man 功能相似,但是包含更多的最新信息。
3、使用 命令名 –help 得到一个简略容易消化的命令帮助。
4、程序自带 Readme 文件或者其他帮助信息文件,例如在 /usr/share/doc 下的一些手册。
如何在man页中查找信息呢?浏览 man 页默认的工具是 less。less 的使用方法很简单。翻页用“Space”,翻半页用“U”,查找用 / 紧跟着正则表达式,用“N”查找下一个匹配项,用“Shift+ N”查找前一个匹配项。如果这页里没有你感兴趣的,按“Space”翻到下页。更多的操作还是 man 一下 less 文档吧。
很多命令的 man 帮助页中涉及到脚本命令、系统调用和编程接口等多方面。例如“man printf”就是浏览 printf 的编程手册。用“man -a 【命令名】”查看关于这个【命令名】所有帮助的文档。“man -k scanf”会给你一个所有与 scanf 有关的 man 页列表。还有,SEE ALSO 经常是被遗忘的角落,但是我经常会在这里发现其他有用的命令或函数,千万不要放过它。
条条大路通罗马,你是 Linux 系统的主人,如果喜欢用 vim 阅读 man 页的话,改一下配置和装个 man.vim 插件就行,另外使用 most 工具浏览 man 页也是一个好主意。