程序的组成部分:二进制程序文件、库文件、配置文件、帮助文件
二进制文件、库文件:可执行文件
库文件:不能独立执行,只能被调用执行
配置文件、帮助文件:可被查看其内容的文件
Linux文件:
1、文件名严格区分字符大小写;file1, File1, FILE1是不同的文件;
2、文件名可使用除/以外的任意字符,不建议使用特殊字符;
/: 根目录,路径分隔符;
3、文件名长度最长不能超过255个字符;
4、所以.开头的文件,均为隐藏文件;
路径:
绝对路径:从根目录起始的路径;
相对路径:对当前位置起始的路径;
当前位置的表示方式:
(1) ./: ./sysconfig/network-scripts
(2) 省略上述符号: sysconfig/network-scripts
..:表示当前目录的上一级目录
当前目录:current directory, 也称作working directory;
pwd: printing working directory
LSB: Linux Standard Base
命令总结:ls, cd, type, tty, cat, which, whereis, pwd, echo
命令:
(1) 文件系统相关:
目录管理
文件管理
文件查看
文件编辑
(2) 系统管理相关:
终端:
用户与主机交互,必然用到的设备;
物理终端:直接接入本机的显示器和键盘设备;/dev/console
虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6默认启动6个虚拟终端
Ctrl+Alt+F#: [1,6]
图形终端:附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境;
设备文件路径:/dev/tty#
模拟终端:
图形界面下打开的命令行接口,基于ssh协议或telnet协议等远程打开的界面
设备文件:/dev/pts/# [0,oo)
查看当前的终端设备:tty
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI:
X protocol, window manager, desktop
Desktop:
GNOME (C, gtk)
KDE (C++, qt)
XFCE (轻量级桌面)
CLI:
shell程序:
sh (bourn)
csh
tcsh
ksh (korn)
bash (bourn again shell), GPL
zsh
显示当前使用的shell:
# echo ${SHELL}
显示当前系统使用的所有shell:
# cat /etc/shells
命令提示符:prompt
[root@localhost ~]#
[root@localhost ~]:PS1
prompt:
管理员:#
普通用户:$
命令:
输入命令,回车:
发起一命令:请求内核将某个二进制程序运行为一个进程
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来;
表现为一个或多个进程;
由程序态---->进程
静态---->动态(有生命周期)
命令本身是一个可执行程序文件:二进制格式的文件,有可能会调用共享库文件
多数程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
在shell中可执行的命令有两类:
内建命令:由shell自带的,而且通过某命令形式提供;
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件;
which,whereis
区别内部或外部命令:
# type COMMAND
Shell程序是独特的程序,负责解析用户提供的命令
shell程序搜寻可执行程序文件的路径定义在PATH环境变量中;
# echo $PATH
注意:自左至右
库文件:
运行命令时如需调用标准库或者其他库,库文件需调入内存内。
库文件就是公共功能性程序,不能独立执行。多数存放在/lib,/lib/64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
Linux的可执行文件:ELF文件
通过 file命令查看文件类型
运行命令:
命令格式:
COMMAND [OPTIONS...] [ARGUMENTS...]
选项:指定目录运行特性;
短选项:-c, 例如:-l, -h (有些选项没有-)
多个短选项可命令使用,例如-l -h, 可写作-lh;
长选项:--word,例如:--long, --human-readable
长选项不能合并
注意:有些选项可以带参数,称为选项参数
参数:命令的作用对象
向命令提供数据;
不同命令的参数格式不一样
多个参数要用空格分开
注意:
1、多选项,以及多参数和命令之间都应该使用空白字符分隔
2、取消命令执行:Ctrl+c
Linux命令帮助的获取
外部命令:都有一个可执行程序,位于文件系统某目录下;
which, whereis
内部命令帮助:
# help COMMAND
hash命令:
shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中;
history命令:
作用是什么?相关的环境变量是什么?有用的选项?
管理命令历史;
登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中;
history:
-a: 追加本次会话新执行的命令历史列表至历史文件中;
-d: 删除历史中指定的命令;
-c: 清空命令历史;
快捷操作:
!#: 调用历史中第#条命令;
!string:调用历史中最近一个以string开头的命令;
!!: 上一条命令
外部命令帮助获取:
(2) man COMMAND
使用手册:压缩格式的文件,有章节之分
手册页:/usr/share/man
man1 ... man8
man1: 用户命令
man2: 系统调用
man3: C库调用
man4: 设备文件及特殊文件
man5: 配置文件格式
man6: 游戏使用帮助
man7: 杂项
man8: 管理工具
注意:有些关键在不止一个章节中存在帮助手册;
要查看指定章节中的手册:man # COMMAND
查看命令有哪些章节的帮助;whatis COMMAND (其执行过程是查询数据库进行的)
手动更新数据库;makewhatis
man命令的配置文件:/etc/man.config
MANPATH /PATH/TO/SOMEWHERE: 指明新的手册文件搜索位置
# man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示之;
帮助手册中的段落说明:
NAME 功能性说明
SYNOPSIS 语法格式
DESCRIPTION 描述
OPTIONS 选项
EXAMPLES 使用示例
AUTHOR 作者
REPORTING BUGS 报告程序BUG的方式
SEE ALSO 参考
SYNOPSIS:
[]:可选内容
<>: 必选内容
a|b:二选一
...: 同一内容可出现多次
man命令打开手册以后的操作方法:
空格, : 向文件尾翻屏;
b, : 向文件首部翻屏;
Ctrl+d, : 向文件尾部翻半屏;
Ctrl+u, : 向文件首部翻半屏;
回车键: 向文件尾部翻一行;
Ctrl+k:向文件首部翻一行;
q: 退出;
#:跳转至第#行;
1G: 回到文件首部
G:翻至文件尾部
文本搜索:
/KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
n: 跟搜索命令同方向
N:跟搜索命令反方向
?KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
n: 跟搜索命令同方向
N:跟搜索命令反方向
(3) info 获取命令在在线文档
info COMMAND
(4) 程序自身的帮助文档
/usr/share/doc/COMMAND-VERSION
README:程序的相关信息
INSTALL:安装帮助
CHANGES:版本迭代时的改动信息
(5) 程序官方文档
官方站点上的“Document”
(6) 发行版的官方文档
http://www.redhat.com/docs
(7) 搜索引擎 Google
(8) slideshare
http://www.slideshare.net/
推荐的出版社:
o`Reiley
Wrox
机械工业出版社
电子工业出版社
清华大学出版社