命令提示符:prompt
每个用户都有其默认shell的设定
查看当前shell的种类-->~]# echo $SHELL
[[email protected] ~]#
root:当前登录用户的用户名
localhost:当前主机非完整格式的hostname,完整格式为Fully Qualified Domain Name(FQDN)
~:当前用户所在的目录-->非完整格式路径,路径的基名
#:管理员命令提示符
$:普通用户命令提示符
实时管理操作:su,sudo
ssh协议:secure shell
安装开机后查看是否监听22号端口
~]# ss -tnl
-t:仅显示TCP端口
-n:不显示服务器名称
-l:显示监听端口
查看IP地址:
~]# ip addr list
~]# ip a
~]# ifconfig
确保防火墙处于关闭状态
~]# iptables -L -n
CentOS 7:
~]# systemctl disable firewalld.service //.service可以省略
~]# systemctl stop firewalld.service
CentOS 6:
~]# service iptables stop
~]# chkconfig iptables off
Linux的哲学思想:
1、一切皆文件:
把几乎所有资源都抽象为文件形式:硬件、通信接口等等 ;
open(), read(), write(), close(), create(),delect().etc
2、由众多功能单一的程序组成:
功能单一:一个只做一件事,并且做好;
复杂任务:组合小程序;
3、尽量避免与用户交互:易于以编程的方式实现自动化任务;
4、使用纯文本文件保持程序的配置信息;
Linux文件系统:
文件:磁盘上的一段存储空间中存储的数据;基于文件名引用文件;按名存取;
文件系统:层级结构
文件:
元数据:属性信息, inode
数据:文件内容, 磁盘空间
/:原初超点
文件的路径表示:
绝对路径:从根开始的路径;
相对路径:从当前目录开始表示出的路径;
当前目录:.
当前目录的上级目录: ..
文件命名法则:
严格区分字符大小写:file1, File1, FILE1
目录也是文件,在同一个路径下,两个文件不能同名
支持使用除/以外的所有字符;但不建议使用特殊字符命名文件;
最长不能超过255个字符;
家目录:/home, $HOME
用户的起始目录;普通用户创建文件的位置;
~:用户的家目录;
工作目录:working directory, current directory;
路径分为:
路径名: dirname /PATH/TO/SOMEFILE
结果: /PATH/TO
基名: basename /PATH/TO/SOMEFILE
结果: SOMEFILE
Linux文件系统结构:Linux Filesystem Hierarchy
/
├── bin -> usr/bin //所有用户可用的基本命令程序文件
├── boot //引导加载器的静态文件
│ ├── grub
│ ├── grub2
│ └── vmlinux
├── dev //存储特殊文件或设备文件,"b"块设备,"c"字符设备
│ ├── hda
│ ├── sda
│ └── st0
├── etc //系统和应用程序的配置文件
├── home //普通用户的家目录
│ ├── username //内个用户都有自己的专用的家目录
│ ├── linux
│ ├── tux
│ │ └── test.c
│ └── yxz
│ ├── bin
├── lib -> usr/lib //共享库文件,以内核模块文件
│ └── ld.so
├── lib64 -> usr/lib64 //64位系统特有的存放64位共享库的路径
├── media //挂载便携式设备
├── mnt //挂载临时文件系统
├── opt //第三方应用程序的安装路径
│ ├── kde
│ └── gnome
├── proc
├── root //管理员的家目录
├── run
├── sbin -> usr/sbin //实现管理功能的程序文件
├── srv //当前系统提供的服务运行中的用到的中间数据
│ ├── ftp
│ └── www
├── sys
├── tmp //临时文件存储位置
├── usr //全局共享只读数据
│ ├── X11R6
│ │ ├── bin
│ │ │ ├── xdm
│ │ │ ├── xterm
│ │ │ └── xv
│ │ ├── lib
│ │ └── man
│ ├── bin
│ │ └── f2c
│ ├── etc
│ ├── lib
│ ├── local //第三方应用程序安装路径;可使用独立分区
│ │ ├── bin
│ │ ├── lib
│ │ └── man
│ ├── sbin
│ └── share
│ ├── doc
│ │ ├── faq
│ │ ├── howto
│ │ └── packages
│ └── man
├── var //可变数据存储位置
│ ├── cache //应用程序缓存数据
│ ├── lib //可变状态信息数据
│ ├── log //日志文件目录
│ ├── lock //锁文件
│ └── run //进程相关的数据 主要用户存储pid文件
├── proc //基于内存的虚拟文件系统
└── sys //sysfs虚拟文件系统
Linux系统上文件的类型:
-:常规文件,有时使用f标识
d:目录文件
b:block
c: character devices
l:symbolic link files 符号链接文件
p:pipe,命名管道
s:sokcet,套接字文件
命令分为两类:
由shell程序自带的命令:内建命令,内置命令,builtin
独立的可执行程序文件:外部命令,文件名即命令名;
判断命令的种类:type COMMAND
shell程序是独特的程序:查找并解析命令,向内核提交命令运行为进程,解析路径,提供自动化运行命令的环境,等等 ;
命令解释器:词法分析、语法分析;
$PATH环境变量:保存了查找外部命令对应的程序文件的起始路径;彼此间使用冒号分隔;
查找方式:自左而右
查找结果会缓存:hash表中;
管理命令:hash
获取命令的使用帮助:
内建命令:
# help COMMAND
外部命令:
(1) 命令自带的简要格式的使用帮助;
# COMMAND --help
(2) 使用手册(manual)
存储位置:/usr/share/man/
章节:man1, man2, ..., man8
格式:压缩,节约空间;
$ man KEYWORD
SECTION:
NAME: 名称及简要功能描述;
SYNOPSIS:命令使用格式摘要;
DESCRIPTION:详细描述信息;
OPTIONS:选项详细说明;
AUTHOR:作者
BUGS:报告程序bug的途径;
EXAMPLES:使用示例;
SEE ALSO:额外参考
FILES:相关的配置文件;
SYNOPSIS:
[]:可选内容;
<>:必须提供的内容;
a|b|c:多选一;
...:同类内容可出现多次;
查看某关键字在哪些章节下有手册:
$ whatis KEYWORD
$ man -f KEYWORD
章节:
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
$ man CHAPTER KEYWORD
//其执行过程是查询数据库进行的.
$ makewhatis //手动更新数据库
关键字搜索:
/KEYWORD:向文件尾部搜索;
?KEYWORD:向文件首部搜索;
(3) info COMMAND
获取命令的在线文档;
(4) 很多应用程序会自带帮助文档:/usr/share/doc/APPLICATION_NAME-VERSION/
README:程序的相关信息;
INSTALL:程序的安装帮助;
CHANGES:版本迭代的更新信息;
(5) 程序的主站上的文档
Document
wiki
FAQ
(6) 发行版主站文档
RedHat:
http://www.redhat.com/docs
(7) 搜索引擎
keyword filetype:TYPE
keyword site:DOMAIN.TLD
whereis 查找文件位置
-b 只搜索二进制文件
-B <目录> 定义二进制文件查找路径
-m 只搜索 man 手册
-M <目录> 定义 man 手册查找路径
-s 只搜索源代码
-S <目录> 定义源代码查找路径
-f 终止 <目录> 参数列表
-u 搜索不常见记录
-l 输出有效查找路径