第五章 Linux入门及history命令介绍

1 简介

Linux哲学思想:

  • 一切皆文件(硬件设备亦表现为文件)

    在Linux中,把几乎所有资源都被视为文件,包括硬件设备,如网络接口、磁盘等,都组织为文件格式,都可以通过访问文件的方式来实现对硬件资源的访问。

  • 由众多目的单一的小程序组成;一个程序只做一件事,并且要做好;

              linux中提供的程序和可执行文件一般都是功能单一,短小精悍,保证了linux的高速运行。

  • 组合小程序完成复杂任务;

              因为每个linux命令都功能简单,如果要实现复杂任务时,可以通过连接多个简单程序实现复杂的功能,这样可以保证在单个程序的高效性,也可以保证复杂程序也是高效的

  • 尽可能避免跟用户交互;

    目标:实现脚本编程,以自动完成默写功能;

  • 使用纯文本文件保存配置信息;

    目标:一款使用的文本编辑器即能完成系统配置工作

  • 提供机制,而非策略;

              这是linux思想中的一条,所谓机制,就是“提供什么功能”,策略就是“实现什么功能”,这种独特的设计思想为设计者提供了更大的空间使其更好的实现它。所以,自由一直都是linux的核心思想

2 简单介绍Linux的文件系统

      在Linux中绝对起始位置为根(/),称之为根文件系统;Linux的路径是一个倒置的树状结构,使用层次化结构表示文件路径;在指明路径的时候一定有一个起始的位置,如果指定一个起始位置后,再也没有其他可存在的位置了,那么这个起始位置就是绝对起始位置。

目录是什么?

       目录只是个路径映射方式而已,一个目录:就是一个名称空间,目录是个特殊的文件。

文件是什么?

      文件必定有名字,文件内容是占据了磁盘空间。

Linux中一个文件有两类数据

   元数据:metadata,元数据是文件的属性信息,不是文件数组成部分,元数据指向文件的数据;

   数据:指的是普通文件中的实际数据;

 

Linux文件名严格区分字符大小写

   文件名可以使用除/以外的任意字符,但不建议使用特殊字符,文件名称长度最长不能超过255个字符,所有.开头的文件,都为隐藏文件。

说明:/为根目录,也为路径分隔符

路径

在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置。

例如, /home/file 就表示的是 file 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。

 

我们知道,Linux 系统中所有的文件(目录)都被组织成以根目录“/”开始的倒置的树状结构,如图所示。

绝对路径:

      绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin

相对路径

      和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。使用相对路径表明某文件的存储位置时,经常会用到两个特殊目录,即当前目录(用 . 表示)和父目录(用 .. 表示)。

示例:

当我们使用 root 身份登录 Linux 系统时,当前工作目录默认为 /root,如果此时需要将当前工作目录调整到 root 其他子目录中,当然可以使用绝对路径。比如root目录下有一个data子目录,使用绝对路径进入子目录方法如下:

root@ubuntn:~# pwd       <-- 显示当前所在的工作路径

/root

root@ubuntn:~# cd /root/data/

root@ubuntn:~/data# pwd

/root/data

root@ubuntn:~/data#

注意:这里所使用的 pwd 和 cd 命令,目前只需知道它们的功能即可,具体用法会在后续文章中作详细讲解。

可以看到,通过使用绝对路径,我们成功地改变了当前工作路径。但除此之外,使用相对路径的方式会更简单。因为目前处于 /root 的位置,而 data 就位于当前目录下,所以:

root@ubuntn:~# pwd         <-- 显示当前所在的工作路径

/root

root@ubuntn:~# cd ./data/

root@ubuntn:~/data# pwd

/root/data

root@ubuntn:~/data#

此示例中./data 表示的就是data文件相对于 /root 所在的路径。这里在root目录下进入其目录下的其他子目录时./是可以省略的。

总之,绝对路径是相对于根路径 / 来讲的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。

 

3 Linux命令

    学习Linux首先需要知道命令的基本格式和使用方法,以及相应的查询命令的帮助,因为Linux主要是以命令的方式来实现各种操作的,并且命令条目很多,学会如何得到命令的帮助也非常重要。

Linux命令主要分为两种

       内部命令:由shell程序自带的命令,而且通过某命令形式提供;

       外部命令:有独立的可执行程序文件,位于文件系统某目下,文件名即命令名。

1)外部命令可以使用which或whereis 命令可以查看到命令的路径

2)区别内部或外部命令,在命令提示符下输入type 命令查看,如下:

# type COMMAND

如:

运行命令

      命令运行格式:

COMMAND [OPTIONS...] [ARGUMENTS...]

选项(option):用于启用或关闭命令的某个或某些特殊功能

选项有短选项和长选项

