Linux云计算

在这里插入图片描述
计算机由硬件+软件组成,操作系统是最核心的软件,负责协调和管理上面运行的各种应用软件。

Linux常用命令
在这里插入图片描述

问题:当用户执行一个命令时,Linux提供是按照什么逻辑和顺序来执行?
1.系统先判断是否是别名,如果是,则执行
2.如果不是别名,判断是否内部命令,是,执行
3.如果不是内部命令,查询hash对应缓存区是否有命令对应路径,有,执行,如果找不到,提示没有此目录或文件
4.按照path系统环境变量指定路径搜索并执行,没有则提示没有此命令

命令别名
alias 别名=“命令”
示例:
在这里插入图片描述
将删除改为移动到某个目录

alias rm='DIR=/data/backup`date +%F%T`;mkdir $DIR;mv -t $DIR'

取消别名:
unalias 别名

\屏蔽别名功能,使用原始命令。root上的cp是别名相当于cp -i,普通用户使用的是无别名cp
例如:\cp -av /etc/ .

查看磁盘分区
lsblk 
不重启识别新增硬盘
echo "- - -" >  /sys/class/scsi_host/host0/scan
 
对当前用户生效
~/.bashrc
对所有用户生效
/etc/bashrc
配置生效:
source /path/to/config_file

screen软件作用
1.关闭不至于断开会话
2.共享会话

单引号:变量、命令不识别,都当成字符串
双引号: 可以识别变量,不能识别命令
反向单引号:命令和变量都能识别

反向单引号  `ls -al` 等价于 $(ls -al)

如何创建20个文件,其中10个txt,10个log后缀。
touch {1..10}.{txt,log}


删除记录历史命令的文件
rm -f .bash_history

清空历史命令
history -c

 清屏
 ctrl+l


Linux下的文件类型
- 普通文件
- d 目录文件
- b 块文件
- c 字符文件
- l  符号链接link
- p 管道文件Pide
- s 套接字文件socket

转换编码:
将windows10上文本默认编码转换成utf-8
iconv -f gb2312 win.txt -o win2.txt

转换文本格式:
#将windows的文本格式转换成linux的文本格式
dos2unix windows.txt
 
#将Linux转换成windows的文本格式:
unix2dox windows.txt 
cat list.txt

常见通配符

*	匹配零个或多个字符,不匹配隐藏文件(.开头)
?	匹配任何单个字符
~	当前用户家目录
~mage	用户mage家目录
~+和.	当前工作目录
[0-9]	匹配数字范围
[a-z]	字母
[A-Z]	字母
[abcd]	匹配列表任何一个字符
[^abcd]	匹配列表中所有字符外的字符


示例1:显示/etc下所有rc开头并且后面是0-6之间的数字,其他为任意字符的文件或目录列表

ls -d /etc/rc[0-6]*

示例2: 只显示/etc下的非隐藏目录列表

ls -d /etc/*/

Inode表结构和文件管理底层原理(重点)

创建700M的大文件

dd if=/dev/zero of=/boot/bigfile bs=1M count = 700



查看文件inodes数量

df -ih



删除大文件

cat /dev/null > /var/log/huge.log



正在使用文件被删除是不释放的



查看未完全删除文件(存在内存中,未释放空间)

lsof |grep delete 



疑问:文件被删除之后,未释放inodes ,仍然显示空间不足,如何处理?

生产案例,提示空间满no space left on device 但df可以看到空间很多,为什么?

提示空间快慢,使用rm 删除了很大的无用文件后,df 仍看到空间不足,为什么



文件的存储机制和存储结构

一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,在将数据删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中。在将数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以在出现删除日志文件后,空间还没释放,就是因为httpd进程还在一直向这个文件写入内容,导致虽然删除了日志文件,但是由于进程锁定,文件对应的指针部分并未从meta-data中清除,而由于指针并未删除,系统内核就认为文件并未删除,因此通过df命令查询空间并未释放也就不足为奇了。



ps aux 查看进程,看不到进程文件路径如何处理?

找到进程编号,在/proc/下找到对应exe文件,软链接则指向具体文件目录

echo $$ //显示当前bash shell的进程编号



错误信息重定向到文件

xxx  2> /data/1.log

将多个命令一起执行并输出到特定文件

(ls;date)>a.txt



Linux 给程序提供三种 I/O 设备

文件描述符 0 1 2

标准输入 STDIN       0

标准输出 STOUT      1

错误输出 STDERR    2

标准错误表示:2>&1



ls /data /xxx > a.log 2>&1 (同时输出正确和错误结果,2>&1把错误的变成正确的)

ls /data /xxx   2>  a.log 1>&2  (同时输出正确和错误结果, 1>&2  把正确的变成错误的)

ls /data /xxx &> a.log (同时输出正确和错误结果)

ls /data /xxx  2>&1 > a.log (标准错误在屏幕显示,标准输出重定向到文件里)



&> 标准输入和标准输出都重定向到同一个文件

ll  /data/err    &> a.txt



将文件放到垃圾箱

ll /data/err &>> a.txt



实践:Linux安装mail实现告警功能





使用rev 将字符串倒装

echo "123"|rev



利用tee命令重定向到多个目标

echo "hello" |tee -a  test.log | tr 'a-z' 'A-Z'





标准输出	>  file  	
标准错误	2> file	
标准输出和错误输出	&> file	
标准输入	<	
多行重定向	<	举例:#!/bin/bash
fdisk /dev/mmcblk0  < d
3
n
p
3


w
eof
管道传标准输出不传标准错误	 ls /data /err | tr 'a-z' 'A-Z'	
标准错误和标准输出都传	 ls /data /err 2>&1 | tr 'a-z' 'A-Z'	
查看输入的多行字符串并重定向到文件	cat <	 cat < > 123
> 456
> EOF

123
456


权限	文件	目录
r	可以读取文件的内容	表示可以列出存储在该目录下的文件即读目录内容列表。
w	表示允许指定用户打开并修改文件的内容	表示允许从该目录中添加或删除新的文件,通常只有目录主才有写权限。
x
允许用户将该文件作为一个程序执行。	表示允许用户在目录中进行查找,并且用cd命令可以进入该目录。
umask: 根据文件类型的基准权限与umask值的按位取反后的数值进行与运算,可以得到的对应文件默认权限值。

                 普通文件基准权限666 ,目录基准权限777

                  假设umask为123 ,则目录权限 777-123 =654

                  普通文件,666-123=543 ,5和3是奇数要加1,则最终为644



三剑客-grep

grep root /etc/passwd

grep -nA2 /etc/passwd  //匹配前2行

grep -nB2 /etc/passwd  //匹配后2行

grep -nC2 /etc/passwd   //匹配前后2行



echo rooter |grep -w root

-w参数 必须匹配完整单词

正则表达式

.   匹配任意单个字符

*   匹配前面的字符任意次

.*   任意长度的任意字符

\? 匹配其前面的字符0次到1次,即可有可无

\+   匹配前面的字符至少1次

^   行首

$   行尾



去除#号开头和空格开头的行:

grep -v '^#' /etc/httpd/httpd.conf |grep -v '^$'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值