Linux比较全1

来源:互联网 发布:mac能用的翻墙软件 编辑:程序博客网 时间:2024/05/14 07:31

u1、cat 显示文件连接文件内容的工具;

cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。

比如:

[root@localhost~]# cat /etc/fstab

为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;


1.0 cat 语法结构;

cat [选项] [文件]...

 

选项

  -A, --show-all           等价于 -vET

  -b, --number-nonblank    对非空输出行编号

  -e                       等价于 -vE

  -E, --show-ends          在每行结束处显示 $

  -n, --number             对输出的所有行编号

  -s, --squeeze-blank      不输出多行空行

  -t                       与 -vT 等价

  -T, --show-tabs          将跳格字符显示为 ^I

  -u                       (被忽略)

  -v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

      --help    显示此帮助信息并离开


1.1 cat 查看文件内容实例;

[root@localhost ~]# cat/etc/profile 注:查看/etc/目录下的profile文件内容;
[root@localhost~]# cat -b /etc/fstab 注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
[root@localhost~]# cat -n /etc/profile 注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
[root@localhost~]# cat -E /etc/profile 注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;

cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;

[root@localhost ~]# cat -n/etc/profile
[root@localhost~]# nl /etc/profile

cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;

[root@localhost~]# cat /etc/fstab /etc/profile

cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;

[root@localhost~]# cat /etc/fstab /etc/profile | more


1.2 cat 的创建、连接文件功能实例;


cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;

[root@localhost ~]# cat >linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件;
>我来测试 cat 创建文件,并且为文件输入内容; 注:这是为linuxsir.org.txt文件输入内容;
>北南南北 测试; 注:这是为linuxsir.org.txt文件输入内容;
>EOF 注:退出编辑状态;
[root@localhost~]# cat linuxsir.org.txt 注:我们查看一下linuxsir.org.txt文件的内容;
我来测试 cat 创建文件,并且为文件输入内容;
北南南北 测试;

cat 还有向已存在的文件追加内容的功能;

[root@localhost ~]# catlinuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
Iam BeiNanNanBei From LinuxSir.Org . 注:内容行
我正在为cat命令写文档
[root@localhost~]# cat >> linuxsir.txt << EOF 注:我们向linuxsir.txt文件追加内容;
>我来测试cat向文档追加内容的功能; 注:这是追回的内容
>OK?
>OK~
>北南 呈上
>EOF 注:以EOF退出;
[root@localhost~]# cat linuxsir.txt 注:查看文件内容,看是否追回成功。
Iam BeiNanNanBei From LinuxSir.Org .
我正在为cat命令写文档
我来测试cat向文档追加内容的功能;
OK?
OK~
北南 呈上




cat 连接多个文件的内容并且输出到一个新文件中;

假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;

[root@localhost ~]# cat sir01.txt
123456
iam testing
[root@localhost~]# cat sir02.txt
56789
BeiNanTested
[root@localhost~]# cat sir03.txt
09876
linuxsir.orgtesting

我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。

注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。

[root@localhost ~]# cat sir01.txtsir02.txt sir03.txt > sir04.txt
[root@localhost~]# more sir04.txt
123456
iam testing
56789
BeiNanTested
09876
linuxsir.orgtesting

cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中

