第一章:Linux目录结构

第一节:基本介绍

第二节:Linux具体目录结构

第二章:Linux常用命令

第一节:目录处理命令

2.1.1 命令格式

2.1.2 列出目录的内容:ls 命令

2.1.3 创建目录:mkdir 命令

2.1.4 切换工作目录:cd 命令

2.1.5 显示当前路径:pwd 命令 

2.1.6 删除空目录:rmdir 命令

2.1.7 拷贝文件:cp 命令

2.1.8 删除文件:rm 命令

第二节:文件处理命令

2.2.1 创建文件:touch 命令

2.2.2 显示文件内容:cat 命令

2.2.3 分屏显示:more 命令

2.2.4 分屏显示:less 命令

2.2.5 取首n行:head 命令

2.2.6 取尾n行:tail 命令

第三节 链接命令

2.3.1 建立链接文件:ln 命令

第四节 权限管理命令

2.4.1 修改文件权限:chmod 命令 

2.4.2 修改文件所有者:chown 命令

2.4.3 修改文件所属组:chgrp 命令

2.4.4 默认权限:umask 命令

第五节 文件搜索命令

2.5.1 查找文件:find 命令

2.5.2 文件资料库查找:locate 命令

2.5.3 查看命令位置:which 命令

2.5.4 查看命令位置:whereis 命令

2.5.5 文本搜索:grep 命令

第六节 帮助命令

2.6.1 帮助:man 命令

2.6.2 获取简介:whatis 命令

2.6.3 获取帮助:help 命令

第七节 用户管理命令

2.7.1 添加用户:useradd 命令

2.7.2 修改密码:passwd 命令

2.7.3 查看登录用户:who 命令

2.7.4  w 命令

2.7.5 切换用户:su 命令

第八节 压缩解压缩命令

2.8.1 压缩:gzip 命令

2.8.2 解压缩:gunzip 命令

2.8.3 归档管理:tar 命令

2.8.4 zip 命令

2.8.5 unzip 命令

第九节 网络命令

2.9.1 write 命令

2.9.2 wall 命令

2.9.3 测试网络连通性:ping 命令

2.9.4 查看和设置网卡信息:ifconfig

2.9.5 查看发送电子邮件:mail 命令

2.9.6 查看登录用户历史信息:last 命令

2.9.7 显示网络相关信息:netstat 命令

2.9.8 配置网络:setup 命令

2.9.9 挂载:mount 命令

第十节 关机重启命令

2.10.1 关机:shutdown 命令

2.10.2 退出登录:logout 命令

第三章 文本编辑器vim

第一节 Vim常用操作

3.1.1 插入命令

3.1.2 定位命令 

3.1.3 删除命令

3.1.4 复制和剪切命令

3.1.5 保存和退出命令

第四章 软件安装

第一节 软件包管理简介

4.1.1 软件分类

第二节 rpm命令管理

4.2.1 包命名与依赖性

4.2.2 安装升级与卸载

第三节 yum在线管理

4.3.1 yum 命令

4.3.2 yum软件组管理命令

第五章 shell 基础

第一节 shell 概述

5.1.1 shell 是什么

5.1.2 shell 的分类

第二节 shell 脚本的执行方式

5.2.1 echo 输出命令

5.2.2 编写脚本 

5.2.3 执行脚本

第三节 Bash的基本功能

5.3.1 历史命令与命令补全

5.3.2 命名别名与常用快捷键

5.3.3 输入输出重定向

5.3.4 多命令执行与管道符

5.3.5 通配符与其他特殊符号

第四节 Bash 变量

5.4.1 用户自定义变量

5.4.2 环境变量

5.4.3 位置参数变量

5.4.4 预定义变量

 第五节 Bash运算符

5.5.1 数值运算与运算符

第六节 环境变量配置文件

5.6.1 配置文件简介

5.6.2 环境变量配置文件作用

5.6.3 其他配置文件和登录信息

第六章 Shell 编程

第一节 正则表达式

6.1.1 正则表达式与通配符

第二节 字符串截取命令

6.2.1 cut 字段提取命令

6.2.2 printf 命令

6.2.3 awk 命令

6.2.4 sed 命令

第三节 字符处理命令

6.3.1 排序命令 sort

6.3.2 wc 统计命令


字符权限对文件的含义对目录的含义r读权限

可以查看文件内容

可以列出目录中的内容

w

写权限

可以修改文件内容

可以在目录中创建、删除文件

x

执行权限

可以执行文件

可以进入目录

命令

作用

a

在光标所在字符后插入

A

在光标所在行尾插入

i

在光标所在字符前插入

I

在光标所在行行首插入

o

在光标下插入新行

O

在光标上插入新行

命令

作用

:set nu设置行号:set nonu取消行号gg

到第一行

GG到最后一行nG到第n行:n到第n行$移至行尾0移至行首

命令

作用

x

删除光标所在处字符nx删除光标所在处后n个字符dd删除光标所在行,ndd删除n行dG删除光标所在行到文件末尾内容D删除光标所在处到行尾内容:n1,n2d删除指定范围的行

命令

作用yy

