【民大Linux课件】Linux的操作基础2

Linux的基础操作2

绝对和相对路径

绝对路径

以/ 开头
对与每台计算机唯一

相对路径

以./ …/ ~/开头,相对于路径

什么时候用绝对路径?

各用户、各目录需要访问唯一路径
如:环境变量、应用程序

什么时候用相对路径?

每一目录不同
迁移到其他计算机

find命令

功能:

在文件系统中查找匹配的文件

格式:

find [<起始目录> …] [<选项表达式>] [<条件匹配表达式>] [<动作表达式>]

说明:

<起始目录>:对每个指定的 <起始目录> 递归搜索目录树
省略<起始目录>时表示当前目录
<选项表达式>:控制 find 命令的行为
<条件匹配表达式>:根据匹配条件查找文件
<动作表达式>:指定对查找结果的操作,默认为显示在标准输出(-print)
不带任何参数的 find 命令将在屏幕上递归显示当前目录下的文件列表。

locate

使用索引查找
updatedb

文件目录操作

命令行通用参数

1、-r 递归目录
2、-h 获得帮助
3、-v 显示调试信息,显示详细信息

VIM文本编译器

常用文本编译器

1、vim
2、nano
3、emacs
4、gedit

vi简介

1、vi 是 “Visual interface” 的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
2、vi 不是一个排版程序,它不像 M$ Word 或 WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
3、vi 是全屏幕文本编辑器,它没有菜单,只有命令。
4、vim 即 Vi IMproved,vi 克隆版本之一。

vi 的进入

H91e61.png

vi的三种运行模式

H911te.png

HC1cs1.png

vi的Normal模式

1、在shell中输入 vim 启动编辑器时,即进入该模式。
2、无论什么时候,不管用户处于何种模式,只要按一下 Esc Esc 键,即可使 vim 进入 Normal 模式。
3、在该模式下,用户可以输入各种合法的 vim 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。
4、若输入的字符是合法的 vim 命令,则 vim 在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是 vim 的合法命令,vim 会响铃报警。

vi的Insert模式

1、在 Normal 模式下输入插入命令 i、附加命令 a 、打开命令 o、修改命令 c、取代命令 r 或替换命令 s 等都可以进入 Insert 模式。
2、在该模式下,用户输入的任何字符都被vim当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到Normal模式下,按 Esc 键即可。

vi的Command模式

Normal 模式下,用户按冒号 “:” 即可进入 Command 模式,此时 vim 会在显示窗口的最后一行 (屏幕的最1、后一行) 显示一个 “:” 作为 Command 模式的提示符,等待输入命令。
多数文件管理都是在此模式下执行的 (如保存文件等)
Command 模式中所有的命令都必须按 <回车>后执行,命令执行完后,vim 自动回到 Normal 模式。
若在 Command 模式下输入命令过程中改变了主意,可按 Esc键,或用退格键将输入的命令全部删除之后,再按一下退格键,即可使 vi 回到 Normal 模式下。

Noemal模式下的基本操作

1、hjkl ←↓↑→
2、G 用于直接跳转到文件尾
3、x 删除光标所在的字符
4、r 替换光标所在的字符
5、~ 切换光标所在字母的大小写
6/和?用于查找字符串
7、dd、yy、p分别用于删、复制和粘贴一行文本
8、u 取消上一次编辑操作(undo)

9、重复上一次编辑操作(redo)

10、ZZ 用于存盘退出Vi
11、ZQ用于不存盘退出Vi 、

Command模式下的基本操作

:n1,n2 co n3 用于块复制
:n1,n2 m n3 用于块移动
:n1,n2 d 用于块删除
:w 保存当前编辑文件,但并不退出
:w newfile 存为另外一个名为 “newfile” 的文件
:wq 用于存盘退出Vi
:q! 用于不存盘退出Vi
:q 用于直接退出Vi (未做修改)

Command 模式——设置 Vi 环境

: 数字
😒
:set autoindent 缩进,常用于程序的编写
:set noautoindent 取消缩进
:set number 在编辑文件时显示行号
:set nonumber 不显示行号
:set tabstop=value 设置显示制表符的空格字符个数
:set 显示设置的所有选项
:set all 显示所有可以设置的选项

命令模式

1、D)替换字符串
2、「:n1,n2s/word1/word2/g」:n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间查找 xxk 并取代为 XXK 则: 『:100,200s/xxk/XXK/g』。

3、:1, s / w o r d 1 / w o r d 2 / g 」 : 从 第 一 行 到 最 后 一 行 查 找 w o r d 1 字 符 串 , 并 将 该 字 符 串 替 换 为 w o r d 24 、 「 : 1 , s/word1/word2/g」:从第一行到最后一行查找word1字符串,并将该字符串替换为word2 4、「:1, s/word1/word2/gword1word24:1,s/word1/word2/gc」:从第一行到最后一行查找word1字符串,并将该字符串取代为word2 ,替换操作前会确认询问。
5、g的含义:将一行内的多个找到的字符串进行替换,没有g,则只会替换每行中的第一个找到的字符串

