什么是shell:
shell就是人机交互接口,以便于人类控制计算机,通常有图形界面和文字界面两种
图形界面:GUI:Graphic User Interface :
Windows
IOS, Android
X-Window
Gnome
KDE
Xfce
文字界面:CLI: Command Line Interface :
PowerShell
bsh
csh
tcsh
ksh
bash
zsh
Linux终端:
串行终端:(纯文本界面的终端,不能显示图形界面)
/dev/ttyS#
物理终端:
/dev/console
虚拟终端:Ctrl+Alt+F[1-6]
图形终端:Ctrl+Alt+F7
/dev/tty#
startx 命令 可 以启动 图形终端, startx & 表示 启动 图形终端 并让 这个 进程 后台 运 行,从而 释放 命令提示符
伪终端(模拟终端):远程连接,图形环境打开命令接口
/dev/pts/#
# tty命令:显示当前终端对应终端设备文件
这个是在虚拟终端1中执行的tty命令
这个是在Xshell远程终端中执行的tty命令
# who命令:查看当前系统上登录的所有用户及其信息
现在我的系统上一共 有 两个 用户, 他们 都是 用 root 登录 的, 不过 登录 的 设备 并不相同。。
Linux哲学思想:
1、一切皆文件;
2、由众多目的单一应用程序组成:一个程序只做一件事,且做好;
3、组合目的单一的小程序完成复杂任务;
4、尽量避免跟用户交互;
5、使用文本文件保存配置信息;
6、提供机制,而非策略;
bash简单入门:
管理员的命令提示符: #
普通用户的命令提示符: $
提示符 前面 还有 一行 字符, 这些 字符 可以 通过 修改 环境 变量 来 修改
环境变量: PS1
echo $PS1 #显示环境变量PS1
可见 [\u@\h \W]\$, 这里 的 "\u"是用户名, "\h"是主机名, "\W"是用户当前所在目录
现在 显示 的 目录 是 " ~ ", 这个 是 用户 的 家目录 的 简写
修改 PS1环境变量:
这里 我 把 "\u"和"\h" 中间 的 " @ " 改成 了 "%", 再来 看一下 命令 提示符。
已经 改好 了。。
------------------------------------------
Linux路径:
/ : 这个 叫做 根, Linux 中 的 所有 文件 都 在 根目录 下 的
. : 当前目录
.. : 上级目录
绝对路径: 就是 以 根 为 起点 的 路径
相对路径: 以 当前 目录 为 起点 的 路径, 如 : " ./a " , 这个 表示 当前目录下 的 a 文件
-------------------------------------------
cd 路径: 切换目录,直接 输入 cd 命令, 可 切换至 家目录
先由 家目录 切换至 /etc 目录 ,在 由 /etc 目录 切换 至 家目录
cd - : 可 实现 切换 至 上一个 被 访问 的 目录, 有点 像 电视遥控器 里 的 回看, 其中 " - " 表示 上一个 被 访问 的 目录
--------------------------------------------
Linux文件系统的特性:
1、文件名可以使用除/以外的任意字符;但总长度不能超过255个;
2、严格区分大小写
--------------------------------------------
Linux命令:
bash中 命令 有 两种 类型, 分别 为 内部命令 和 外部命令
内部命令: bash 自带 的 命令, 也是 最基本 的 命令
外部命令: 后来 自己 安装 的 一些 软件 的 命令。
查看 命令 类型:
type 可 查看 命令 的 类型
这里可见, ls 是 一个 外部命令, 而 cd 是一个 内部 命令
which 命令 可 查看 命令 所在 路径
命令 这些 文件 路径 也 是 一个 环境 变量,叫 PATH
环境变量: PATH
这个 环境变量 是 用来 存放 命令 的 路径 的, 以 " : " 作为 分隔符, 命令 一般 会 存放 在 这些 目录 下, 执行 命令 时 会 按照 目录 的 次序 来 遍历 , 直到 找到 命令 并 执行, 不过 这 又 出现 了 一个 问题。, 遍历 命令 是 一个 非常 慢 的 操作, 所以 需要 一种 可以 快速 找到 命令 的 机制, 这种 机制 叫做 hash, 看一下 hash把。
这个 就是 我 的 hash表, 表中 存储 的 是 我 常用 的 命令 的 路径, 表 前面 的 数字 表示 这个 命令 的 执行次数,
正式 说一下 命令 把,
命令格式:
command options arguments
命令 选项 参数
选项: 调整命令的执行特性
选项可以有多个;多个选项之间必须以空格分隔
短选项: -char
长选项: --word
短选项可以合并;长选项 一般 不可以 合并;
有些选项需要有 参数
参数: 命令的作用对象
有些命令可以带多个参数,各参数间需要使用空格分隔
获取帮助:
内置命令:
# help 命令名
例如 help cd
外部命令: 有两种 形式 获取 帮助
# 命令 --help
使用命令手册:
man手册:
man [1-8] 命令名
使用手册中选项格式字符的意义:
[]: 可选部分
{a|b}: 分组, a和b作为一个使用单元,a,b之间只能选择一个
| : 或者, 只选其一
<> : 必选选项
... : 同类内容 可 同时出现 多个
man的简要操作
翻屏:
空格键:向下翻一屏
b: 向上翻一屏
回车键:向下翻一行
k: 向上翻一行
Ctrl+d : 向下翻半屏
Ctrl+u : 向上翻半屏
文本搜索:
/keyword : 向下搜索
?keyword : 向上搜索
n: 下一个
N: 上一个
man命令的分段机制: 一共分为8个段, 每段表示一种内容,同一个命令在不同段内显示的内容各不相同,如 passwd 在 第一段 显示 的 是 passwd 命令手册, 而在 第五段 显示 的是 passwd 配置文件 的 使用帮助, man 命令 如果 不加 段 的话 会 默认 显示 他 所找到 的 第一个 帮助手册。
1: 用户命令
2: 系统调用
3: 库调用
4: 设备文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理命令
查看关键字在那些段落中可使用
# whatis Keyword
可见 passwd 在 1, 5, 1ssl 三个段 中
# man -k Keyword
这个是 模糊 查找, 把 Keyword 多 出现过 的 地方 都 列出来。
这里 再 强调 一下, 内部 命令 手册 用 help 来 查, 外部命令 用 man 来查。。
-----------------------------------------------------------
info命令:
这个是在线帮助文档, 只要联网就能用, 操作和 man 差不多。。
-----------------------------------------------------------
还有 RedHat官方文档, 不过是英文的。。。。
www.redhat.com/docs
还有 我们 的 大谷歌~:
谷歌 很 强大, 有 好多 使用 技巧 的。 这里 就 不说 了。
简单管理类命令:
shutdown [option]... TIME
-r: 重启
-h: 关机:
-c: 取消重启命令
TIME格式:
now: 直接关机
+#: #分钟后关机
hh:mm : 固定时间关机
---------------------------------------------------
reboot: 重启, 一般会 这么 用
sync;sync;reboot , 这里 的 sync 是 将 内存中 还没 来得及 存入 硬盘 的 数据 手动 存入 硬盘。
---------------------------------------------------
halt [-p] : 立即关机
-p : 关机之后 并 切断 电源。。
---------------------------------------------------
poweroff: 同 halt, 几乎 没什么 区别。。
date : 显示时间
也可自定义显示时间的格式。
%Y: 四位年份
%y: 两位年份
%m: 月
%d: 日
%H: 时
%M: 分
%S: 秒
unix元年: 1970-01-01-00:00:00
%s : 从 unix 元年 到 现在 所 经过 的 秒数, 可以解决时差问题。
-----------------------------------------------------------------------------------
cal : 显示 日历
---------------------------------------------------------------------
Linux的两种时钟:
硬件时钟: 计算机硬件自带的时钟
软件时钟: 系统开机时自动读取硬件时钟,然后就自行计算时间了。
date 显示 的 就是 软件时钟的 时间
hwclock [-sw]: 硬件时钟时间
有 两个 选项:
-s: 以硬件时钟为准, 同步系统时钟
-w: 以系统时钟为准,同步硬件时钟。
------------------------------------------------------------------------
dirname:显示指定路径除了文件名之外的前缀
basename:显示指定路径的后缀,
Shell常见使用技巧:(这里先总结一些我知道的,以后还会继续整理的。。)
Ctrl+C : 取消命令, 当 命令 正在 执行 是 可以 强制 取消 这个 命令
shift+pgup 和 shift+pgdn : 这 两个 是 bash 的 翻页 命令,
esc + .: 获取 上个 命令 的 参数, 相当于 !$