写点什么

Linux 入门篇 —— Shell 详解

用户头像
若尘
关注
发布于: 2021 年 02 月 24 日
Linux入门篇 —— Shell详解

Shell 详解

Shell 简介

  • Linux 精髓在于命令行操作

  • Shell 是一种特殊的程序

  • 是内核与用户的一种接口

  • Shell 命令解释器

  • Shell 一种解释性的语言(内部命令/外部命令)

- 内部命令:系统自带的,随系统内核一起启动(56)

- 外部命令:一些额外的软件或者程序

  • sh (Borurne Shell)

  • csh

  • ksh

  • BASH: 是 rhel 中默认的一种

  • shell 命令规范

- 命令字 [选项] [参数]

- 选项

- 作用:用于调节命令的具体功能

- "-" 引导短格式选项(单个字符)ex: "-l"

- "--" 引导长格式选项(多个字符) ex: "--color"

- 多个短格式选项可以写在一起

- -a -l -z -x --> -alzx

- 参数

- 命令操作的对象

- 有文件、目录等

- ex: ls -l /home

>在 Liunx 当中严格区分大小写

>在 Linux 当中一切皆文本


常用命令

  • su [-] username 切换当前登陆

- 有 - : 代表切换 bash

- 无 - : 代表不切换 bash

  • exit:退出

  • 查看系统当前主机名

- hostname

  • 修改主机名并生效

- hostnamectl set-hostname yourhostname

  • 关机操作

- poweroff

- init 0

- shutdown -h now

- halt

  • 重启命令

- reboot

- shutdown -r now # 现在重启

- shutdown -r now # 15 分钟后重启

  • 查看当前系统时间

- date

  • 查看日历

- cal

- cal 年份 # 查看全年日历

- cal 月份 年份 # 查看某年某月的日历

  • 查看系统当前 IP 地址

- ifconfig

- ip addr show (rhel7)

  • 测试网络连通性

- ping 127.0.0.1

- ping 127.0.0.1 -c 4 # 限制 ping 包次数


BASH 常用快捷方式

  • 中断当前操作

- CTRL + c

  • 清屏

- CTRL + l = clear

  • 换行

- \

  • 光标跳到行首

- CTRL + a

  • 光标跳到行尾

- CTRL + e

  • 清空到光标所在位置的前面所有内容

- CTRL + u

  • 清空到光标所在位置的后面所有内容

- CTRL + k

  • 查看历史命令 (默认保留 1000 行)

- history

  • 调用历史命令

- !n (ex: !22)

  • 清空历史命令

- history -c

  • 字体放大

- CTRL + SHIFT + +

  • 字体缩小

- CTRL + -


Linux 目录结构

  • boot:存放系统引导文件和内核文件

  • bin:存放可执行文件(二进制文件)(ls,cat,mkdir)

  • sbin:root 用户执行命令

  • home:普通用户的家目录

  • root:root 用户的家目录

  • dev:放置所有设备文件(外设 u 盘、磁盘、光驱)/dev/md\ /dev/sd\ /dev/hd\*

  • etc: 放置所有配置文件(服务)

  • lib/lib64:动态链接库文件(共享库) 类似于 .dll

  • media:媒体库文件

  • opt:文件安装目录,安装软件就在 opt 目录下

  • mnt:挂载点目录 mount \ \

  • var: 存放一些需要改变数据的文件 日志,某些大文件的溢出区

  • proc:虚拟文件系统目录,放的是内存的一个映射

- cat /proc/cpuinfo # 查看 CPU 运行状态

- cat /proc/meminfo # 参看内存运行状态

- cat /proc/version # 查看系统版本

- uname -m # 查看 CPU 架构

- uname -r # 查看内核版本

  • usr: 最大的目录 只要用到的目录或者文件都在这儿 /usr/sbin  /usr/doclinux

  • tmp: 共享文件夹,临时目录

  • lost+found:平时为空,只有系统在非正常关机时才会有,保存意外掉电内存数据


>Linux 中,如何获得命令帮助

>- help (内部命令) cd,kill 56 条

- ex:help cd

>- --help (适用于大多数外部命令查找) ls

- ls --help

  • 使用 man 手册进行命令查看(man:命令阅读手册)

- “男人没有什么搞不定的”

- man 命令字

- 上下键滚动文本

- Page down & Page Up 上下翻页

