尚硅谷--Linux篇
学习链接:https://www.bilibili.com/video/BV1dW411M7xL?p=58&vd_source=510ec700814c4e5dc4c4fda8f06c10e8
目录
🔥1. 基础篇
1.1.基本概念
1.1.1 名词解释
Linux 中,万物皆文件
1.1.2 目录结构
/bin(/usr/bin, /usr/local/bin): 系统基本命令,拷贝,删除;
/sbin: 系统管理员使用的系统命令;
/home: 创建用户的目录;
/lib: 共享动态链接库;
/etc: 系统配置文件,比如mysql的my.conf文件;
/usr: 用户应用程序的目录,类似于program file文件;
/opt: 主机安装额外软件的目录;
/usr/local: 安装软件所安装的目录;
/var: 日志文件之类
1.1.3 vi/vim
-- 复制
yy
-- 删除
dd
--撤销
u
--最首行,尾部
gg G
1.1.4 关机&重启命令
-- 立即关机
shutdown -h now
-- 一分钟后关机
shutdown -h 1
--现在重启
shutdown -r now
--关机
halt
reboot
1.1.5 用户管理
--创建用户
useradd hyq
useradd -d /home/hyq hyq
--指定密码
passwd hyq
--删除用户
userdel hyq
--查看用户信息
id root
--切换用户
su - hyq
exit; --回到root用户
--组管理
groupadd group
groupdel group
useradd -g group hyq
1.2 基本指令
1.2.1文件指令
ls -a //显示隐藏所有文件目录
ls -l //以列表显示
ls -lh //h显示所占容量
touch //创建空文件
rm -rf //递归强制且强制删除整个文件夹
--查询并分页显示,按空格下一页
cat test.java | more
--分页显示文件
less XXX
--输出重定向,会覆盖内容
>
--追加,在原始内容追加
>>
--输出内容
echo
head tail
--创建软连接
ln -s 源文件或目录 软连接名
--显示日期
date "+%Y-%m-%d %H:%M:%S"
--查看日历
cal
--查找文件
find . -name test.java
find / -size -20M //-是小于20m,+是大于,不写就是等于
grep "F" -n -i //-N显示行号 -i忽略大小写
--打包和解压
gzip
gunzip
zip
unzip
tar -zcvf a.tar.gz a.txt text.java /a.txt, text.java/打包成a.tar.gz
tar -zcvf a.tar.gz a/ 对目录打包
-- 查看所有文件所有者
ls -alh
--改变用户所在组
usermod -g root hyq
1.2.2 权限管理
1.2.2.1 基本概念
文件类型:
-:普通类型 d:目录 l:软连接 c:字符设备 b:块文件,硬盘
-- drwx 表示所有者权限r可读,w可写,x可执行。r=4,w=2,x=1
-- r-x 表示文件所在组用户的权限rx
-- r-x 表示文件其他组用户的权限rx
-- 3:如果是文件,表示硬链接数,是目录,表示该目录下子目录数
--root root,前一个root表示文件所有者,后一个root标识文件所在组
drwxr-xr-x 3 root root 4096k Feb 22 15:22 ceshi
-- +增加权限 -减少权限 =赋予权限
-- u所在者 g所在组 o其他人 a所有人
chmod u=rwx, g=rx, o=x XXX
chmod o+w XXX
chmod 743 XXX
--文件所有者改为新所有者。组不发生变化
chown hyq a.txt
chown -R hyq ceshi/ //-R就是这边文件夹下所有文件所有者都修改
--修改文件所在组
chgrp root hyq.txt
chgrp -R root mydockerfile
文件 --用户--组:可以看到其实都是可以互相变更的,
1.2.2.2 权限实战
--创建组,用户,并设置密码
[root@VM-8-11-centos ~]# groupadd police
[root@VM-8-11-centos ~]# groupadd bandit
[root@VM-8-11-centos ~]# useradd -g police jack
[root@VM-8-11-centos ~]# useradd -g police jerry
[root@VM-8-11-centos ~]# useradd -g bandit xh
[root@VM-8-11-centos ~]# useradd -g bandit xq
[root@VM-8-11-centos ~]# passwd jack
Changing password for user jack.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@VM-8-11-centos ~]# passwd jerry
Changing password for user jerry.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@VM-8-11-centos ~]# passwd xh
Changing password for user xh.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@VM-8-11-centos ~]# passwd xq
Changing password for user xq.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@VM-8-11-centos ~]#
-- 新用户创建文件并设置权限
[jack@VM-8-11-centos ~]$ vim jack.txt
[jack@VM-8-11-centos ~]$ chmod 640 jack.txt
--设置目录权限:x包含了进入目录权限
[jack@VM-8-11-centos home]$ chmod g=rx jack/
--改变用户组
[root@VM-8-11-centos home]# usermod -g police xh
1.2.3 任务调度
1.2.3.1 基本调度
crontab -e --写入任务
crontab -l --列出任务调用列表
crontab -r --终止任务调度
service crond restart --重启任务调度
1.2.4磁盘分区
1.2.4.1 分区目前流行方式
1、mbr分区
2、gtp分区(流行)
1.2.4.2 Linux分区
Linux都源于一个根目录,分区与目录挂载是分开的
--查看分区与挂载目录
lsblk
--查询系统整体磁盘使用情况
df -h
--查询目录或其子目录下占用情况,不指定就查所有子目录
du -ach --max-depth=1
--统计当前目录下文件个数
[root@VM-8-11-centos ~]# ls -l | grep "^-" | wc -l
--统计目录个数
[root@VM-8-11-centos ~]# ls -l | grep "^d" | wc -l
--统计当前目录及子目录下文件个数
[root@VM-8-11-centos ~]# ls -lR | grep "^-" | wc -l
--当前目录与子目录个数
[root@VM-8-11-centos ~]# ls -lR | grep "^d" | wc -l
1.2.5 网络配置
--固定内部IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
1.2.6 进程管理
1.2.6.1 基本概念
每个进程对应一个父进程,该父进程名下可以有多个子进程
1.2.6.2 基本命令
--用户名 进程id 占用cpu,内存 虚拟内存,物理内存,终端 进程状态(s终止,r运行) 开始时间 占用cpu时间 命令
[root@VM-8-11-centos ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 249668 5876 ? Ss Mar09 11:00 /usr/lib
ps -ef可以查询ppid,该ppid就是父进程
--踢掉某个用户
[root@VM-8-11-centos ~]# ps -aux | grep jack
jack 1556705 0.0 0.3 156976 5608 ? S 09:44 0:00 sshd: jack@pts/1
[root@VM-8-11-centos ~]# kill 进程PID
--强制关闭某个进程
kill -9 进程PID
--展示进程树
pstree -pu //p显示进程id,u显示所属用户
1.2.6.3 服务管理
服务本身就是进程,叫守护进程,用于监听端口
--centos7.0之后用systemctl,之前用service
--windows用于监听某个端口,并且可以使用
telnet 161.189.222.204 22
--查看系统服务
ls -l /etc/init.d/
1.2.6.4 运行级别
Linux有7个运行级别
chkconfig设置运行级别
1.2.6.5 监控服务
--top:和ps类似,不过可以实时查看更新的进程状态
--当前时间,运行多少天,当前用户数 负载均衡
--任务数
--内存容量
--按u,在输入root可以查看不同用户占用内存情况
--按k,杀死进程
--q退出
--默认3秒刷新,可以设置10秒
top -d 10
--可查看本机端口被外部哪个地址链接了
netstat -anp
-- tcp 0 0 10.0.8.11:22 120.204.231.66:49898 ESTABLISHED 1554247/sshd: root
1.2.6.6 包管理
rpm -qa
--yum 也是基于rpm上下载管理包的工具
🔥2.大数据篇(略)
(暂时用不到,先跳过)
2.1. Shell编程
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。