左脑如何进入右脑
1.及时复习、复述
2.分类记忆(命令思维导图方法)
3.框架思维
人品
态度
能力
符号链接(symbolic link)文件,也称软链接(soft link)
以l开头是软链接,软链接是一种快捷方式:
创建软链接:ln -s oldboy.txt oldboy_soft_link
cat oldboy_soft_link
~]# ln -s 1.txt 1.12.txt_soft_link
备注:1.txt ( 文件名)
1.12 软链接名称(自由设置)
~]# cat 1.12.txt_soft_link
woshi keyan
删除:rm
4.字符(character)/块(block)设备文件
以C开头的就是字符设备(猫等串口设备)
以b开头的就是块设备(硬盘、光驱是块设备的代表)
5.套接口(socket)文件
以s开头:sock文件也是一类特殊的文件,这类文件通常用在网络之间进行数据连接,如我们可以启动程序来监听客户端的请求,客户端可以通过套接字来进行数据通信。
which 命令
~]#which cp
alias cp='cp -i'
/usr/bin/cp
备注:如果有别名会显示别名
重点:
PATH变量
$PATH 命令行执行命令会从PATH对应的路径中查找命令
~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PATH 对应的路径中没有这个命令就会报command not found
whereis:显示命令、源码、说明文档等的路径
只查找二进制命令
~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
-b 查找可执行文件
~]#whereis -b cd
cd: /usr/bin/cd
locate:快速定位文件路径
查找文件路径,是从数据库A(/var/lib/mlocate/mlocate.db)里查询
更新A数据库用updatedb
c7默认没安装,可不学
备注:找指定Yum安装命令(查看命令对应的软件包)
6.find: 查找目录下的文件*****
查找原理:磁盘遍历(从硬盘里一个个查找),速度慢。
~]# find ~ -name "keyan"
路径 名字参数 具体文件
/root/keyan
模糊查找 用*表示所有
~]# find / -name "ifcfg*"
按文件类型查找-type
~]# find / -type f -name "ifcfg*"
查找目录 -d
~]# 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 或者
~]#find ~ -type f -o -name "1.txt"
! 取反
~]# 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 1 2 3 4 5 6 7 8 9 10 [root@oldboyedu /data]# xargs -n 4 1 2 3 4 5 6 7 8 9 10 [root@oldboyedu /data]# xargs -n 5 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 10.0.0.201 netmask \255.255.255.0 broadcast 10.0.0.255 [root@oldboyedu /data]# [root@oldboyedu /data]# ifconfig|grep 10|grep 201 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 ~ ~]#mkdir /data mkdir: cannot create directory ‘/data’: File exists ~]# cd /data /data]#touch {1..5}.txt /data]#ls 1.txt 2.txt 3.txt 4.txt 5.txt /data]#cd .. /]# tar zcvf /opt/data.tar.gz ./data ./data/ ./data/1.txt ./data/2.txt ./data/3.txt ./data/4.txt ./data/5.txt /]# tar -tf /opt/data.tar.gz ./data/ ./data/1.txt ./data/2.txt ./data/3.txt ./data/4.txt ./data/5.txt 解压过程: 指定位置: ![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 . 表示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数量。 inet
ether 00:0c:29:2a:ca:54 txqueuelen 1000 (Ethernet)
inet6 ::1 prefixlen 128 scopeid 0x10
inet
/]#
没有权限 0
~]$