- 空格也支持翻页,回车键走一行

- 输入 / ,可以查找

  • info 也可进行命令帮助查找(使用与 man 接近)

  • pinfo 命令字 以浏览器的形式查看详细的 GUN 信息

  • /usr/share/doc # 所有已安装软件的说明文件

- firefox file:///usr/share/doc


Linux 常用命令

目录操作命名

  • cd 命令: 切换工作目录

- cd [目录位置]

- 绝对路径: cd /home/ruochen

- 相对路径:

- cd . 切换到当前目录

- cd .. 返回到上一级目录

- cd - 返回上一次所在的工作路径

- cd ../../ 返回到上一级目录的上一级目录

- cd ~ 返回到用户的家目录

  • pwd: 查看当前所在的工作目录

  • ls: 列出当前目录下的文件或者目录

在 Liunx 中,以.开头的文件是隐藏文件


- 格式: ls [选项] [目录或文件名]

- 选项:

- -l 以长格式显示

- -a 显示所有文件目录信息,包括隐藏文件

- -d 显示目录本身的属性

- -h 显示详情信息,变换了统计单位

- --color 以颜色区分不同类型的文件

- ll == ls -l

  • mkdir: 创建一个新目录

- 格式: mkdir [选项-p] [路径] 目录名

- -p: 递归创建多级目录

- mkdir -p b/c/e/f/g

  • rmdir: 删除一个空目录

- -p: 递归删除


文件操作命令

  • touch,cp,mv,rm,find

  • touch: 创建一个空文件,更新文件时间标记

- 格式: touch filename

>在 Linux 中,不以后缀区分文件

  • echo: 打印某个东西

- 重定向写

- echo "hello world" > a.txt

  • cp: 复制文件或者目录

- 格式: cp [选项] 源文件/目录 目标文件/目录

- -r: 递归复制整个目录树

- cp /root/aa/a.txt /root/bb

- cp ../aa/a.txt .

  • rm: 删除文件或目录

>rm -rf * 从删库到跑路


- 格式: rm [选项] 文件或者目录

- -r: 递归删除整个目录树

- -f: 强制删除不给任何提示


  • mv:移动文件或者目录

- 格式: mv [选项] 源文件/目录 目标文件/目录

- mv text/b.txt text-2/

- 注: 若移动目标位置与原位置相同(当前下操作),则此操作相当于重命名

- mv text text-1


  • find: 用于查找文件或者目录

- 格式: find [查找范围] [查找条件]

- 查找条件

- -name: 按文件名查找

[root@localhost ~]# find / -name initial-setup-ks.cfg

/root/initial-setup-ks.cfg

[root@localhost ~]# find / -name initial-*

/root/initial-setup-ks.cfg

[root@localhost ~]# find / -name initial--

/root/initial-setup-ks.cfg

[root@localhost ~]#


- -type: 按文件类型查找

- f: 普通文件

- d: 目录

- b: 块设备文件

- c: 字符设备文件

[root@localhost ~]# find / -name text -type d


- -user: 按文件属主查找(这个文件是谁的)


[root@localhost ~]# find / -user ruochen -name initial-setup-ks.cfg -type f

[root@localhost ~]# find / -user ruochen -type f -name ruochen.initial-setup-ks.cfg


- -size: 按文件大小进行查找

[root@localhost ~]# find /var/ -size +10k -type f

[root@localhost ~]# find /var/ -size -1k -type f

[root@localhost ~]# find /var/ -size +10k -size -11k -type f


- -a: 逻辑与

- -o: 逻辑或


[root@localhost ~]# find / -name anaconda-ks.cfg -o -name initial-setup-ks.cfg

/root/anaconda-ks.cfg

/root/initial-setup-ks.cfg


- !: 逻辑非


[root@localhost ~]# find / ! -name temp -type f


  • alias 别名; 为使用频率较高的命令设置简短的调用名称

- 查看当前用户所有别名

alias [别名]

- 设置别名

alias 别名="实际执行的命令"

grep -c 'boot' initial-setup-ks.cfg

7

[root@localhost ~]# alias aa="grep -c 'boot' initial-setup-ks.cfg "

[root@localhost ~]# alias aa

alias aa='grep -c '\''boot'\'' initial-setup-ks.cfg '

[root@localhost ~]# aa

7

- 取消别名: unalias [别名/-a]

- -a: 取消所有别名