[root@localhost ~]# cat sir00.txt
linuxsir.orgforever
[root@localhost~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt
[root@localhost~]# cat sir00.txt
linuxsir.orgforever
123456
iam testing
56789
BeiNanTested
09876
linuxsir.orgtesting

警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;


2、more 文件内容或输出查看工具;


more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比;

[root@localhost ~]# more/etc/profile


2.1 more 的语法、参数和命令;

more [参数选项] [文件]

参数如下:

+num                           从第num行开始显示;

-num                           定义屏幕大小,为num行;

+/pattern            从pattern 前两行开始显示;

-c                             从顶部清屏然后显示;

-d                             提示Press space to continue, 'q' toquit.(按空格键继续,按q键退出),禁用响铃功能;

-l                             忽略Ctrl+l (换页)字符;

-p                             通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似; 

-s                                       把连续的多个空行显示为一行;

-u                                       把文件内容中的下划线去掉

退出more的动作指令是q


2.2 more 的参数应用举例;

[root@localhost ~]# more -dc/etc/profile 注:显示提示,并从终端或控制台顶部显示;
[root@localhost~]# more +4 /etc/profile 注:从profile的第4行开始显示;
[root@localhost~]# more -4 /etc/profile 注:每屏显示4行;
[root@localhost~]# more +/MAIL /etc/profile 注:从profile中的第一个MAIL单词的前两行开始显示;


2.3 more 的动作指令;

我们查看一个内容较大的文件时,要用到more的动作指令,比如ctrl+f(或空格键) 是向下显示一屏,ctrl+b是返回上一屏; Enter键可以向下滚动显示n行,要通过定,默认为1行;

我们只说几个常用的; 自己尝试一下就知道了;

Enter         向下n行,需要定义,默认为1行;

Ctrl+f               向下滚动一屏;

空格键                          向下滚动一屏;

Ctrl+b              返回上一屏;

=                                        输出当前行的行号;

:f                             输出文件名和当前行的行号;

v                                        调用vi编辑器;

! 命令                           调用Shell,并执行命令;

q                                        退出more

当我们查看某一文件时,想调用vi来编辑它,不要忘记了v动作指令,这是比较方便的;


2.4 其它命令通过管道和more结合的运用例子;

比如我们列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来,比如:

[root@localhost~]# ls -l /etc |more


3、less 查看文件内容 工具;

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大;您是初学者,我建议您用less。由于less的内容太多,我们把最常用的介绍一下;


3.1 less的语法格式;

less [参数] 文件

常用参数

-c 从顶部(从上到下)刷新屏幕,并显示文件内容。而不是通过底部滚动完成刷新;
-f强制打开文件,二进制文件显示时,不提示警告;
-i搜索时忽略大小写;除非搜索串中包含大写字母;
-I搜索时忽略大小写,除非搜索串中包含小写字母;
-m显示读取文件的百分比;
-M显法读取文件的百分比、行号及总行数;
-N在每行前输出行号;
-ppattern 搜索pattern;比如在/etc/profile搜索单词MAIL,就用 less -p MAIL /etc/profile
-s把连续多个空白行作为一个空白行显示;
-Q在终端下不响铃;

比如:我们在显示/etc/profile的内容时,让其显示行号;

[root@localhost ~]# less -N/etc/profile


3.2 less的动作命令;

进入less后,我们得学几个动作,这样更方便 我们查阅文件内容;最应该记住的命令就是q,这个能让less终止查看文件退出;

动作

回车键 向下移动一行;
y向上移动一行;
空格键 向下滚动一屏;
b向上滚动一屏;
d向下滚动半屏;
hless的帮助;
u向上洋动半屏;
w可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是6,那就从第7行显示;
g跳到第一行;
G跳到最后一行;
pn% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
/pattern搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
v调用vi编辑器;
q退出less
!command调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;

就less的动作来说,内容太多了,用的时候查一查man less是最好的。在这里就不举例子了;


4、head 工具,显示文件内容的前几行;

head 是显示一个文件的内容的前多少行;

用法比较简单;

head -n 行数值 文件名;

比如我们显示/etc/profile的前10行内容,应该是:

[root@localhost ~]# head -n 10/etc/profile


5、tail 工具,显示文件内容的最后几行;

tail 是显示一个文件的内容的前多少行;

用法比较简单;

tail -n 行数值 文件名;

比如我们显示/etc/profile的最后5行内容,应该是:

[root@localhost ~]# tail -n 5/etc/profile

 

 

 

 

1、关于文本编辑器;

文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的编辑器有vi、vim(vi的增强版本)和nano ... ... vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi(vim)最简单的用法,以让Linux入门级用户在最短的时间内学会使用它。

nano 工具和DOS操作系统下的edit操作相似,使用简单,我们不作介绍了,如果您有兴趣,不妨尝试一下;


2、vi 编辑器;

为什么要学会简单应用vi

vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。当您没有安装X-windows桌面环境或桌面环境崩溃时,我们仍需要字符模式下的编辑器vi;

vi或vim 编辑器在创建和编辑简单文档最高效的工具;


3、vi 编辑器的使用方法;


3.1 如何调用vi ;

[root@localhost ~]# vi filename

~
~
~
~
~
~
~
~


3.2 vi 的三种命令模式;

Command(命令)模式,用于输入命令;
Insert(插入)模式,用于插入文本;
Visual(可视)模式,用于视化的的高亮并选定正文;


3.3 文件的保存和退出;

Command 模式是vi或vim的默认模式,如果我们处于其它命令模式时,要通过ESC键切换过来。

当我们按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令;

:w 保存;
:wfilename 另存为filename;
:wq!保存退出;
:wq!filename 注:以filename为文件名保存后退出;
:q!不保存退出;
:x应该是保存并退出 ,功能和:wq!相同


3.4 光标移动;

当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标;

j 向下移动一行;
k向上移动一行;
h向左移动一个字符;
l向右移动一个字符;
ctrl+b向上移动一屏;
ctrl+f向下移动一屏;
向上箭头 向上移动;
向下箭头 向下移动;
向左箭头 向左移动;
向右箭头 向右移动;

我们编辑一个文件时,对于 j、k、l和h键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行。


3.5 插入模式(文本的插入);

i 在光标之前插入;
a在光标之后插入;
I在光标所在行的行首插入;
A在光标所在行的行末插入;
o在光标所在的行的上面插入一行;
O在光标所在的行的下面插入一行;
s删除光标后的一个字符,然后进入插入模式;
S删除光标所在的行,然后进入插入模式;


3.6 文本内容的删除操作;

x 一个字符;
#x删除几个字符,#表示数字,比如3x;
dw删除一个单词;
#dw删除几个单词,#用数字表示,比如3dw表示删除三个单词;
dd删除一行;
#dd删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行;
d$删除光标到行尾的内容;
J清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起;


3.7 恢复修改及恢复删除操作;

u 撤消修改或删除操作;

按ESC键返回Command(命令)模式,然后按u键来撤消删除以前的删除或修改;如果您想撤消多个以前的修改或删除操作,请按多按几次u。这和Word的撤消操作没有太大的区别;


3.8 可视模式;

在最新的Linux发行版本中,vi提供了可视模式,因为这个功能是vim才有的。如果您用的vi没有这个功能,就换成vim就有了。打开可视模式,按ESC键,然后按v就进入可视模式;

可视模式为我们提供了极为友好的选取文本范围,以高亮显示;在屏幕的最下方显示有;

-- 可视 --

--VISUAL--

如图:

进入可视模式,我们就可以用前面所说的命令行模式中的光标移动指令,可以进行文本范围的选取。

选取文本范围有何用?

我们可以对某部份删除作业,按d键就删除了我们选中的内容。
选中内容后,我们按y就表示复制;按d表示删除;

值得一提是的删除的同时,也表示复制。我们返回到命令模式,然后移动光标到某个位置,然后按shift+p键,就把刚才删除的内容贴上了。我们先在这里提一句,在后文,我们还得详细说说。

退出可视模式,还是用ESC键;


3.9 复制和粘帖的操作;

其实删除也带有剪切的意思,当我们删除文字时,可以把光标移动到某处,然后按shift+p键就把内容贴在原处,然后再移动光标到某处,然后再按p或shift+p又能贴上;

p 在光标之后粘帖;
shift+p在光标之前粘帖

来举一例:

比如我们想把一个文档的第三行复制下来,然后帖到第五行的后面,我们应该怎么做呢?

有两种方法;

第一种方法:

先把第三行删除,把光标移动到第三行处,然后用dd动作,接着再按一下shift+p键。这样就把刚才删除的第三行帖在原处了。

接着我们再用k键移动光标到第五行,然后再按一下p键,这样就把第三行的内容又帖到第五行的后面了;

第二种方法;

进入可视模式,按ESC键,然后按v键。移动鼠标指针,选中第三行的内容,然后按y键复制;再移动指针到第五行,最后按p键;

所以复制和粘贴操作,是命令模式、插入模式及可视模式的综合运用;我们要学会各种模式之间的切换,要常用ESC键;更为重要的学会在命令模式下移动光标;


3.10 关于行号;

有时我们配置一个程序运行时,会出现配置文件X行出现错误 。这时我们要用到行号相关的操作;


为所有内容添加行号;

按ESC键,然后输入:

:set number

光标所处位置

在屏幕的右下角,有类似如下的;

         57,827%

在这之中,57表示第57行,8表示第8个字符;


3.11 查找和替换功能;


3.11.1 查找;

首先,我们要进入ESC键,进入命令模式;我们输入/或?就进入查找模式了;

/SEARCH 注:正向查找,按n键把光标移动到下一个符合条件的地方;
?SEARCH注:反向查找,按shift+n 键,把光标移动到下一个符合条件的

举一例:比如我想在一个文件中找到swap单词,我应该如下做;

首先按ESC键,进入命令模式,然后输入;

/swap

?swap


3.11.2 替换;

按ESC键进入命令模式;

:s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示;
:%s/SEARCH/REPLACE 注:把文档中所有SEARCH替换成REPLACE;
:#,#s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;

注:在这之中,g表示全局查找;我们注意到,就是没有替换的地方,也会把SEARCH高亮显示;

举例说明:

比如我们有一篇文档要修改;

我们把光标所在的行,把所有单词the,替换成THE,应该是:

:s /the/THE/g

我们把整篇文档的所有的the都替换成THE,应该是:

:%s /the/THE

我们仅仅是把第1行到第10行中的the,替换成THE,应该是;

:1,10 s /the/THE/g

 

 

 

 

 

 

 

 

 

1、Linux文件的扩展名;

一谈到文件类型,大家就能想到Windows的文件类型,比如file.txt、file.doc、file.sys、file.mp3、file.exe等,根据文件的后缀就能判断文件的类型。但在Linux一个文件是否能被执行,和后缀名没有太大的关系,主要看文件的属性有关。但我们了解一下Linux文件的后缀名还是有必要的,特别是我们自己创建一些文件,最好还是加后缀名,这样做的目的是仅仅是为了我们的在应用时方便。

现在的Linux桌面环境和Windows一样智能化,文件的类型是和相应的程序关联的。在我们打开某个文件时,系统会自动判断用哪个应用程序打开。如果从这方面来说,Linux桌面环境和Windows桌面没有太大的区别。

在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。

file.tar.gz file.tgz file.tar.bz2 file.rar file.gzfile.zip ... ... 这些大家都熟悉,是归档文件。要通过相应的工具来解压或提取;

file.php 这个大家都知道吧,是能用php语言解释器进行解释,能用浏览器打开的文件;

file.so 这类是库文件;

file.doc file.obt 这是OpenOffice 能打开的文件;

... ...

用一些工具创建的文件,其后缀也不相同,就看我们用什么工具了,比如 Gimp,gedit,OpenOffice 等工具,创建出来的文件后缀名也不一样。


2、Linux 文件类型;

Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。

Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;现在我们进行一个简要的说明;


2.1 普通文件;

[root@localhost ~]# ls -lhinstall.log
-rw-r--r--1 root root 53K 03-16 08:54 install.log

我们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r--r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... .... 或 cp工具等。这类文件的删除方式是用rm 命令;


2.2 目录;

[root@localhost ~]# ls -lh
总计 14M
-rw-r--r--1 root root 2 03-27 02:00 fonts.scale
-rw-r--r--1 root root 53K 03-16 08:54 install.log
-rw-r--r--1 root root 14M03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
drwxr-xr-x2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17
drwxr-xr-x2 root root 4.0K 04-19 10:53 mydir
drwxr-xr-x2 root root 4.0K 03-17 04:25 Public

当我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。


2.3 字符设备或块设备文件;

如时您进入/dev目录,列一下文件,会看到类似如下的;

[root@localhost ~]# ls -la /dev/tty
crw-rw-rw-1 root tty 5, 0 04-19 08:29 /dev/tty
[root@localhost~]# ls -la /dev/hda1
brw-r-----1 root disk 3, 1 2006-04-19 /dev/hda1

我们看到/dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备

我们看到 /dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备;

这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。


2.4 套接口文件;

当我们启动MySQL服务器时,会产生一个mysql.sock的文件。

[root@localhost ~]# ls -lh/var/lib/mysql/mysql.sock
srwxrwxrwx1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock

注意这个文件的属性的第一个字符是 s。我们了解一下就行了。


2.5 符号链接文件;

[root@localhost ~]# ls -lhsetup.log
lrwxrwxrwx1 root root 11 04-19 11:18 setup.log -> install.log

当我们查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln -s 源文件名 新文件名 。上面是一个例子,表示setup.log是install.log的软链接文件。怎么理解呢?这和Windows操作系统中的快捷方式有点相似。

符号链接文件的创建方法举例;

[root@localhost ~]# ls -lh kernel-2.6.15-1.2025_FC5.i686.rpm
-rw-r--r--1 root root 14M03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
[root@localhost~]# ln -s kernel-2.6.15-1.2025_FC5.i686.rpm kernel.rpm
[root@localhost~]# ls -lh kernel*
-rw-r--r--1 root root 14M03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx1 root root 33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm