选择哪个发行版?
就目前的情形看,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 zhangjie@10.105.11.20
|
scp
|
基于ssh登陆进行安全的远程文件拷贝命令
用法:scp [options] [[user]@host1:file1] [[user]@host2:file2]
例:scp file1.txt zhangjie@10.105.11.20:~/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 页也是一个好主意。