[root@localhost ~]# unalias aa


- 让别名永久生效

- 将别名设置在~/.bashrc 文件中

- vim .bashrc


>cd cd. cd..

>针对目录来说 . 当前位置/目录 pwd

>针对文件来讲 . 在 Linux 中代表隐藏文件


cd | cd. | cd ..

  • | - | -

什么都不跟,代表切换到当前用户家目录 | 当前目录 | 代表切换到上级目录


>~ 代表用户家目录

>\- 上次所操作的目录


文件内容操作命令

  • cat,less,head,tail,grep,wc

  • cat: 文件内容查看,显示出文件的全部内容

- 格式: cat filename

  • less(more): 全屏方式分页显示文件内容

- 格式: less/more filename

- 按回车 Enter 逐行滚动

- 按空格键向下翻页

- 按 b 键向上翻页

- 按 q 键退出

- more 用法与 less 一致,只是多了一个百分比显示

  • head(头部): 显示文件头部若干行,默认 10 行

- 格式: head [选项] filename

[root@localhost ~]# head -n 5 initial-setup-ks.cfg


  • tail(尾部): 显示文件尾部若干行,默认 10 行

- 格式: tail [选项] filename

[root@localhost ~]# tail -n 5 initial-setup-ks.cfg


  • wc: 统计文件内容的,默认情况下统计结果为: 行数 词数 字节数

- 格式: wc [选项] filename


[root@localhost ~]# wc initial-setup-ks.cfg

- 选项:

- -w: 统计字数 一个字被定义为由空白,跳格(制表符),换行以这些为分割字符串

- -l: 行数

- -c: 字节数

- -m: 字符数 -m -c 不能一起使用

- -L: 打印最长行的长度


[root@localhost ~]# wc -l -c -w -L initial-setup-ks.cfg


  • grep: 在文件中查找并显示包含指定字符串的行

- 格式: grep [选项] 查找条件 目标文件

- 选项:

- -c: 显示匹配行的数量

- -i: 查找时不区分大小写

- -v: 反转查找


[root@localhost ~]# grep -c 'boot' initial-setup-ks.cfg

7

[root@localhost ~]# grep -c -v 'boot' initial-setup-ks.cfg

42

[root@localhost ~]# grep -i 'agent' initial-setup-ks.cfg

- 查找条件设置:

1. 查找条件用引号引起来

2. "^...": 表示以... 开头

3. "...$": 表示以... 结尾

4. "^$": 匹配空行


[root@localhost ~]# grep -c '^$' anaconda-ks.cfg

[root@localhost ~]# grep -cv '^$' anaconda-ks.cfg

[root@localhost ~]# grep -c '^#' anaconda-ks.cfg

12

[root@localhost ~]# grep -c 'ation$' anaconda-ks.cfg

5


归档及压缩命令

  • tar: 压缩与解压缩 制作归档文件和释放归档文件

- 格式:

- 制作归档文件

tar [选项] [目录]/归档文件名 原文件/目录

- 释放归档文件

tar [选项] 归档文件 [-C 目标文件]

- 命令:

- 压缩:

- tar -czvf [存放路径]归档文件名.tar.gz 原文件/目录

- tar -cjvf [存放路径]归档文件名.tar.bz2 原文件/目录

- -c 压缩

- -z 压缩为.gz 格式

- vf 显示详情信息

- -j 压缩为.bz2 格式

- 解压缩:

- tar -xzvf [存放路径]归档文件名.tar.gz [-C 解压目录]

- tar -xjvf [存放路径]归档文件名.tar.bz2 [-C 解压目录]

- -x 解压


tar -czvf text.tar.gz text

tar -cjvf text.tar.bz2 text

tar -czvf /root/var.tar.gz /var/

tar -cjvf /root/var.tar.bz2 /var/

tar -czvf a.tar.gz text-1 text-2

[root@localhost ~]# tar -xzvf text.tar.gz

[root@localhost ~]# tar -xjvf text.tar.bz2

[root@localhost ~]# tar -xjvf text.tar.bz2 -C test


>.gz 格式

>.bz2 格式

>.bz2 格式压缩率比.gz 格式压缩率高


发布于: 2021 年 02 月 24 日阅读数: 30
用户头像

若尘

关注

还未添加个人签名 2021.01.11 加入

还未添加个人简介

评论

发布
暂无评论
Linux入门篇 —— Shell详解