Linux文件系统功能和作用讲解
shell
查看所用shell
[rhino@rhino010 ~]$ echo $SHELL
/bin/bash
CLI接口
命令行接口:
- [root@node1 ~]# COMMAND
- prompt:
- root:当前登录的用户
- node1:当前主机的主机名,非完整格式: node1.magedu.com
- ~: 当前所在目录(current directory),也称为工作目录(working directory); 相对路径;
-
: 命令提示符:
-
: 管理员行号,为root
- $: 普通用户
-
注意:建议使用非管理员账号登陆; 在执行管理操作则临时切换至管理员,操作完成即退出。
远程连接
-
SSH协议: secure shell;
- ~]# ss -tnl
- 查看系统是否监听于tcp协议的22号端口
- ~]# ip addr list 或
- ~]# ifconfig
- 查看ip地址
- 确保防火墙处于关闭状态:
- ~]# iptables -L -n
- CentOS 7:
- ~]# systemctl disable fireealld.service
- ~]# systemctl stop firewalld.service
- CentOS 6:
- ~]# service iptables stop
- ~]# chkconfig iptables off
几个基础命令
tty: 查看当前的终端设备
ifconfig或ip addr list: 查看活动接口的ip地址
echo: 回显
ping:探测网络的目标主机与当前主机之间的连通性
关机命令:
CentOS:
- ~]# systemctl poweroff
*:
- ~]# poweroff
- ~]# reboot
- ~]# halt
Stallman
自有含义:自由学习和修改;自由使用;自由分发;自由创建衍生版
Linux的哲学思想
-
一切皆文件:把几乎所有资源统统抽象为文件形式:包括硬件设备,甚至通信接口等;
open(), read(), write(), close(), delete(), create() -
由众多功能单一的程序组成:一个程序只用于做一件事,并且做好;
组合小程序完成复杂任务;
-
尽量避免跟用户交互;
目标:易于以编程的方式实现自动化任务
-
使用文本文件保存配置信息
思考:文件是什么?众多文件如何有效的组织起来?
目录:路径映射
文件:存储空间存储的一段六十数据,对数据可以做到按名存取
文件系统: 层级结构;有索引;
-
/: 原初起点- 倒置树状机构,所有文件从根 起
-
/dev/pts/2: - 最左侧
/:表示跟目录 - 其他的
/:表示路径分隔符- Linux的路径分隔符是
/, windows是\
- Linux的路径分隔符是
-
文件的路径表示:
- 相对路径:从根开始表示出的路径
- 绝对路径:从当前位置开始表示出的路径
-
文件名使用法则:
- 严格区分字符大小写
- 目录也是文件,在统一路径下,两个文件不能同名
- 支持使用除了
/以外的任意字符 - 最长不能超过255个字符
-
用户有家目录: home,
- 用户的起始目录: 普通用户管理文件的位置
-
工作目录:
-
/etc/sysconfig/network-scripts/ifcfg-eno16777736
-
basename:最右侧的文件或目录名; -
dirname: basename左侧的路径 -
[rhino@rhino010 aiqicSpider]$ pwd /home/rhino/lxc/aiqicSpider [rhino@rhino010 aiqicSpider]$ basename $PWD aiqicSpider [rhino@rhino010 aiqicSpider]$ dirname $PWD /home/rhino/lxc
-
Linux基础知识
-
命令的语法通用格式
COMMAND OPTINS ARGUMENTS- 发起一个命令:请求内核将某个二进制程序运行为一个进程
- 程序 ----> 进程
- 静态 ----> 动态(有生命周期)
-
命令本身是一个可执行的程序文件(内部直接调用了CPU指令集当中一颗CPU所允许运行指令当中的某个或某些)
- 是二进制格式的文件, 有可能调用共享库文件;
- 多数程序文件都存放在:
/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin/,/usr/local/sbin - 普通命令:
/bin,/usr/bin,/usr/local/bin - 管理命令:
/sbin,/usr/sbin,/usr/local/sbin - 共享库:
/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64 - 32bits的库:
/lib,/usr/lib,/usr/local/lib - 64bits的库:
/lib64,/usr/lib64,/usr/local/lib64 - 注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
-
命令必须遵循特定格式规范:exe,msi, RLF(Linux)
- ~]# file /bin/ls
-
命令可分为两类:
- 由shell程序自带的命令:内置命令(builtin)
- 独立的可执行程序文件,文件名即命令名:外部命令
-
shell程序是独特的程序,负责解析用户提供的命令:
-
环境变量:
-
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件
ubuntu@VM-0-6-ubuntu:~$ echo $PATH /home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin查找次序为:自左向右
-
查看命令类型
type COMMAND
内建的命令类型没有与之匹配的路径名
[rhino@rhino014 ~]$ type type type is a shell builtin type 是 shell 内建 [rhino@rhino014 ~]$ type ls ls is aliased to `ls --color=auto' ls 是 "ls --color=auto" 的别名 -
-
OPTIONS
-
指定命令的运行特性
-
选项有两种表现形式
-
短选项: -C,例如-l, -d
注意:有些命令的选项没有-符号;
如果同一个命令同时使用多个短选项,多数可合并:
-l -d = -ld -
长选项: --word, 例如 --help, --human-readable
注意:长选项不能合并
注意:有些选项可以带参数,此称为选项参数
-
-
ARGUMENTS:
- 命令的作用对象:命令对什么生效
- 注意:不同的命令的参数;有些命令可同事带多个参数,多个之间以空白字符分割
-
获取命令的使用帮助:
- 内部命令:
help COMMAND
ubuntu@VM-0-6-ubuntu:~$ help type type: type [-afptP] 名称 [名称 ...] 显示关于命令类型的信息。 对于每一个 ,指出如果作为命令名使用时,它将如何被解释。 选项: -a 当且仅当没有同时使用 "-p" 选项时,显示所有包含名为 的可执行文件的位置;包括别名、内建和函数 -f 阻止 shell 函数查找流程 -P 强制对每个 搜索 PATH,即使它是别名、内建或函数, 并且返回将被执行的磁盘上的文件的名称 -p 返回将被执行的磁盘上的文件的名称,或者当 "type -t 名称" 不返回 "file" 时,不返回任何值 -t 返回下列单词中的一个:"alias"、"keyword"、"function"、 "builtin"、"file" 或者 "",分别表示 是一个别名、 shell 保留字、shell 函数、shell 内建、磁盘文件或者未找到 参数: 名称 需要解释的命令。 退出状态: 如果所有的 都被找到则返回成功;任何一个未找到则失败。- 外部命令:
-
命令自带简要格式的使用帮助
~]# COMMAND --help
-
使用手册: manual
位置:
/usr/share/man~]# man COMMAND
SECTION:
- NAME: 功能性说明
- SYNOPSIS:语法格式
- DESCRIPTION:描述
- OPTIONS:选项
- EXAMPLES:使用示例
- AUTHOR:作者
- BUGS:报告程序bug的方式
- SEE ALSO:参考
- ...
SYNOPSIS:
- []: 可选内容
- <>: 必须提供的内容
- a|b|c: 多选一
- ...: 同类内容可出现多个
使用手册:压缩格式的文件,有章节之分;
-
/usr/share/man
- man1, man2, ...
- man1 --> 用户命令
- man2 --> 系统调用
- man3 --> C库调用
- man4 --> 设备文件及特殊文件
- man5 --> 文件格式(配置文件格式)
- man6 --> 游戏使用帮助
- man7 --> 杂项
- man8 --> 管理工具及守护进行
-
~]# man CHAPTER COMMAND
-
注意:并非每个COMMAND在所有章节下都有手册,如何知道哪个命令在哪个章节下有手册?
- 查看:
~]# whatis COMMAND
ubuntu@VM-0-6-ubuntu:~$ whatis passwd passwd (1) - 更改用户密码 passwd (5) - 密码文件 passwd (1ssl) - OpenSSL application commands注意:其中执行过程是查询数据库进行的
- 手动更新数据库:
~]# makewhatis
- 查看:
- man命令打开手册以后的操作方法:
- 翻屏
- 空格键:向文件尾部翻屏;
- b: 向文件首部翻屏;
- Ctrl + d:向文件尾部翻半屏
- Ctrl + k:向文件首部翻半屏
- 回车键:向问价那位不翻一行;
- k:向文件首部翻一行
- G:跳转最后一行
- nG: n代指数字,跳转至指定行
- 1G:跳转至文件首部(第一行)
- 搜索
- /keyword: 从文件首部向文件尾部依次查找;不区分字符大小写
- ?keyword:从文件尾部向文件首部依次查找
- n:与查找命令方向相同
- N:与查找命令方向相反
- 退出
- q: quit
-
选项
-
-M /PATH/TO/SOMEDIR: 到指定目录下查找命令手册并打开之;