环境变量

LD_LIBRARY_PATH
PATH

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
source 文件

.bashrc
Vi
export

文件查找

命令历史

1、bash可以记录一定数目的以前在Shell中输入的命令。
记录历史命令的文本文件由环境变量 HISTFILE 来指定,默认的记录文件是.bash_history,这是一个隐含文件,位于用户自己的目录中。
可以记录历史命令的数目由环境变量 HISTSIZE 的值指定,默认为1000。
2、查看命令历史

history
history 30  # 查看最近 30 个历史命令
fc –l 30 50 # 列出命令历史中第30到第50之间的命令

3、键盘快捷键
最简单的方法是用上下方向键、和键来查看历史命令
如果需要的话,可以使用键盘上的编辑功能键对显示在命令行上的命令进行编辑
4、感叹号的用法
用 !! 执行最近执行过的命令
用 ! <命令事件号> 执行已经运行过的命令
用 ! <已经使用过的命令前面的部分> 执行已经运行过的以该字符串开头的最近的命令

进一步使用SHELL

标准输入/输出设备

1、Linux命令在执行时常常期望接收输入数据,命令执行后又期望将产生的数据结果输出。
2、Linux的大部分命令都具有标准的输入/输出设备端口。

重定向(Redirection)

1、所谓重定向,就是不使用系统的标准输入端口、标准输出端口或标准错误端口,而进行重新的指定,所以重定向分为输出重定向、输入重定向和错误重定向。通常情况下重定向到一个文件。
2、在Shell中,要实现重定向主要依靠重定向符实现,即Shell是检查命令行中有无重定向符来决定是否需要实施重定向。

3、

$ ls -l /tmp >mydir
$ ls -l /etc >>mydir

$ myprogram 2> err_file
$ myprogram &> output_and_err_file

$ find  ~  -name *.mp3 > ~/cd.play.list
$ echo “Please call me : 68800000”>message

$ cat <<! >mytext
> This text forms the content of the heredocument ,
> which continues until the end of text delimiter
> !

输出重定向与空设备

1、空设备(/dev/null)

  • 空设备是个黑洞,发往它的任何内容都将不复存在经常用于屏蔽命令的输出或错误输出,尤其用于Shell脚本中
  • 经常用于屏蔽命令的输出或错误输出,尤其用于Shell脚本中

2、空设备使用举例
屏蔽命令的输出和错误输出

$ myprogram &> /dev/null
$ myprogram >/dev/null 2>&1

清空文件内容

$ cp /dev/null  myfile
$ > myfile

管道的引入

1、 UNIX 系统的一个基本哲学是:一连串的小命令能够解决大问题。其中每个小命令都能够很好地完成一项单一的工作。现在需要有一些东西能够将这些简单的命令连接起来,这样管道就应运而生。
2、许多Linux命令具有过滤特性,即一条命令通过标准输入端口接受一个文件中的数据,命令执行后产生的结果数据又通过标准输出端口送给后一条命令,作为该命令的输入数据。后一条命令也是通过标准输入端口而接受输入数据。

管道(Pipe)

什么是管道

1、管道(使用符号“|”表示)用来连接命令
命令1 | 命令2
将命令1的STDOUT发送给命令2的STDIN
STDERR不能通过管道转发
2、用来组合多种工具的功能
命令1 | 命令2 | 命令3 |……
ls -C | tr ‘a-z’ 'A-Z‘ | wc
管道线中的每一条命令都作为一个单独的进程运行,每一条命令的输出作为下一条命令的输入。
由于管道线中的命令总是从左到右顺序执行的,因此管道线是单向的。

应用举例
$ ls -lR /etc | less
$ tail +15 myfile | head -3
$ man bash | col -b > bash.txt
# echo "p4ssW0rd" | passwd --stdin user1

$ ls -l | grep "^d"
$ cat /etc/passwd | grep username
$ dmesg | grep eth0
$ rpm –qa | grep httpd

$ echo "test email" | mail -s "test" user@example.com
$ echo "test print" | lpr

统计磁盘占用情况
统计当前目录下磁盘占用最多的10个一级子目录
$ du . --max-depth=1 | sort -rn | head -11
以降序方式显示使用磁盘空间最多的普通用户的前十名
$ du * -cks | sort -rn | head -11
以排序方式查看当前目录(不包含子目录)的磁盘占据情况。
$ du -S | sort -rn | head -11

统计进程
按内存使用从大到小排列输出进程。
# ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
按CPU使用从大到小排列输出进程。
# ps -e -o "%C : %p : %z : %a"|sort -nr

T型管道

