左脑如何进入右脑
1.及时复习、复述
2.分类记忆(命令思维导图方法)
3.框架思维
人品
态度
能力
符号链接(symbolic link)文件,也称软链接(soft link)
以l开头是软链接,软链接是一种快捷方式:
创建软链接:ln -s oldboy.txt oldboy_soft_link
cat oldboy_soft_link
实例:[root@localhost.localdomain
~]# ln -s 1.txt 1.12.txt_soft_link
备注:1.txt ( 文件名)
1.12 软链接名称(自由设置)
[root@localhost.localdomain
~]# cat 1.12.txt_soft_link
woshi keyan
删除:rm
4.字符(character)/块(block)设备文件
以C开头的就是字符设备(猫等串口设备)
以b开头的就是块设备(硬盘、光驱是块设备的代表)
5.套接口(socket)文件
以s开头:sock文件也是一类特殊的文件,这类文件通常用在网络之间进行数据连接,如我们可以启动程序来监听客户端的请求,客户端可以通过套接字来进行数据通信。
which 命令
实例:[root@localhost.localdomain
~]#which cp
alias cp='cp -i'
/usr/bin/cp
备注:如果有别名会显示别名
重点:
PATH变量
$PATH 命令行执行命令会从PATH对应的路径中查找命令
例如:[root@localhost.localdomain
~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PATH 对应的路径中没有这个命令就会报command not found
whereis:显示命令、源码、说明文档等的路径
只查找二进制命令
例如:[root@localhost.localdomain
~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
-b 查找可执行文件
例如:[root@localhost.localdomain
~]#whereis -b cd
cd: /usr/bin/cd
locate:快速定位文件路径
查找文件路径,是从数据库A(/var/lib/mlocate/mlocate.db)里查询
更新A数据库用updatedb
c7默认没安装,可不学
备注:找指定Yum安装命令(查看命令对应的软件包)
6.find: 查找目录下的文件*****
查找原理:磁盘遍历(从硬盘里一个个查找),速度慢。
[root@localhost.localdomain
~]# find ~ -name "keyan"
路径 名字参数 具体文件
/root/keyan
模糊查找 用*表示所有
[root@localhost.localdomain
~]# find / -name "ifcfg*"
按文件类型查找-type
[root@localhost.localdomain
~]# find / -type f -name "ifcfg*"
查找目录 -d
[root@localhost.localdomain
~]# find / -type d -name "ifcfg*"
-type c
File is of type c:
b block (buffered) special
c character (unbuffered) special
d directory
p named pipe (FIFO)
f regular file
l symbolic link; this is never true if the -L option or the -follow option is in effect,
unless the symbolic link is broken. If you want to search for symbolic links when -L is
in effect, use -xtype.
如果取并集即或者用-o分割查找的项(-o 表示或的关系,表示前后两个条件满足其中一个即可)
-a and 并且
例如: find ~ -type f -a -name "1.txt"
-o or 或者
例如:[root@localhost.localdomain
~]#find ~ -type f -o -name "1.txt"
! 取反
[root@localhost.localdomain
~]# find ~ -type f ! -name "keyan6.txt"
取反:
[root@oldboyedu /data]# touch oldboy{1..10}.txt
[root@oldboyedu /data]# ls
oldboy10.txt oldboy2.txt oldboy4.txt oldboy6.txt oldboy8.txt
oldboy1.txt oldboy3.txt oldboy5.txt oldboy7.txt oldboy9.txt
[root@oldboyedu /data]# find /data -type f
/data/oldboy1.txt
/data/oldboy2.txt
/data/oldboy3.txt
/data/oldboy4.txt
/data/oldboy5.txt
/data/oldboy6.txt
/data/oldboy7.txt
/data/oldboy8.txt
/data/oldboy9.txt
/data/oldboy10.txt
[root@oldboyedu /data]# find /data ! -type f
/data
[root@oldboyedu /data]# mkdir {a..d}
[root@oldboyedu /data]# find /data ! -type f
/data
/data/a
/data/b
/data/c
/data/d
-exec 对查找的结果再处理
[root@oldboyedu /data]# find /data -type f -exec ls -l {} ;
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy1.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy2.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy3.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy4.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy5.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy6.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy7.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy8.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy9.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy10.txt
xargs 分组
[root@oldboyedu /data]# echo {1..10} >test.txt
[root@oldboyedu /data]# cat test.txt
1 2 3 4 5 6 7 8 9 10
[root@oldboyedu /data]# xargs -n 3 <test.txt
1 2 3
4 5 6
7 8 9
10
[root@oldboyedu /data]# xargs -n 4 <test.txt
1 2 3 4
5 6 7 8
9 10
[root@oldboyedu /data]# xargs -n 5 <test.txt
1 2 3 4 5
6 7 8 9 10
-d 指定分隔符,不指定默认空格
备注:少用管道,效率低,
[root@oldboyedu /data]# cat test.txt
a.b.c.d
[root@oldboyedu /data]# echo "Oldboy" >test.txt
[root@oldboyedu /data]# echo "Oldgirl" >>test.txt
[root@oldboyedu /data]# echo "Oldboedu" >>test.txt
[root@oldboyedu /data]# echo "Oldboyedu" >>test.txt
[root@oldboyedu /data]# cat test.txt
Oldboy
Oldgirl
Oldboedu
Oldboyedu
[root@oldboyedu /data]# cat test.txt|grep "boy"
Oldboy
Oldboyedu
[root@oldboyedu /data]# grep "boy" test.txt
Oldboy
Oldboyedu
[root@oldboyedu /data]# ifconfig|grep 10
inet
10.0.0.201 netmask \255.255.255.0 broadcast
10.0.0.255
ether 00:0c:29:2a:ca:54 txqueuelen 1000 (Ethernet)
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
[root@oldboyedu /data]#
[root@oldboyedu /data]# ifconfig|grep 10|grep 201
inet
10.0.0.201 netmask
255.255.255.0 broadcast
10.0.0.255
管道使用
[root@oldboyedu /data]# find /data -type f -name "oldboy*" -mtime -7 -exec ls -l {} ;
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy1.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy2.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy3.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy4.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy5.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy6.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy7.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy8.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy9.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy10.txt
[root@oldboyedu /data]# find /data -type f -name "oldboy*" -mtime -7|xargs ls -l
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy10.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy1.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy2.txt
-rw-r--r--. 1 root root 0 Mar 14 10:39 /data/oldboy3.txt
删除:
接啥执行啥
[root@oldboyedu /data]# find /data -type f|xargs rm -f
[root@oldboyedu /data]# ll
total 0
drwxr-xr-x. 2 root root 6 Mar 14 10:40 a
drwxr-xr-x. 2 root root 6 Mar 14 10:40 b
drwxr-xr-x. 2 root root 6 Mar 14 10:40 c
drwxr-xr-x. 2 root root 6 Mar 14 10:40 d
[root@oldboyedu /data]# touch oldboy{1..5}.txt
[root@oldboyedu /data]# ls
a b c d oldboy1.txt oldboy2.txt oldboy3.txt oldboy4.txt oldboy5.txt
[root@oldboyedu /data]# find /data -type f -exec rm -f {} ;
[root@oldboyedu /data]# ls
a b c d
删除:
find /data -type f -exec rm -f {} ;
相当于
rm -f oldboy1.txt
rm -f oldboy2.txt
rm -f oldboy3.txt
效率低。
find /data -type f|xargs rm -f
只是一条命令
rm -f oldboy1.txt oldboy2.txt oldboy3.txt
[root@oldboyedu /data]# find /data -type f|xargs -i cp {} /opt
[root@oldboyedu /data]# ls /opt/
oldboy1.txt oldboy2.txt oldboy3.txt oldboy4.txt oldboy5.txt
- 过去
+未来
[root@oldboyedu /data]# date +"%Y-%m-%d %H:%M:%S"
2020-10-01 00:09:36
[root@oldboyedu /data]# date +"%F %T"
2020-10-01 00:09:39
打包 压缩
打包 框 放文件 压缩体积降低
文件压缩,大小会降低
tar *****
打包:
语法:
tar 参数 框 (压缩包)苹果(被打包的文件)
打包集合参数zcvf:
压缩包名字:data.tar.gz tar表示打包,gz表示gzip格式压缩
打包过程实例:
cd ~
[root@localhost.localdomain
~]#mkdir /data
mkdir: cannot create directory ‘/data’: File exists
[root@localhost.localdomain
~]# cd /data
[root@localhost.localdomain
/data]#touch {1..5}.txt
[root@localhost.localdomain
/data]#ls
1.txt 2.txt 3.txt 4.txt 5.txt
[root@localhost.localdomain
/data]#cd ..
[root@localhost.localdomain
/]# tar zcvf /opt/data.tar.gz ./data
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
[root@localhost.localdomain
/]# tar -tf /opt/data.tar.gz
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
[root@localhost.localdomain
/]#
解压过程:
指定位置:
![image](//upload-images.jianshu.io/upload_images/16833016-a21d3e6629ea0dbf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700/format/webp
day12
1.相信可能你就无限可能,相信不可能,就自废武功。
为什么会缺乏自信?
对自己的能力不认可
学历不高,自动不自信
学历不高,既成事实
现在不自信,一辈子背着不自信的枷锁。
不管别人怎么看我们,我们要有一些自信。
自信是人成功的必备前提。——老男孩
自信一点,能力不够,就获得机会了。
祸从口出,病从口入。
永远不要在背后说别人坏话(当面直说),如果非要说说好话。
人品、态度、能力、价值
人品是根本
态度是原则
能力是基础
价值是砝码:给老板赚钱
作为运维人员怎么为老板赚钱?
1、买设备、买带宽、云服务 花钱
省了5玩,创造了50玩流水
传统企业3-10%,10%
要有正确的价值观,作为人何为正确?
2.CDN网站加速,网站图片被盗链。
几个小时27T流量,500M的带宽,1G-2G
损失10几万一个月。创造了100多万流水。
勇于承担责任,才是能力变强的最佳捷径。
要想比人人强,永远要比别人多做一点点,早做一点点。
半步领先
排除:
排除:
用户:管理linux系统而存在的。
用户一般分为用户名和用户ID(INDENTIFY)
相当于我们的名字和身份证,名字和学号。
linux 用户名是为了方便管理员使用,用户ID是唯一区别一个用户(计算机只识别ID_(
user UID
linu里所有的用户和进程都要有用户对应。
文件存在必须对应用户
进程运行必须应用用户
linux用户分为三类:
1.超级管理员 root
权限堪称皇帝。UID为0,换句话,UID为0的都有皇帝对应的权限
查用户的id id root
不要修改ID为0变管理员。
作业:root密码丢失了如何找回来?
下节课讲
2.虚拟用户 (傀儡)
实际存在的用户,但是又不允许它登录。
价值何在?
它能够满足相应的进程运行属主的要求,但是又不会带来管理风险。
UID 1-499
3.普通用户
实际存在的用户,又允许它登录。管理员身份创建的帮助管理员管理系统的
大臣、臣民一起管理。
权限仅仅限制家目录,在一些系统级目录可读不可写,不可以进入/root 目录
UID c7 1000起步 C6 500起步
/data/oldboy]#useradd oldgirl
tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
oldgirl:x:1000:1000::/home/oldgirl:/bin/bash
用户组:集合、组织
人的家庭、老男孩58期
linux里每个用户都必须要有一个组织。这个组织就叫做用户组
用户组也是给人看,用户组也有唯一表示,Group ID jiancheng GID
默认情况下创建用户,并没有创建用户组,它会自动创建一个和用户名相同的用户组以及相同的GID。
举例:
用户和用户组的对应关系
1.1对1
2.一个用户可以对应多个用户组
3.多个用户可以对应一个用户组
4.多对多
文件权限:严格的权限,linux安全权限严格。
rwxr-xr-x
9个字符
r read 可读取 4
w write 可写 2
x execute 可执行 1
没有权限 0
. 表示selinux
字符分组:三个字符是一组
789列:文件的最后修改时间
文件时间有三种:
修改时间:modify ,文件内容被改过之后的时间。
访问时间:access ,文件内容北方问过的时间
变化时间:change,文件属性发生改变的时间。
ls -l 默认显示的是修改时间
stat 查看三个时间
例如:test@woshi
~]$ stat /etc/hosts
File: ‘/etc/hosts’
Size: 158 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16819633 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:net_conf_t:s0
Access: 2019-03-14 20:15:10.016483346 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2019-03-04 21:30:45.505030856 +0800
Birth: -
拿字符权限:
[test@woshi
~]$ stat -c %A /etc/hosts
-rw-r--r--
修改时间具体例子
例子:
[root@oldboyedu /data]# echo oldboy>>test.txt
[root@oldboyedu /data]# stat test.txt
File: ‘test.txt’
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33656257 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-10-01 11:07:28.953508888 +0800
Modify: 2020-10-01 11:07:53.119507988 +0800
Change: 2020-10-01 11:07:53.119507988 +0800
Birth: -
[root@oldboyedu /data]# cat test.txt
oldboy
oldboy
[root@oldboyedu /data]#cat test.txt
oldboy
oldboy
[root@oldboyedu /data]#stat test.txt
File: ‘test.txt’
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33656257 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-10-01 11:08:32.147506535 +0800
Modify: 2020-10-01 11:07:53.119507988 +0800
Change: 2020-10-01 11:07:53.119507988 +0800
Birth: -
[root@oldboyedu /data]# chmod +x test.txt
[root@oldboyedu /data]#stat test.txt
File: ‘test.txt’
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33656257 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-10-01 11:08:32.147506535 +0800
Modify: 2020-10-01 11:07:53.119507988 +0800
Change: 2020-10-01 11:08:57.442505593 +0800
Birth: -
显示修改时间的例子:
[test@woshi
~]$ ls --time-style=iso -l
total 12
-rw-rw-r--. 1 test test 7 03-15 11:41 test.txt
-rw-rw-r--. 1 test test 7 03-15 11:41 tets.txt
-rw-rw-r--. 1 test test 7 03-15 11:41 text.txt
[test@woshi
~]$ ls --time-style=long-iso -l
total 12
-rw-rw-r--. 1 test test 7 2019-03-15 11:41 test.txt
-rw-rw-r--. 1 test test 7 2019-03-15 11:41 tets.txt
-rw-rw-r--. 1 test test 7 2019-03-15 11:41 text.txt
[test@woshi
~]$
ls参数:
-t modify,文件内容被改过之后的时间。
-c change,文件属性发生改变的时间。
-a access,文件内容被访问过的时间。
第一列:
表现形式是数字 33631841 叫做文件的索引节点(Index Node)
类似人的身份证,索引节点是文件在系统中的唯一表示。
找一个文件最终都要通过索引节点才能找到。
索引节点的概念是处在ext文件系统中(ext 2 ext4 ext3)
索引节点是硬盘上的一块存储空间。大小256字节或512字节(这取决于系统)
索引节点里存放是数据是文件的属性(大小,访问时间,权限,用户和组)等。
在索引节点里,唯独不包含文件名。(文件名在上级目录的block里)
磁盘要想使用,先分区,格式化(创建文件系统)。
格式化创建文件系统时:就会生成大量inode和block (只要分区就会存在)
inode作用用于存储文件的属性信息,同时存放指向文件的指针(类似于软链接)。
block 作用是存放文件内容的(大片)。
读文件的过程:先看是否有权限,然后再读内容
文件系统的原理:
Block叫做磁盘块,是用来存放实际数据的实体单元(ext文件系统一般最大为4KB),即用来真正存放数据,例如:照片、视频等普通文件数据,单个大的文件需要占用多个Block块来存储,特别小的单个文件如果不能占满整个Block块,剩余的空间也无法在利用。
一个Block 最多只能存一个文件的内容,一个block 4k ,放了一个0.1k文件,剩下3.9k浪费
df -i 查看分区对应的inode
磁盘满原因有两种:
1.inode满了。
2.block 满了。
提示:
报错:no space left on device 没有空间在设备上了
磁盘满了。
检查步骤:
步骤1:df -h
步骤2:df -i 看是不是inode满了
为什么inode回满?
小文件太多
初始化时候 block数量远大于inode数量。