IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 《Linux命令行与shell脚本编程大全》读书笔记 之一 -> 正文阅读

[系统运维]《Linux命令行与shell脚本编程大全》读书笔记 之一

前言

? ? ? ? 最近因为准备重新给自己的工作站重新装系统,加之日常工作中确实还会经常地使用到linux系统,所以越发觉得对linux没有系统性的了解会造成学习曲线陡峭。准备通过看书对相关概念建立一个基础的认知,对linux的常规操作进行一个学习掌握。

概念名词汇总

? ? ? ? swap space 交换空间

? ? ? ?Virtual File System VFS?虚拟文件系统

? ? ? ?GNU (GNU's Not Unix)

? ? ? ? CLI comand line interface

? ? ? ? vitual directory 虚拟目录

? ? ????file globbing?文件扩展匹配

????????metacharacter wildcards?? ? 元字符通配符?

第一章? 初识Linux shell

1.1 什么是Linux

? ? ? ? 操作系统,包含Linux内核、GNU工具、图形化桌面环境、应用软件

1.1.1??Linux内核

? linux内核负责的功能:

  • 系统内存管理
  • 软件程序管理(linux的init系统采用运行级)
  • 硬件设备管理
    • 设备驱动代码:编译进内核的设备驱动代码,可插入内核的设备驱动模块
    • 设备文件分类:字符型、块设备、网络设备
  • 文件系统管理? ? ? ? ? linux内核采用虚拟文件系统作为和每个文件系统交互的接口

1.1.2?GNU工具

? ? ? ? 核心GNU工具(coreutils)

? ? ? ? ? ? ? ? 用以处理文件的工具

? ? ? ? ? ? ? ? 用以操作文本的工具

? ? ? ? ? ? ? ? 用以管理进程的工具

? ? ? ? shell

? ? ? ? ? ? ? ? 交互式工具,为用户提供启动程序、管理文件系统中的文件以及运行在linux系统上的进程的途径。其核心是 命令行提示符(输入文本命令、解释命令,并在内核执行)

? ? ? ? ? ? ? ? shell脚本 多个shell命令放入文件作为程序执行。

? ? ? ? ? ? ? ? linux 有多种shell可以使用,不同的shell 有不同特性。默认是 bash shell 。取名的渊源,Bourne agian shell:Bourne万的一个文字游戏。其他还有ash\korn\tesh\zsh

1.1.3?图形化桌面环境

????????X windows 系统(图形显示的核心部分、X.org

? ? ? ? KDE桌面?

? ? ? ? GNOME桌面

? ? ? ? Unity桌面 (Ubuntu 使用的)

1.2 Linux的发行版

? ? ? ? 分类:

? ? ? ? ? ? ? ? 完整的核心linux发行版(Red Hat、Debian)

? ? ? ? ? ? ? ? 特定用途的发行(CentOs、Ubuntu)

????????????????????????????????CentOs是Red hat企业linux源代码构建的免费发行版

? ? ? ? ? ? ? ? LiveCD测试发行版

第二章 走进?shell

?2.1 进入命令行

2.1.1 控制台终端

2.1.2 图形化终端

2.2 通过Linux控制台终端访问CLI?

2.3 通过图形化终端仿真访问CLI

2.4~2.6 介绍了GNOME\Konsole Terminal ,xterm三个终端仿真器的基本使用

第三章 基本的Bash shell 命令

3.1 启动shell?

3.2 shell 提示符

3.3 bash手册 命令:man?

man xterm
man man
man 1 intro # 阅读第一部分  man section# topic

?linux 手册页惯用的节名、手册页的内容区域

3.4 浏览文件系统

3.4.1 linux 的文件系统

? ? ? ? windows? pc上安装的物理驱动器决定了文件的路径名,但linux不一样, linux将文件存储在单个目录结构中,这个目录【虚拟目录】 vitual directory。

? ? ? ? linux 用正斜线(/)在路径中划分目录,二用反斜线(\)来标记转义字符

? ? ? ? linux的根驱动器在 linux pc 安装的第一块硬盘(根驱动器),其包含了虚拟目录的核心。

? ? ? ? mount point挂载点是虚拟目录用于分配额外存储设备的目录。

? ? ? ? 【文件系统层级标准】filesystem hierarchy(?/?ha??rɑ?rki/?) standard,FHS

? ? ? ? 常见的linux目录名称(图表 待插入)

3.4.2 遍历目录

pwd #显示出shell会话的当前目录  

? ? ? ? 绝对文件路径

? ? ? ? 相对文件路径

? ? ? ? ? ? ? ? 单点符号 (.)表示当前目录

? ? ? ? ? ? ? ? 双点符号? ?(..)表示当前目录的父目录

?3.5 文件和目录列表

3.5.1 基本列表功能

ls #输出的列表是按字母排序的(列排序)
ls -F  # 会在目录名后加/ ,会在可执行的文件后面加个 星号*
ls -F -R #-R 递归选项
ls -l # 显示长列表,包含目录的更多信息
ls -alF #组合参数

3.5.2 显示长列表

ls -l 可显示的信息:

  • ? ? ? ? 文件类型
  • 文件的权限
  • 文件的硬链接数量
  • 文件属主的用户名
  • 文件的组名
  • 文件的大小(单位 是字节)
  • 文件的上次修改时间
  • 文件名 或目录名

3.5.3 过滤输出列表

? ? ? ? 用户可制定特定文件的名称作为过滤器,ls命令可通过识别标准通配符,让过滤器帮助匹配 不知确切名称的文件。

ls -l my_scri?pt # 问号 ?代表一个字符
ls -l my*        #星号* 代表零个或多个字符
ls -l my_scr[ai]pt  #中括号表示 一个字符位置并给出多个可能的选择。
ls -l my_scr[a-i]pt # 也可以制定字符范围
ls -l f[!a]ll # 用感叹号(!)将不需要的内容排除在外

? ? 文件扩展匹配 file globbing

? ? 元字符通配符? metacharacter wildcards

3.6 处理文件

3.6.1 创建文件

touch test_one # 创建文件
ls -l test_one 

ls -l test_one 
touch test_one # 改变文件的修改时间
ls -l test_one 

ls -l test_one 
touch -a test_one # 改变文件的访问时间
ls -l --time=atime test_one  # 查看文件的访问时间

3.6.2 复制文件

cp source destination # source源对象 destination目标对象
# cp命令将source复制成一个新文件,并命名为destination
# 建议加上 -i 选项,强制shell询问是否需要覆盖已有文件
cp -i /etc/NetworkManager/NetworkManger.conf . 
# cp source . 单点符指的是将文件复制到当前工作目录中

cp -R  Scripts/ Mod_scripts #递归地复制整个目录的内容
cp *scirpt Mod_Scripts # 通配符会将目录下所有以scirpt结尾的文件复制到指定的目录下

3.6.3 制表键自动补全

3.6.4 链接文件

? ? ? ? 文件链接:
? ? ? ? ? ? ? ? 符号链接:符号链接是一个实在的文件,指向存放在虚拟目录结构某个地方的另一个文件,这两个通过符号链接在一起的文件,彼此内容并不相同。

ln -s data_files s1_data_file # w为data_file创建符号链接,原始文件data_files必须事先存在。
ls -i *data_files # 通过ls -i 可以查询文件的inode编码,inode是文件标识的唯一数字。

? ? ? ? ? ? ? ? 硬链接 会创建独立的虚拟文件

ln code_file h1_code_file 
ls -li *code_file # 链接技术

????????只能对于同一存储媒体的文件创建硬链接。不同存储媒体的文件只能使用符号链接。

3.6.5 重命名文件

? ? ? ? mv 可将文件/目录移动位置 或重命名

ls -li f?ll
mv fall fzll  # 重新命名
ls -li f?ll


mv fzll /home/chirisince/Pictures/ # 移动文件位置,不改变inode编号和时间戳
#类型cp 推荐 加-i参数,覆盖文件会有提示确认

mv /home/fzll /home/test/fall # 移动文件位置并同时修改文件名

# 可使用mv移动整个目录

3.6.6 删除文件

rm -i fall  #rm removing 移除/删除 linux没有回收箱,用-i选项多个确认环节。
rm -i f?ll  
rm  -f # 删除很多文件且不受提示符的打扰

3.7 处理目录

3.7.1 创建目录

mkdir New_dir 
mkdir -p /New_dir/sub_dir/under_dir #批量地创建目录和子目录

3.7.2 删除目录

rmdir # 只能删除空目录
rm -r # -r, -R, --recursive
            #  remove directories and their contents recursively
#推荐使用
rm -ri 

rm -rf # 一口气删除目录及其所有内容,没有警告信息,没有声音提示 是一个非常危险的工具。

tree small_dir # 可以美观地展示目录、子目录及其中的文件。
apt install tree

3.8 查看文件内容

3.8.1 查看文件类型

file New_dir
#显示文件的类型 text(文本)文件,字符编码
#展示文件是否有为符号链接
#对于脚本文件,可以展示其可执行
# 对于二进制可执行程序,file命令可以确定该程序编译所面向的平台以及需要何种类型的库。

3.8.2 查看整个文件

cat #显示文本中所有数据的工具
cat -n test1 # 给文本的行加上行号
cat -b test1 # 只给有文本的行加上行号,不给空白加
cat -T test1 # 不让制表符出现

more # 命令 分页工具
less # 分页,可识别上下键以及上下翻页键

3.8.3 查看部分文件

tail -n 2 log_file #-n 参数是显示 文件最后几行

head -5 log_file #展示文件开头的那些行的内容
head -n 5 log_file 

第四章 更多的bash shell 命令

4.1 检测程序

4.1.1 探查进程

? ? ? ? 监测进程process可以用ps 命令。

? ? ? ? ps的特点:

????????1、功能全面,进而复杂(参数多)

? ? ? ? 2、GNU ps 支持3中类型的命令行参数:Unix、BSD、GNU

? ? ? ? 常用ps参数总结:

ps -ax     # 查看全部进程
ps -u root # 根据用户过滤进程
ps -aux # 通过cpu 和内存过滤进程
ps -axjf  #树形显示进程 
pstree #树形显示进程 

ps -eo pid,user,args # 手工筛选信息
watch -n1 'ps -aux' #使用watch实时监控进程状态

 
ps -aux | sort -nk 3  #查看CPU 资源的使用量对进程进行排序
ps -ef | grep ssh     #查找特定进程信息
ps -aux | grep ssh    #查找特定进程信息
ps -aux >ps.txt       #把所有进程显示出来,并输出到ps.txt文件中

参考资料:

ps命令常用选项参数详解_kstg663294_51CTO博客

Linux ps命令常见实战用法 - 知乎

4.1.2 实时检测进程

? ? ? ? 常用命令 top 、htop?

? ? ? ? 进程的详细信息类别说明:

? ? ? ? ? ? ? ? PID、USER、PR(进程优先级)、Ni(进程的谦让度)、VIRT虚拟内存总量、RES 进程占用的物理内存总量、SHR 进程和其他进程共享的内存总量、

S进程的状态(D中断休眠\R运行\S休眠\T跟踪或停止\Z僵化)、%CPUcpu时间比例、%Mem 进程使用的内存占可用的内存的比例?

4.1.3 结束进程

命令 kill?

? ? ? ? 进程信号

????????HUP 挂起

?? ? ? ? INT 中断

? ? ? ? QUIT 结束运行

? ? ? ? KILL 无条件终止

? ? ? ? SEGV 段错误

? ? ? ? TREM 尽可能终止

? ? ? ? STOP 无条件停止运行,但不终止

? ? ? ? TSTP 停止或暂停,但继续在后台运行

? ? ? ? CONT 在stop或TSTP 之后恢复执行

命令 killall 可以支持通过进程名而不是pid来结束进程,支持通配符。

killall http*

4.2 检测磁盘空间

4.2.1 挂载存储媒体

? ? ? ? 1、挂载的基本命令 mount? -t type device directory?

? ? ? ? ? ? ? type? 文件类型

????????????????????????vfat windows长文件系统,

????????????????????????ntfs window7 xp nt vista 等使用的高级文件系统

? ? ? ? ? ? ? ? ? ? ? ? iso9660 标准CD-ROM文件系统

? ? ? ? ? ? ? device 媒体的设备文件名

? ? ? ? ? ? ? diretcory 挂载虚拟目录的挂载点?

? ? ? ? mount命令的参数

? ? ? ? ? ? 参考资料? ??mount linux 命令 在线中文手册

? ? ? ? 2、umount [directory |device]

4.2.2 使用df命令

df -h

4.2.3 使用du命令

du可以显示某个特定目录,默认是当前目录的磁盘使用情况。

du -c # 显示所有已列出文件总的大小
du -h # 按用户易读的格式输出大小
du -s # 显示每个输出参数的总计

4.3 处理数据文件

4.3.1 排序数据

sort -n files #按数字的值排序 而不是按字符
sort files #默认情况 会按照会话制定的默认语言的排序规则对文本文件的数据行排序
sort -M # 按月排序 三字符月 比如MAR

sort -t ':' -k 3 -n /etc/passwd #以':'为分隔 的第3个字段排序

4.3.2 搜索数据

grep three files1 # 在文件files1 中搜索three
grep -v t files # -v 反向搜索
grep -n t files # 显示行号
grep -e -t -e f files1 #指定多个匹配模式,可用-e参数 指定每个模式
grep -e [tf] files # [tf]正则表达式 搜索包含t或者f字符的匹配

egrep 是grep的衍生,支持POSIX扩展正则表达式。fgrep 支持将匹配模式指定为用换行符分隔的一列固定长度的字符串。?

4.3.3 压缩数据

????????linux文件压缩工具:

????????????????bzip2、 .bz2

????????????????compress、 .Z? ?初代,逐渐无人用

????????????????gzip、 .gz? GNU压缩工具

????????????????zip? ?.zip? ? ? ? windows 上PKzip工具的Unix 实现

? ? ? ? 软件包gzip 包含一下工具

? ? ? ? ? ? ? ? gzip? 压缩文件,支持通配符

????????

gzip my*
ls -l my*

? ? ? ? ? ? ? ? gzcat 查看压缩过的文本文件的内容

? ? ? ? ? ? ? ? gunzip 解压文件

????????

4.3.4 归档数据

? ? ? ? 标准归档工具 tar?

? ? ? ? tar function [options] object1 object 2 ...

? ? ? ? tar 命令的功能

tar -cvf test.tar test/ test2/ # 创建文件
tar -tf test.tar  # 列出内容 不提取文件
tar -xvf test.tar # 提取内容,如果tar文件是一个目录结构创建的,那整个目录会在当前目录下重新创建。

tar -zxvf  filename.tgz #gzip压缩过的tar文件可以用该命令直接解压

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 16:04:59  更:2021-12-23 16:05:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:39:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码