03 Linux系统组成和获取命令帮助
远程连接:
ssh协议:(简称:secure shell)
~]# ss -tnl
查看系统监听于rcp协议的22号端口
~]# ifconfig 或 ip addr list
查看本机 ip 地址
在CentOS 7最小化安装中没有 ifconfig 这个命令,需要 yum install net-tools 命令来进行下载安装
确保防火墙处于关闭状态:
~]# iptables -L -n #查看一些防火墙规则
~]# iptables -F #临时清空防火墙的规则
CentOS 7:
~]# systemctl disable firewalld.service #先禁用防火墙
~]# systemctl stop firewalld.service #停止防火墙使用
CentOS 6:
~]# service iptables stop
~]# chkconfig iptables off
查看所使用的shell类型:
~]# echo $SHELL
终端设备:terminal
多任务、多用户
物理终端,控制台:console
键盘鼠标显示器直接接到电脑上的被称为物理终端设备(一般称为控制台:console),物理 终端不是我们启动完系统真正用的终端,只有Linux在启动过程当中才会被直接使用。启动完之后 看到的是虚拟终端,因为是用软件模拟出来的所以被称为虚拟终端,虚拟终端默认6个虚拟终端
虚拟终端:6个,tty
Ctrl+Alt+F[1-6]
笔记本按键有可能映射不一样
不一定是6个虚拟终端,因为f7是图形化界面
图形终端:
CentOS 6:
Ctrl+Alt+F7
CentOS 7:
在哪个虚拟终端启动,即位于哪个虚拟终端
串行终端:ttys
串口输出
伪终端:pty
伪终端又称为模拟终端,远程连接的终端或图形界面下打开的终端接口
系统正常启动,显示启动过程信息输出到物理终端,当物理终端被系统初始化后,称为虚拟终端(图形界面或Ctrl+Alt+F[1-6])打开图形界面模拟一个命令窗口就是伪终端,或者远程登入该系统,该终端也是伪终端
区别当前系统是哪种终端:
使用命令tty,表示当前终端对应的设备文件,(以下#表示数字)
1.结果显示:/dev/pts/# 表示伪终端
2.结果显示:/dev/tty# 表示虚拟终端
3.结果显示:/dev/console 表示物理终端(控制台)
4.结果显示:/dev/ttys# 表示串行终端
同一用户登入系统,对应着不同体系/设备,属于不同进程下的用户,有设备就有对应的设备文件。
命令:who 查看系统登入的所有用户及其信息
Linux的哲学思想之一:一切皆文件
表现之一:硬件设备也通过文件表示:
物理终端:/dev/console
虚拟终端:/dev/tty# [1-6]
串行终端:/dev/ttys#
伪终端:/dev/pts/#
注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互:
查看终端设备:
~]# tty
查看接口程序:
~]# echo $SHELL
启动GUI:图形界面
第一次启动图形化界面时需要在某一虚拟终端接口运行命令:startx & (&符号表示在后台运行)
GIL接口:
命令行接口:
[root@localhost ~]# command(命令)
prompt:
root:当前登录的用户
localhost:当前主机的主机名,非完整格式
~:用户当前所在的目录(current directory),也称为工作目录(working directory);相对路径
#:命令提示符:
#:管理员账号,为 root;拥有最高权限,能执行所有操作
$:普通用户,非 root;不具有管理权限,不能执行系统管理类的操作
注意:建议使用非管理员账号登录;
执行管理操作临时切换至管理员,操作完成即退回
几个基础命令:
tty:查看当前的终端设备
ifconfig或 ip addr list:查看活动接口的ip地址
echo:回显
ping:探测网络的目标主机与当前主机之间的连通性
Ctrl+c:终止命令执行
关机命令:
CentOS 7:
~]# systemctl poweroff 或直接 poweroff
重启命令:
~]# systemctl reboot 或直接 reboot
所有系统里边都可以运行 poweroff 和 reboot
stallman:
自由含义:自由学习和修改;自由使用;自由分发;自由创建衍生版;
Linux的哲学思想:
1.一切皆文件
把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至是通信接口等
open(),read(),write(),close(),delete(),create()
2.由众多功能单一的程序组成:一个程序只做一件事,并且做好
组合小程序完成复杂任务;
3.尽量避免跟用户交互
目标:易于以编程的方式实现自动化任务
4.使用文本文件保存配置信息:
思考:文件是什么?众多文件如何有效组织起来?
目录:路径映射:
文件:存储空间存储的一段流式数据,对数据可以做到按名存取
文件系统:层级结构;有索引
/:原初起点
第二层结构
第三层结构
倒置树状结构
/dev/pts/2:
最左侧 /:表示根目录
其他的 /:表示路径分隔符
Linux的路径分隔符是 /
Windows的是 \
文件的路径表示:
绝对路径:从根开始表示出的路径
相对路径:从当前位置开始表示出的路径
文件名使用法则:
严格区分字符大小写:file1,FILE1,File1,这三个文件完全不是一个文件
目录也是文件,在同一路径下,两个文件不能同名;
支持使用除了 / 以外的任意字符
最长不能超过255个字符;
用户有家目录:home
用户的起始目录;普通用户管理文件的位置
工作目录:
/etc/sysconfig/network-scripts/ifcfg-en016777
basename:最右侧的文件或目录名
dirname(目录名):basename左侧的路径
命令:
~]# basename /PATH/TO/SOMEFILE
SOMEFILE
~]# dirname /PATH/TO/SOMEFILE
/PATH/TO
回顾:
开源协定:
GPL,LGPL,BSD,Apache
BSD:
1.如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定
2.如果二次发布的产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定
3.不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广
代码的共产主义运动
文件系统、文件、目录:
倒置树状结构:
目录:
文件:
文件名:严格区分字符大小写;路径分隔符 /:
路径:
绝对路径
相对路径
程序的组成部分:二进制程序文件、库文件、配置文件、帮助文件;
二进制、库文件:可执行文件
库文件:不能独立执行,只能被调用时执行
配置文件、帮助文件:可被查看其内容的文件
人机交互界面:
GUI
CLI
Linux基础知识
命令的语法通用格式:
# command options arguments
发起一个命令:请求内核某个二进制程序运行为一个进程;
程序 --》进程
静态--》动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
多数程序文件都存在:/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/lib
在32bits的库上边不会出现64bits的库,因为32位不兼容64位的
在64bits的库上边会出现32bits的库,因为64位兼容32位的
注意:并非所有的命令有一个在某目录与之对应的可执行程序文件
命令必须遵循特定格式规范:exe,msi,ELF(Linux)
~】# file /bin/ls
命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
独立的可执行程序文件,文件名即命令名:外部命令
shell程序是独特的程序,负责解析用户提供的命令:
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件
~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找次序:自左而右
查看命令类型:
type command
shell内置命令不会在某个路径下存在一个命令的文件名
OPTIONS(选项):
指定命令的运行特性和不同的功能
选项有两种表现形式:
短选项:-c,例如-l,-d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:--word,例如---help,--human-readable
注意:长选项不能合并
注意:有些选项可以带参数,此称为选项参数
ARGUMENTS:
命令作用的对象,命令对什么生效
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔
例如:ls -l -d /var /etc
获取命令的使用帮助:
内部命令:
help command
外部命令:
1.命令自带简要格式的使用帮助
# command --help
2.使用手册:manual
位置:/usr/share/man
# man command
SECTION:
NAME:简要功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR:作者
BUGS:报告程序BUG的方式
SEE ALSO:参考
SYNOPSIS:
[]:可选内容
<>:必须提供的内容
a|b:多选一
...:同类内容可出现多个
使用手册:压缩格式的文件,有章节之分:
/usr/share/man
man1,man2,...
1:用户命令:
2:系统调用:
3:c库调用
4:设备文件及特殊文件
5:文件格式(配置文件格式)
6:游戏使用帮助
7:杂项
8:管理工具及守护进行
# man CHAPTER command
注意:并非每个command在所有章节下都有手册:
查看:~]# whatis command
注意:其执行过程是查询数据库进行的
手动更新数据库:
~]# makewhatis
man命令打开手册以后的操作方法:
翻屏:
空格键:向文件尾翻一屏
b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
↓:向文件尾部翻一行
↑:向文件首部翻一行
G:跳转至文件最后一行
nG:跳转至指定行
1G:跳转至文件首部
文本搜索:
/keyword:从文件首部向文件尾部依次查找
?keyword:从文件尾部向文件首部依次查找
n:与查找命令方向相同
N:与查找命令方向相反
退出:
q:quit
选项:
-M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之
练习:获取useradd命令的用法
(1):添加用户xing
# useradd xing
# id xing
(2):添加用户xinchao,要求指定其所用的shell为/bin/bash
# useradd -s /bin/bash xinchao
# tail -1 /etc/passwd
3.info command
获取命令的在线文档:
4.很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
README:程序的相关的信息
INSTALL:安装帮助
CHANGES:版本迭代时的改动信息
5.主流发行版官方文档
http://www.redhat.com/doc
6.程序官方的文档
官方站点上的“Document”
7.搜索引擎
keyword filetype:pdf
keyword site:domain.tld
...
书籍的出版社:
O‘Reiley
wrox
机械工业出版社
电子工业出版社
清华大学
水利水电
常用命令:
Linux文件系统:
1.文件名名称严格区分字符大小写
2.文件可以使用除/以外任意字符(不建议使用)
3.文件名长度不能超过255个字符
4.以.开头的文件为隐藏文件
.:当前目录
..当前目录的上一级目录
工作目录:
家目录:home
常用命令:
pwd:printing working directory
显示当前工作目录
cd:change directory
cd [/path/to/somedir]
cd:不带任何选项参数的时候是切换回家目录
注意:bash中,~表示家目录
cd ~:切换回自己的家目录
cd ~username:切换至指定用户家目录
注意:只有管理员root才能随便切换至其他家目录
cd -:在上一次所在目录与当前目录之间来回切换
相关的环境变量
$PWD:当前工作目录
$OLDPWD:上一次的工作目录
这两个环境变量会随时改变的
ls:list,列出指定目录下的内容
ls [OPTION]... [FILE]...
-a:显示所有文件,包括隐藏文件
-A:显示除.和..之外的所有文件
-l:--long,长格式列表,即显示文件的详细属性信息
-rw-r--r--. 1 root root 129 12月 25 10:19 .lesshst
-:文件类型,-,d,b,c,l,s,p
rw-r--r--
rw-:文件属主的权限
r--:文件属组的权限
r--:其他用户(非属主、属组)的权限
1:数字表示文件被硬链接的次数
root:文件的属主
root:文件的属组
129:数字表示文件的大小,单位是字节
12月 25 10:19:文件最近一次被修改的时间
.lesshst:文件名
-h:--human-readable:对文件大小单位换算,换算后结果可能会非精确值
-d:查看目录自身而非其内部的文件列表
-r:reverse,逆序显示
-R:recursive,递归显示
cat:concatenate
文本文件查看工具
cat /etc/fstab
cat /etc/passwd
cat [OPTION]... [FILE]...
-n:给显示的文本行编号
-E:显示行结束符$
tac:和cat显示内容相反,是逆序显示
文本文件查看工具
cat /etc/fstab
cat /etc/passwd
cat [OPTION]... [FILE]...
-n:给显示的文本行编号
-E:显示行结束符$
file:查看文件内容类型
file [filename]...
echo:回显命令
echo [SHORT-OPTION]... [STRING]...
-n:不进行换行
-e:让转义符生效
\n:换行
\t:制表符
STRING可以使用引号,单引号和双引号均可用
单引号:强引用,变量引用不执行替换
双引号:弱引用,变量引用会被替换
注意:变量引用的正规符号
${name}
关机或重启命令:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h:halt
-r:reboot
-c:cancel
TIME:
now:立刻关机
hh:mm:表示几点几分
+m:m表示为数字,例如10表示10分钟后关机,+0和now一个意思
WALL
日期相关的命令:
Linux:系统启动时从硬件读取日期和时间信息,读取完成以后,就不再与硬件相关联
系统时钟
硬件时钟
date:系统时钟
显示日期时间:date [OPTION]... [+FORMAT]
FORMAT:格式符
%F
%T
%Y
%m
%d
%H
%M
%S
%s:从1970年1月1号(unix元年)0点0分0秒到命令执行的那一刻秒数
...
设置日期时间:date [MMDDhhmm[[CC]YY][.ss]] 月日小时分钟年份秒数
date 101008082013.08
clock,hwclock:硬件时钟
显示或设定硬件时钟
-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同
-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同
cal:calendar(日历)
cal [month] year]
课外作业:
which,whereis,who,w