短选项:-c,例如-l,-h

长选项:--directory  

多个短选项可合并使用,例如:-l,-h,可为:-lh

 

3.1、查看bash内部命令的帮助

          help command

例如:

root@ubuntu:~# help history

history: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

    Display or manipulate the history list.

   

    Display the history list with line numbers, prefixing each modified

    entry with a `*'.  An argument of N lists only the last N entries.

   

    Options:

      -c        clear the history list by deleting all of the entries

      -d offset delete the history entry at position OFFSET. Negative

                offsets count back from the end of the history list

   

      -a        append history lines from this session to the history file

      -n        read all history lines not already read from the history file

                and append them to the history list

      -r        read the history file and append the contents to the history

                list

      -w        write the current history to the history file

   

      -p        perform history expansion on each ARG and display the result

                without storing it in the history list

      -s        append the ARGs to the history list as a single entry

   

    If FILENAME is given, it is used as the history file.  Otherwise,

    if HISTFILE has a value, that is used, else ~/.bash_history.

   

    If the HISTTIMEFORMAT variable is set and not null, its value is used

    as a format string for strftime(3) to print the time stamp associated

    with each displayed history entry.  No time stamps are printed otherwise.

   

    Exit Status:

    Returns success unless an invalid option is given or an error occurs.

root@ubuntu:~#

3.2 外部命令

都有一个可执行程序,位于文件系统某目录下:

(1)、COMMAND --help

例如:

(2)、使用手册(manual)

格式为:man # command (命令)

手册:有章节之分,man1---man9,man9一般没有什么用

手册页路径:/usr/share/man/

man1:用户命令,查看命令的帮助

man2:系统调用,查看可被内核调用的函数的帮助

man3:程序库调用,查看函数和函数库的帮助

man4:设备及特殊文件,查看特殊文件的帮助(主要是/dev目录下的文件)

man5:配置文件格式,查看配置文件的帮助

man6:游戏

man7:杂项,惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明

man8:管理类的命令,查看系统管理员可用的命令的帮助

man9:内核内部指令,查看内核相关文件的帮助

注意:有些关键在不止一个章节中存在帮助手册;

要看指定章节手册:man # COMMAND

man命令的配置文件:/etc/man.config

MANPATH /PATH/TO/SOMEWHERE 指明新的手册文件搜索位置

# man -M /PATH/TO/SOMEWHERE COMMAND :到指定位置下搜索COMMAND命令的手册页并显示

如何查看指定命令在哪些章节下有帮助:

whatis COMMAND

注意:

如果使用whatis无法找到,这是因为whatis是根据数据库执行查找操作的,此库为系统定期更新;可使用makewhatis手动更新,

如果提示无法找到makewhatis这条命令,那么这是因为安装的版本不同或者没有安装,这时输入mandb更新。

帮助中命令语法的一些符号说明

[] :表示的是可选

…: 表示的可以存在多个参数

|:表示是可选的

<>:必填

{}:表示作为一个整体存在的

使用man查看命令手册示例:

root@ubuntu:~# man ip

 3.3 man的使用机制:

  man 命令中常用按键及其作用

(1)翻屏:

键盘按键

作用

空格键、Ctrl+f、Ctrl+V

向文件尾部翻一屏

b、Ctrl+B

向文件首部翻一屏

回车键

向文件尾部翻一行

k

向文件首部翻一行

Ctrl+d

向文件尾部翻半屏

Ctrl+u

向文件首部翻并屏

q

退出

#(为输入数字)

跳转至第#行

1G

回到文件首部

G

翻至文件尾部

    (2)字串搜索:

/keyword: 从文件首部向尾部进行搜索

n: 显示找到的下一个

N:显示找到的上一个

?keyword: 从文件尾部向首部进行搜索

n: 显示找到的下一个

N:显示找到的上

3.4 使用man查看

root@ubuntn:~# help hash

hash: hash [-lr] [-p pathname] [-dt] [name ...]  <-----使用格式

    Remember or display program locations. 

   

    Determine and remember the full pathname of each command NAME.  If

    no arguments are given, information about remembered commands is displayed.

   

    Options:  <----选项

      -d                forget the remembered location of each NAME   删除一个指定命令的缓存记录

      -l                display in a format that may be reused as input

      -p pathname       use PATHNAME is the full pathname of NAME

      -r                forget all remembered locations       删除所有命令的缓存记录

      -t        print the remembered location of each NAME, preceding

                each location with the corresponding NAME if multiple

                NAMEs are given

    Arguments:

      NAME      Each NAME is searched for in $PATH and added to the list

                of remembered commands.

   

    Exit Status:

    Returns success unless NAME is not found or an invalid option is given.

root@ubuntn:~#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yjun89

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值