《linux命令行与shell脚本编程大全》学习笔记(2)

三 章基本的bash shell命令

1.启动shell

GNU bash shell能提供对linux系统的交互式访问。它是作为常规程序运行的,通常是在用户登录终端时启动。登录时系统启动的shell依赖于用户账户的配置。

/etc/passwd文件包含了所有系统用户账户列表以及每个用户的基本配置信息。如下读取的样例条目:

wKioL1Z00DuBkgNXAAAnOOJwAaI054.jpg 

每个条目有七个字段,字段之间用冒号分隔。系统使用字段中的数据来赋予用户账户某些特定特性。这些字段包括:

① 用户名;

② 用户密码(如果密码存储在其他文件中,则是个占位符)

③ 用户的系统UID(用户ID

④ 用户的全名

⑤ 用户默认的宿主目录

⑥ 用户的默认主目录

⑦ 用户的默认shell

上面各字段含义将在以后的学习中深入讨论

多数linux系统在为用户启动命令行界面(command line interfaceCLI)时采用默认的bash shell程序。Bash shell程序同样使用命令行参数来修改所启动shell的类型。

默认情况下,bash shell启动时会自动处理用户主目录下.bashrc文件中的命令。许多linux发行版在此文件中加载特殊的共用文件,在共用文件中保存着针对所有系统用户的命令和设置。通常该文件位于/etc/bashrc,它经常设置各种应用程序中用到的环境变量。

2.shell提示符

一旦启动了终端模拟包或者从linux控制台登陆,你句会看到shell命令行界面。界面上的提示符就是到shell世界的大门,通常在这里输入shell命令。

Bash shell提示符字符

字符

                描述

\a

报警字符

\d

“日月年”格式显示日期

\e

ASCII转义字符

\h

本地主机名

\H

完全限定域名(FQDN

\j

Shell当前管理的任务数

\l

Shell的终端设备名中的基名

\n

ASCII换行符

\r

ASCII回车符

\s

Shell的名称

\t

24小时制HH:MM:SS格式的当前时间

\T

12小时制HH:MM:SS格式的当前时间

\@

12小时制am/pm格式的当前时间

\u

当前用户的用户名

\v

Bashshell版本

\V

Bashshell的发行版

\w

当前工作目录

\W

当前工作目录的基名

\!

这个命令在bashshell历史记录中的位置

\#

这个命令在当前命令行的位置

\$

普通用户下的美元符($root用户下的井号(#

\nnn

与八进制数nnn对应的字符

\\

反斜线(\

\[

开始一个控制字符序列

\]

结束一个控制字符序列

注意,所有提示符特殊字符都从反斜线(\)开始。该字符将提示符中的特殊字符和普通文本分开来。提示符既有特殊字符,也有普通字符(@符合方括号[])。你可以在提示符中创建热河提示符字符的组合。要创建新的提示符,只需给PS1变量附一个新的字符串就行;

wKiom1Z00MnhtR_AAABKAFABAwE893.jpg 

想要退出输入:su  -

3.linux文件系统

目录

用途

/

虚拟目录的根目录。通常不会在这里存储文件

/bin

二进制目录,存放许多GNU用户级的工具

/boot

启动目录,存放启动文件

/dev

设备目录,linux在这里创建设备节点

/etc

系统配置文件目录

/home

主目录,linux在这里创建用户目录

/lib

库目录,存放系统和应用程序的库文件

/media

媒体目录,存放可移动媒体设备挂载点的地方

/mnt

挂载目录,另一个存放可移动媒体设备挂载点的地方

/opt

可选目录,通常用于存放可选的软件包

/root

根目录

/sbin

系统二进制目录,存放许多GNU管理员级工具

/tmp

临时目录,可以在该目录中创建和删除临时工作文件

/usr

用户安装软件的目录

/var

可变目录,用以存放经常变化的文件,如日志文件

1)基本列表功能(ls命令)

ls常用参数

单字母

     全字

          描述

-a

--all

输出包括以“.”打头的隐藏文件

-A

--almost-all

--author

不要输出“.”和“..”文件

输出每个文件的作者

-b

--escape

--block-size=size

输出打印字符的八进制值

size字节大小的块来计算块大小

-B

--ignore-backups

不要列出名称中包含波浪线(~)的条目

-c


按最后一次修改时间排序

-C


按列输出条目

-d

--directory

列出目录条目而非内容,并且不要跟踪符号链接

-F

--classify

给条目追加文件类型标识符

-g


输出除文件属主外所有信息

-G

--no-group

在长列表输出格式下,不要显示组名

-h

--human-reabable

打印打下,K表示千字节,M表示兆字节,G表示吉字节

-i

--inode

显示每个文件的索引值

-l


按长列表输出格式显示

-L

--dereference

对于链接文件,显示源文件信息

-n

--numeric-uid-gid

显示数字类型的useridgroupid以代替名字在长列表格式下不要显示组名

-r

--reverse

在输出文件和目录时,反转排序的顺序

-R

--recursive

递归的列出子目录内容

-s

--size

输出每个文件的块大小

-S

--sort=size

按每个文件大小输出

-t

--sort=time

按文件的修改时间输出

-u


输出文件的最后访问时间而非最后修改时间

-U

--sort=none

不要将输出排序

-v

--sort=version

按文件版本排序输出

-x


按行而非列输出条目

-X

--sort=extension

按文件扩展名排列输出

例如:ls -F

wKioL1Z00TyBpAZlAACgJL_Z3Gk254.jpg 

ls -F参数会在目录后加了正斜线(/),以方便用户在输出中分辨它们。

ls  -sail

wKioL1Z00VOAKGNRAAJzWG0IaDU746.jpg 

其中第一列数字是文件或目录的索引节点号,第二列是文件块的大小。第三列代表的是文件类型和权限:

dr-xr-x---)其中前面的“d”代表的是文件类型。如目录是(d),文件是(-),字符型文件是(c),块文件(b

ls还可以使用通配符:问号(?)代表一个字符。星号(*)代表零个或多个字符。

wKiom1Z00lajJbPrAADweDexDcw718.jpg 

上面的例子可以看出通配符(?)和(*)号的区别。

2)复制文件(cp命令)

cp命令常用参数

参数

                   描述

-a

归档文件,并保留他们现有的属性

-b

创建已存在目标文件的备份,而非覆盖它

-d

保留

-f

强制覆盖已存在目标文件,不提示

-i

在覆盖目标文件之前提示

-l

创建文件链接而非复制文件

-r

递归的复制文件

-R

递归的复制目录

-s

创建一个符号链接而非复制文件

-S

覆盖默认的备份文件的后缀(默认是~

-u

仅在源文件比目标文件新的情况下复制(相当于更新)

-v

详细模式,解释到底发生了什么

-x

仅限于当前文件系统的复制

链接文件

Linux有两种不同类型的文件链接:

符号链接,即软连接

硬链接

软连接和硬链接的区别就是硬链接会创建一个独立文件,其中包含了源文件的信息及位置。引用硬链接文件等同于引用了源文件。

cp  -l  源文件  目标文件  (是硬链接)

cp  -s  源文件  目标文件   (软连接)

查看文件统计信息stat命令

stat  文件名

wKiom1Z00pbigC9HAAEnSipTA9Y427.jpg 

查看文件类型file命令

file命令是一个用来查看文件类型的工具。他能探测文件的内部并决定文件是什么类型

wKiom1Z00qfCsXiNAADCg2J-Odk593.jpg 

File命令将文件分为3类:

文本文件:包含可打印字符的文件。

可执行文件:可在系统上运行的文件

数据文件:包含不可打印二进制字符,又不能在系统上运行的文件。

查看整个文件

cat命令  more命令  less命令

查看部分文件

tail命令显示文件末尾部分的内容,默认情况下他会显示文件的末尾10行。

tail命令常用参数

 参数

                     描述

-c

显示文件最后的bytes个字节的字符

-n

显示文件最后的lines

-f

tail程序一直保持活动状态,如果有新的内容加到末尾就显示出来

--pid

-f参数一起,跟踪一个文件直到进程IDPID的进程结束

-s sec

-f参数一起,在每次循环输出之间休眠sec

-v

总是显示带文件名的头

-q

从不显示带文件名的头

-f参数是tail命令的一个突出的特性,它允许你在其它进程使用该文件时查看文件的内容。Tail命令会保持活动状态并不断的显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。

head命令查看文件头

head命令会显示文件开头哪些行的内容,默认情况下,它会显示文件前十行的文本。它也支持-c和-n参数这样就可指定要显示的行数。

用法:head -n  20  文件名

wKiom1Z01JugYCL5AAJpxU5YE6A456.jpg



你可能感兴趣的:(linux,shell)