复制当前行

nyy

复制当前行以下n行

dd

剪切当前行

ndd

剪切当前行以下n行

p、P粘贴在当前光标所在行下或者行上

命令作用:w保存修改:w 文件名另存为指定文件:wq保存修改并退出ZZ快捷键,保存修改并退出:q!不保存修改退出:wq!保存修改退出(文件所有者和root均可忽略只读权限强制写入)

控制字符作用\\输出\\a输出警告音\b退格键,向左删除键\c取消输出行末的换行符,和“-n”选项一致\e

ESCAPE键

\f换页符\n换行符\r回车键\t

制表符,Tab键

\v垂直制表符\0nnn按照八进制ASCII码表输出字符,0为数字零,nnn为三位八进制数\xhh按照十六进制ASCII码表输出字符,其中hh是两位十六进制数

示例:

[root@zhangRabbitMQ zhang]# echo -e "ab\bc"
ac[root@zhangRabbitMQ zhang]# echo -e "a\tb\tc\nd\te\tf" 
a	b	c
d	e	f

 同时输出正确和错误

管道符:|

命令名称:|命令格式:
[root@localhost ~]# 命令1  |  命令2 
#命令1的正确输出作为命令2的操作对象 例子: 
[root@localhost ~]# ll -a /etc/  | more 
[root@localhost ~]# netstat -an | grep "ESTABLISHED"

其他特殊符号

示例:

#!/bin/bash 
num1=$1 
num2=$2 
sum=$(( $num1 + $num2)) 
#变量sum的和是num1加num2 
echo $sum 
#打印变量sum的值[root@zhangRabbitMQ zhang]# /tmp/sum.sh 1 2
3

 上图从左到右如果有叠加。后面的命令会覆盖前面的命令。

