Jason's Blog

《Linux 就是这个范儿 - 阅读笔记1》 第一次亲密接触

选择哪个发行版?

就目前的情形看,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 系统没有配置成默认使用图形用户界面的话,可以使用命令:

# startx

来启动 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/我的登录名。例如我的登录名为zhangjiecd ~命令就是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

一种文本处理工具,LinuxUnix环境中功能最强大的数据处理引擎之一。

用法: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 页也是一个好主意。

 

posted @ 2014-09-07 19:41  jasonsoop  阅读(493)  评论(3编辑  收藏  举报