Linux Shell学习笔记

来源:互联网 发布:cn丅v中国网络电视台 编辑:程序博客网 时间:2024/04/30 06:43

第二章 Shell基础

 

1.Shell初始化时使用那两个文件?

/etc/profile,它包含系统中所有用户都需要的Shell初始化信息

.profile,是否在用户的起始目录中。起始目录是用户登录进入后所位于的目录

 

2.为什么需要设置PATH和MANPATH?

Shell命令在执行前将定位命令所在的位置。PATH的作用就在定位此位置

MANPATH用于设置在线帮助手册的位置

 

3.脚本中第一行代码 #!/bin/sh 的目的是什么?

保证以sh来运行脚本,否则不论哪种shell,都将使用当前shell来执行脚本。

 

4.访问在线帮助需要使用什么命令?

man command

 

重要概念

1.未初始化Shell:当Shell刚启动时,它还没有被初始化。这意味着Shell正确运行所需的重要参数尚未被定义。

2.Shell初始化:在Shell启动后,它要经历一个初始化的阶段来设置一些重要参数。这实际上一个两步的过程,Shell在此时读取

文件/etc/profile和./profile

3.起始目录:用户的起始目录是用户登录后所位于的目录

 

 

第三章 文件操作

UNIX有3种基本类型文件:

1.普通文件

2.目录

3.特殊文件

一个普通文件是系统中包含数据、文本或程序指令的文件。

 

3.1 列文件名

$ ls  #列目录

该输出说明在当前目录下有许多不同的项,但没有告诉哪些是文件和文件夹。

 

$ ls -F  #列目录,-F 表示将文件夹以 / 符号结束,标识出来。

 

$ ls -l  #一行一行的列出目录,方便awk过滤文本。

 

 

3.1.1 隐藏文件

在Linux中,不可见文件是以(.)开头的文件

例如:

.profile, Bourne Shell(sh)的初始化脚本

.kshrc, Korn Shell(ksh)的脚本初始化

.cshrc, C Shell(csh)的脚本初始化

.rhosts, 远程Shell配置文件

所有不以(.)符号开头的文件都被认为是可见的。

要列出不可见文件,只需使用-a选项。

$ ls -a #列目录,包括隐藏文件

 

 

3.2 浏览文件内容

列文件名很重要,但Shell脚本还需要浏览文件内容.

 

3.2.1 使用cat命令浏览文件内容

$ cat hosts  #显示hosts文件内容

可以声明不只一个文件:

$ cat hosts users  #将显示两个文件的内容

 

参数-n,将输出结果标明行号。

参数-b,忽略空行。

 

3.2.2 使用wc统计单词

可以使用该命令来统计文件包含的行数、单词数、字符数.

格式:wc [options] files

$ wc .hosts  

如果没有使用选用,则输出对行数、单词数、字符数的统计汇总.

上述返回结果是:7 14 179 .hosts

分别代表:文件行数、单词数、字符数、文件名

 

它支持同时统计多个文件。

$ wc test1.php test2.php

返回结果将以换行形式,顺序的输出统计信息

 

-l:统计行数

-w:统计单词数

-c:统计字符数

 

3.3 操作文件

操作文件的几种方式:

1.拷贝文件

2.重命名文件

3.删除文件

 

3.3.1 cp拷贝文件命令

$ cp source destination

source:拷贝的文件名

destination:拷贝名

例如:将test1.php 拷贝并放到名为test2.php的文件

$ cp test1.php test2.php

 

1.常见错误

cp命令没有输出,除非它出现了错误。它包括两种常见错误:

1.源文件是一个目录

2.源文件不存在

 

2.交互模式

如果目标文件已存在是不会产生错误信息。这种情况下,目标文件自动被覆盖。这可能导致潜在的危险。

为避免这种情况,需要使用选项-i,来提示进行交互操作。y表示覆盖,n表示取消。

 

3.把文件拷贝到另一个目录

如果目标文件是一个目录,则拷贝的名字与源文件名相同,并拷贝到目标目录下。

$ cp test1.php /var/www/html/

将会在/var/www/html/生成名为test1.php的文件。

 

4.多个输入

$ cp test1.php test2.php test3.php /var/www/html/

将最后一个参数当作目标文件,将test1.php,test2.php,test3.php拷贝到/var/www/html/目录下。

但如果是一个源文件,而有多个目录,则会产生错误。

 

-R选项,目录间的拷贝

 

3.3.2 mv重命名文件

$ mv source destination

source:源文件路径名

destination:新文件名

若目标文件名已经存在,则会提示是否删除后再重命名。

-i选项为交互模式

 

3.3.3 rm删除文件

$ rm files

删除一个或多个文件列表

1.常见错误

声明的文件不存在

声明的文件是目录

 

因为被rm删除的文件无法恢复,所以用户可以使用-i选项使用交互模式,提示删除每一个文件。

使用-R选项,可以删除文件目录

 

在上面所有命令中,存在交互模式的,可以使用-f选项屏蔽提示。

原创粉丝点击