03,什么是shell,一些最基本的命令和小技巧。

什么是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命令:显示当前终端对应终端设备文件

wKiom1RF8RXi-fPKAAA_3_3luoc182.jpg

这个是在虚拟终端1中执行的tty命令

wKioL1RF8WHjSYQIAABE_oOp-dY232.jpg

这个是在Xshell远程终端中执行的tty命令

# who命令:查看当前系统上登录的所有用户及其信息

wKioL1RF8sCQXruzAAB8HrvrwG4258.jpg

现在我的系统上一共 有 两个 用户, 他们 都是 用 root 登录 的, 不过 登录 的 设备 并不相同。。

Linux哲学思想:

1、一切皆文件;

2、由众多目的单一应用程序组成:一个程序只做一件事,且做好;

3、组合目的单一的小程序完成复杂任务;

4、尽量避免跟用户交互;

5、使用文本文件保存配置信息;

6、提供机制,而非策略;

bash简单入门:

管理员的命令提示符: #        wKiom1RF9LjDzDfHAAARWeSyQu4214.jpg

普通用户的命令提示符: $      wKiom1RF9MnhYmi0AAAS9AFdPrM003.jpg

提示符 前面 还有 一行 字符, 这些 字符 可以 通过 修改 环境 变量 来 修改

环境变量: PS1

    echo $PS1            #显示环境变量PS1

    wKiom1RF9X3zIOWqAAA1JnwEEjk461.jpg

    可见 [\u@\h \W]\$, 这里 的 "\u"是用户名, "\h"是主机名, "\W"是用户当前所在目录

    现在 显示 的 目录 是 " ~ ", 这个 是 用户 的 家目录 的 简写

    

    修改 PS1环境变量:

    wKiom1RF-Fixje1-AAAjODFwhiM929.jpg

    这里 我 把 "\u"和"\h" 中间 的 " @ " 改成 了 "%", 再来 看一下 命令 提示符。

    wKiom1RF-MyyZeoSAAA6cLUWicY644.jpg

    已经 改好 了。。

------------------------------------------

Linux路径:

    /   :  这个 叫做 根, Linux 中 的 所有 文件 都 在 根目录 下 的

    .   :  当前目录

    ..  :  上级目录

绝对路径: 就是 以 根 为 起点 的 路径

相对路径: 以 当前 目录 为 起点 的 路径, 如 : " ./a " , 这个 表示 当前目录下 的 a 文件

-------------------------------------------

cd 路径: 切换目录,直接 输入 cd 命令, 可 切换至 家目录

wKiom1RF-uLRw_4iAABAZf8vfyw135.jpg

先由 家目录 切换至 /etc 目录 ,在 由 /etc 目录 切换 至 家目录

wKiom1RF-1XRX2AAAABXVh9jvSg017.jpg

cd -   :  可 实现 切换 至 上一个 被 访问 的 目录, 有点 像 电视遥控器 里 的 回看, 其中   " - " 表示 上一个 被 访问 的 目录

--------------------------------------------

Linux文件系统的特性:

1、文件名可以使用除/以外的任意字符;但总长度不能超过255个;

2、严格区分大小写

--------------------------------------------

Linux命令:


bash中 命令 有 两种 类型, 分别 为 内部命令 和 外部命令

    内部命令: bash 自带 的 命令, 也是 最基本 的 命令

    外部命令: 后来 自己 安装 的 一些 软件 的 命令。


查看 命令 类型:

type 可 查看 命令 的 类型

wKiom1RGKBfz0ExOAACCvHZ_gk8547.jpg

这里可见, ls 是 一个 外部命令, 而 cd 是一个 内部 命令

which 命令 可 查看 命令 所在 路径

wKiom1RF_P3Ct3qdAADUNqEmr44747.jpg

 命令 这些 文件 路径 也 是 一个 环境 变量,叫 PATH

环境变量: PATH

wKiom1RF_b6CcVc-AACGwOFw2J0971.jpg