/etc/profile的作用:

  • USER变量:

  • LOGNAME变量:

  • MAIL变量:

  • PATH变量:

  • HOSTNAME变量:

  • HISTSIZE变量:

  • umask:

  • 调用/etc/profile.d/*.sh文件

~/.bash_profile的作用

  • 用了~/.bashrc文件。

  • 在PATH变量后面加入了“:$HOME/bin”这个目录

示例1:"*" 前一个字符匹配0次或多次

● grep "a*" test_rule.txt  
#匹配所有内容,包括空白行
● grep "aa*" test_rule.txt 
#匹配至少包含有一个a的行 
● grep "aaa*" test_rule.txt  
#匹配最少包含两个连续a的字符串 
● grep "aaaaa*" test_rule.txt 
#则会匹配最少包含四个个连续a的字符串

示例2:"." 匹配除了换行符外任意一个字符 

● grep  "s..d" test_rule.txt  
#“s..d”会匹配在s和d这两个字母之间一定有两个字符的单词 
● grep "s.*d" test_rule.txt  
#匹配在s和d字母之间有任意字符 
● grep ".*" test_rule.txt  
#匹配所有内容,0或多个任意字符

示例3: "^" 匹配行首,"$" 匹配行尾

● grep "^M" test_rule.txt 
#匹配以大写“M”开头的行 
● grep "n$" test_rule.txt 
#匹配以小写“n”结尾的行 
● grep -n "^$" test_rule.txt 
#会匹配空白行 

 示例4:"[]" 匹配中括号中指定的任意一个字符,只匹配一个字符

● grep "s[ao]id" test_rule.txt
#匹配s和i字母中,要不是a、要不是o 
● grep "[0-9]" test_rule.txt
#匹配任意一个数字 
● grep "^[a-z]" test_rule.txt 
#匹配用小写字母开头的行

示例5:"[^]" 匹配除中括号的字符以外的任意一个字符 

● grep "^[â-z]" test_rule.txt  
#匹配不用小写字母开头的行 
● grep "^[â-zA-Z]" test_rule.txt 
#匹配不用字母开头的行 “\” 转义符 
● grep "\.$" test_rule.txt
#匹配使用“.”结尾的行

示例6:"\{n\}" 表示其前面的字符恰好出现n次 

● grep "a\{3\}" test_rule.txt 
#匹配a字母连续出现三次的字符串 
● grep "[0-9]\{3\}" test_rule.txt 
#匹配包含连续的三个数字的字符串   

示例7:"\{n,\}" 表示其前面的字符出现不小于n次 

● grep "^[0-9]\{3,\}[a-z]" test_rule.txt 
#匹配最少用连续三个数字开头的行

示例8:"\{n,m\}" 匹配其前面的字符至少出现n次,最多出现m次 

​​​​​​​● grep "sa\{1,3\}i" test_rule.txt 
#匹配在字母s和字母i之间有最少一个a,最多三个a

第二节 字符串截取命令

6.2.1 cut 字段提取命令

[root@localhost ~]# cut [选项] 文件名 
选项:  
-f  列号:  	   提取第几列  
-d 分隔符:  按照指定分隔符分割列

创建演示文件student.txt

[root@localhost ~]# vi student.txt 
ID      Name       gender     Mark 
1        Liming      M         86 
2        Sc          M         90 
3        Gao         M         83  

示例

[root@localhost ~]# cut -f 2 student.txt  
#提取第二列
[root@localhost ~]# cut -f 2,3 student.txt  
#提取第二第三列
[root@localhost ~]# cut -d ":" -f 1,3 /etc/passwd
#以:为分隔符提取第一第三列

cut命令的局限

[root@localhost ~]# df -h | cut -d " " -f 1,3

#有空格时提取会出问题,不能识别多个空格情况

6.2.2 printf 命令

[root@localhost ~]# printf   ’输出类型输出格式’    输出内容 
输出类型:  
%ns :  输出字符串。n是数字指代输出几个字符  
%ni :  输出整数。n是数字指代输出几个数字  
%m.nf : 输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表:2位是小数,8位是整数。 

其中输出格式选项有:

输出格式:

\a : 输出警告声音

\b : 输出退格键,也就是Backspace键

\f : 清除屏幕

\n : 换行

\r : 回车,也就是Enter键

\t : 水平输出退格键,也就是Tab键

\v : 垂直输出退格键,也就是Tab键

6.2.3 awk 命令

[root@localhost ~]# awk ‘条件1{动作1} 条件2{动作2}…’ 文件名 条件(Pattern):  
    一般使用关系表达式作为条件  
    x > 10 判断变量 x是否大于10  
    x>=10 大于等于 
    x<=10 小于等于 
动作(Action):  
    格式化输出  
    流程控制语句   

示例 

[root@zhangRabbitMQ zhang]# vi /tmp/student.txt
id      name    java    linux   mysql
1       bilei   88      88      88
2       zhang   60      60      60
                                   
[root@zhangRabbitMQ zhang]# awk '{printf $2 "\t" $5 "\n"}' /tmp/student.txt
name	mysql
bilei	88
zhang	60

BEGIN

#awk 'BEGIN{printf "This is a transcript \n" } {printf $2 "\t" $6 "\n"}' student.tx
END

# awk 'END{printf "The End \n" }

{printf $2 "\t" $6 "\n"}' student.txt

FS内置变量

#cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}'

关系运算符

#cat student.txt | grep -v Name | awk '$6 >= 87 {printf $2 "\n" }'

6.2.4 sed 命令

sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。

[root@localhost ~]# sed [选项] ‘[动作]’ 文件名 选项:  
    -n:  一般sed命令会把所有数据都输出到屏幕 ,  如果加入此选择,则只会把经过           		sed命令处  理的行输出到屏幕。 
    -e: 允许对输入数据应用多条sed命令编辑 
    -i:  用sed的修改结果直接修改读取数据的文件,  而不是由屏幕输出动作:  
    a \:  追加,在当前行后添加一行或多行。添加多行时,除最后 一行  外,每行末尾需要用“\”代	     		表数据未完结。 
    c \:  行替换,用c后面的字符串替换原数据行,替换多行时,除最  后一行外,每行末尾需“\”代   		表数据未完结。
    i \:  插入,在当期行前插入一行或多行。插入多行时,除最后 一行  外,每行末尾需要“\”代
表数据未完结。 
    d:  删除,删除指定的行。 
    p:  打印,输出指定的行。 
    s:  字串替换,用一个字符串替换另外一个字符串。格式为“行范  围s/旧字串/新字串/g”(和vim
中的替换格式类似)。 

 示例

[root@zhangRabbitMQ zhang]# vi /tmp/student.txt
id      name    java    linux   mysql
1       bilei   88      88      88
2       zhang   60      60      60
#查看文件的第二行  
[root@zhangRabbitMQ tmp]# sed '2p' student.txt
id	name	java	linux	mysql	
1	bilei	88	88	88
1	bilei	88	88	88
2	zhang	60	60	60#只显示第二行
[root@zhangRabbitMQ tmp]# sed -n '2p' student.txt
1	bilei	88	88	88
 
#删除第二行到第四行的数据,但不修改文件本身
[root@zhangRabbitMQ tmp]# sed '2,3d' student.txt  
id	name	java	linux	mysql	

第三节 字符处理命令

6.3.1 排序命令 sort

[root@localhost ~]# sort [选项] 文件名 选项: 
    -f:  忽略大小写  
    -n:  以数值型进行排序,默认使用字符串型排序  
    -r:  反向排序  
    -t:  指定分隔符,默认是分隔符是制表符  
    -k n[,m]: 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)  

 示例

[root@localhost ~]# sort /etc/passwd 
#排序用户信息文件  [root@localhost ~]# sort -r /etc/passwd 
#反向排序[root@localhost ~]# sort -t ":" -k 3,3 /etc/passwd 
#指定分隔符是“:”,用第三字段开头,第三字段结尾排序,就是只用第三字段排序  [root@localhost ~]# sort -n -t ":" -k 3,3 /etc/passwd  
#指定分隔符是“:”,用第三字段开头,第三字段结尾排序,以数值型进行排序

6.3.2 wc 统计命令

[root@localhost ~]# wc [选项] 文件名 选项:  
    -l: 只统计行数  
    -w: 只统计单词数  
    -m: 只统计字符数

点赞(88) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部