1、格式
命令1 | tee 文件名 | 命令2
2、功能
将命令1的STDOUT保存在文件名中,然后管道输入给命令2
3、用于
保存不同阶段的输出
复杂管道的故障排除
同时查看和记录输出

文本文件操作命令

常用的文本文件提取命令

文件显示命令举例

grep简介

1、grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。
2、UNIX 的 grep 家族包括 grep、egrep 和 fgrep:
grep 使用 Basic regular expression (BRE) 书写匹配模式,等效于 grep -G
egrep 使用 Extended regular expression (ERE) 书写匹配模式,等效于 grep -E
fgrep 不使用任何正则表达式书写匹配模式(以固定字符串对待),执行快速搜索,等效于 grep -F

grep命令

1、格式
grep [options] PATTERN [FILE…]
2、说明
PATTERN 是查找条件
可以是普通字符串
可以是正则表达式,通常用单引号将RE括起来。
FILE 是要查找的文件,可以是用空格间隔的多个文件,也可是使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。
grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件。

grep命令选项

grep命令举例

在文件 myfile 中查找包含字符串 mystr的行
$ grep mystr myfile
显示 myfile 中第一个字符为字母的所有行
$ grep  '^[a-zA-Z]'  myfile
在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行)
$ grep -v '^#' myfile
过滤掉/etc/samba/smb.conf的注释行和空行
$ egrep -v ‘^#|^$|^;’ /etc/samba/smb.conf

列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名
# grep -lr root /etc/*
在文件 myfile 中查找包含字符 $(在RE中具有特殊含义) 的行
$ grep \\$  myfile
$ grep '\$'  myfile
$ fgrep '$'  myfile
$ fgrep $  myfile

常用的文本文件分析命令

wc命令

1、功能:统计文本文件的行数、字数、字符数
2、格式:wc [选项] [<文件> …]
3、举例
$ wc file
$ wc -l file # 统计行数
$ wc -w file # 统计字数
$ wc -c file # 统计字符数
$ wc -L file # 统计最长一行的长度

压缩解压文件

HVKNy4.png

tar

tar简介

1、基本功能:打包和解包
2、格式: tar [选项] 文件或者目录
3、常用选项
-c:创建新的打包文件。 打包
-t:列出打包文件的内容,查看已经打包了哪些文件。
-x:从打包文件中释放文件。
-f:指定打包文件名。
-v:详细列出 tar 处理的文件信息。
-z:用 gzip 来压缩/解压缩打包文件。
-j:用 bzip2 来压缩/解压缩打包文件。
-J:用 xz 来压缩/解压缩打包文件。

tar命令举例
$ tar -cvf myball.tar somedirname
$ tar -tf myball.tar
$ tar -xvf myball.tar
$ tar -czvf myball.tar.gz somedirname
$ tar -fczv myball.tar.gz somedirname        XXXXX
tar  -zcvf myball.tar.gz somedirname
 $ tar –f –c –z –v myball.tar.gz somedirname 
$ tar –c –z –v –f myball.tar.gz somedirname
$ tar -ztf myball.tar.gz
$ tar -xzvf myball.tar.gz 
$ tar -jcvf myball.tar.bz2 somedirname
$ tar -jtf myball.tar.bz2
$ tar -jxvf myball.tar.bz2


zip/unzip

与windows下的 winzip兼容
1、压缩文件 file1为 fiel1.zip,原文件保留
$ zip file1.zip file1
2、将子目录 data1/ 下的所有文件压缩到文件 data1.zip
$ zip –r data1.zip data1
3、解压释放压缩文件 data1.zip 中的所有文件
$ unzip data1.zip
4、解压data1.zip 中的所有文件到abc目录下
$ unzip –d abc data1.zip

xz命令

1、xz 压缩
2、xz -d解压
3、xz –k保留原文件

正则表达式

简介

1、正则表达式是使用某种模式(pattern)去匹配(matching)一类字符串的一个公式。
2、通常使用正则表达式进行查找、替换等操作。
3、在适当的情况下使用正则表达式可以极大地提高工作效率。
4、有两种风格的正则表达式:
POSIX 风格的正则表达式
Perl 风格的正则表达式(Perl-compatible regular expression)

支持RE的文本处理工具

1、基本的正则表达式 Basic regular expression (BRE)
grep 按模式匹配文本
ed 一个原始的行编辑器
sed 一个流编辑器
vim 一个屏幕编辑器
emacs 一个屏幕编辑器
2、扩展的正则表达式 Extended regular expression (ERE)
egrep 按模式匹配文本
awk 进行简单的文本处理

正则表达式的组成

正则表达式由一些普通字符和一些元字符(metacharacters)组成。
普通字符包括大小写的字母、数字(即所有非元字符)
元字符则具有特殊的含义

正则表达式的元字符

HVKItP.png

HVKX0s.png

HVKj7n.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值