这个 环境变量 是 用来 存放 命令 的 路径 的, 以 " : " 作为 分隔符, 命令 一般 会 存放 在 这些 目录 下, 执行 命令 时 会 按照 目录 的 次序 来 遍历 , 直到 找到 命令 并 执行, 不过 这 又 出现 了 一个 问题。, 遍历 命令 是 一个 非常 慢 的 操作, 所以 需要 一种 可以 快速 找到 命令 的 机制, 这种 机制 叫做 hash, 看一下 hash把。

wKioL1RF_v-zfWg1AACmehSg26w824.jpg

这个 就是 我 的 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    wKiom1RGDKGSflnNAACQxXuyQzk090.jpg

        可见 passwd 在 1, 5, 1ssl 三个段 中 

    # man -k Keyword

        这个是 模糊 查找, 把 Keyword 多 出现过 的 地方 都 列出来。

wKiom1RGDZGDx2qkAANkeBAOOyY168.jpg


    这里 再 强调 一下, 内部 命令 手册 用 help 来 查, 外部命令 用 man 来查。。

-----------------------------------------------------------

info命令:

    这个是在线帮助文档, 只要联网就能用, 操作和 man 差不多。。

-----------------------------------------------------------

还有 RedHat官方文档, 不过是英文的。。。。

        www.redhat.com/docs

还有 我们 的 大谷歌~:

    谷歌 很 强大, 有 好多 使用 技巧 的。 这里 就 不说 了。

简单管理类命令:

    shutdown [option]... TIME

        -r: 重启

        -h: 关机:

        -c: 取消重启命令

        TIME格式:

            now: 直接关机

            +#: #分钟后关机

            hh:mm  : 固定时间关机

wKioL1RGEKLQ8_m2AAC2xpUI-hk228.jpg

---------------------------------------------------

    reboot: 重启, 一般会 这么 用

        sync;sync;reboot , 这里 的 sync 是 将 内存中 还没 来得及 存入 硬盘 的 数据 手动 存入 硬盘。

---------------------------------------------------

    halt    [-p] : 立即关机

        -p : 关机之后 并 切断 电源。。

---------------------------------------------------

    poweroff: 同 halt, 几乎 没什么 区别。。

date : 显示时间

wKiom1RGEj2Ck7AoAAA6LsJhYkE557.jpg  

    也可自定义显示时间的格式。

        %Y: 四位年份

        %y: 两位年份

        %m: 月

        %d: 日

        %H: 时

        %M: 分

        %S: 秒

wKiom1RGE4-TKl8JAAA7Bu_aSI0111.jpg

        unix元年:      1970-01-01-00:00:00

        %s : 从 unix 元年 到 现在 所 经过 的 秒数, 可以解决时差问题。

wKioL1RGE-_yg3wgAAArRdh1000148.jpg

-----------------------------------------------------------------------------------

cal : 显示 日历

wKiom1RGFB_iaEDjAACK1iaIHk4221.jpg

---------------------------------------------------------------------

Linux的两种时钟:

    硬件时钟: 计算机硬件自带的时钟

    软件时钟: 系统开机时自动读取硬件时钟,然后就自行计算时间了。

    date 显示 的 就是 软件时钟的 时间


hwclock [-sw]: 硬件时钟时间

wKioL1RGFUKgAfG7AABJgE3d9yE655.jpg

有 两个 选项:

    -s: 以硬件时钟为准, 同步系统时钟

    -w: 以系统时钟为准,同步硬件时钟。

------------------------------------------------------------------------

dirname:显示指定路径除了文件名之外的前缀

basename:显示指定路径的后缀,

wKioL1RGFtXQyu--AACwcR-xQrI711.jpg


Shell常见使用技巧:(这里先总结一些我知道的,以后还会继续整理的。。)

Ctrl+C    : 取消命令, 当 命令 正在 执行 是 可以 强制 取消 这个 命令

shift+pgup 和 shift+pgdn : 这 两个 是 bash 的 翻页 命令, 

esc + .: 获取 上个 命令 的 参数, 相当于 !$

你可能感兴趣的:(linux,基础,shell)