linux内容回顾:
linux是一个服务端操作系统
首先得有一个物理服务器,安装linux系统
云服务器(阿里云…)
服务器的ip地址 ,用户账号,和密码
ip : 123.206.16.61
账号: root 超级用户
密码: xxxx
远程登录:
1.通过一个客户端软件,封装了 ssh远程登录命令
ssh root@123.206.16.61
学习阶段:
安装vmware 虚拟化软件
1.macos
2.windows7
3.windows10
4.ubuntu
5.centos
学校:linux基础中的基础
培训机构:
nginx反向代理功能,负载均衡,虚拟主机
docker容器技术
客户端软件
xshell 工具
linux用户管理:
qq群:
群主 root
管理员 sudo
普通成员 linux的普通用户
超级用户root:
root为什么叫做root?
linux引入了一个UID的概念
linux的id命令,返回用户的身份信息
当uid为0的时候,这个用户就是超级用户
[root@s16ds ~]# id root
uid=0(root) gid=0(root) groups=0(root)
用户的存放文件:
/etc/passwd
/etc/shadow 存放用户密码的文件
用户的管理命令:
添加普通用户(只有root用户有这个权利)
useradd liuguoliang #创建用户,这个用户信息会存放在/etc/passwd
新建用户后,查看用户信息
普通用户的id号,默认是从1000开始的
[root@s16ds ~]# grep liuguoliang /etc/passwd
liuguoliang:x:1001:1001::/home/liuguoliang:/bin/bash
用户id 用户组id
修改普通用户的密码
passwd 用户名
新建了普通用户,会在/home/liuguoliang
切换用户
su命令
su命令使用必须加上 – 这个横杠,代表完全用户切换
su – liuguoliang
root切换liuguoliang 不需要输入密码
普通用户切换root,需要输入root的密码
su – root
su – 与 su
通过su切换用户还可以直接使用命令su USERNAME,与su – USERNAME的不同之处如下:
su – USERNAME切换用户后,同时切换到新用户的工作环境中
su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录
如下图,显示两个命令的执行结果:
添加用户组:
groupadd 组名
彻底删除用户,以及用户家目录
userdel -rf 用户名
sudo命令,用root身份去执行命令
1.编辑sudoers配置文件,添加liuguoliang用户的信息
vim /etc/sudoers
2.定位到权限设置那一行
/Allow
## Allow root to run any commands anywhere
root ALL=(ALL) ALL # 非insert模式下yyp复制一行
liuguoliang ALL=(ALL) ALL
3.使用sudo命令,去执行linux命令,解决权限不足
sudo mkdir /root/123
4.sudo还提供了一个语法检测的命令visudo
visudo 默认用vi打开/etc/sudoers,并且提供了语法检测功能
5.文件权限:
读取文本,查看文本,执行文本(脚本文件 xx.py xx.rb xx.sh )
vim cat 通过解释器执行 ./xx.sh source xx.sh . xx.sh
文件夹的权限:
新增,修改,删除,进入目录
# 查看文件权限
ls -l
ll
linux文件权限:
[root@s16ds tmp]# ls -l
total 0
– rw-r–r–. 1 root root 0 Feb 14 09:39 s16.txt
第一个横杠:
– 代表一般文件,普通文件
d 代表目录文件夹
l 代表软连接(快捷方式)
第二部分:
权限是有顺序的,读,写,执行,依次是 rwx
rwx rwx rwx (所有用户,都是可读可写可执行)
rw- r– r–
user group others
root root 既不是属主,又不是属组,比如刘国梁这个普通用户
r read 可读
w write 可写
x 可执行
– 没有权限
第三部分:
修改文件的权限命令
chmod u+权限
chmod g+权限
chmod o+权限
chmod u-权限
chmod g-权限
chmod o-权限
更好的用数字转化: r4 w2 x1
chmod 777 文件名
赋予user group 其他人 所有的权限
查看用户信息(有对应组的gid)
cat /etc/passwd
查看用户组(里面有gid)
cat /etc/group
创建工作组
groupadd 组名
修改用户工作组
usermod -g 组名 用户名
给已有的用户增加工作组
usermod -G groupname username (这个会把用户从其他组中去掉, 在/etc/group中可以看到)
或者:gpasswd -a user group
第四部分:修改文件,文件夹属组,属主
chown 用户名 文件
修改属组
chgrp 组名 文件
linux软连接创建
注意用绝对路径,语法如下
ln -s 目标文件绝对路径 要创建的软连接名字绝对路径
ln -s /小护士.txt /tmp/hs.txt
修改linux的PS1变量,命令提示符变量
# 查看PS1
echo $PS1
# 默认的是
PS1=[\u@\h \W]\$
# 修改PS1
PS1=”[\u@\h \w \t]\$”
tar gzip xz …
linux的压缩,打包命令,tar命令
tar命令,参数
-x 解压
-v 显示压缩解压过程
-f 指定压缩文件
-z 指定调用gzip命令
-c 压缩
-r 添加文件到已有的压缩文件中
压缩当前目录的所有内容:
tar -cf alltmp.tgz ./*
解压缩压缩文件
tar -xf alltmp.tgz
添加文件到已存在的压缩文件中
tar -rf alltmp.tgz 新加的文件名
压缩django源码文件夹
tar -cf mydjango.tgz mysite
查看linux命令的帮助信息
tar –help
linux的man帮助手册,查看linux命令的文档
man tar
http://linux.51yip.com/search/tar linux中文手册
一个进程,一个程序运行,产生进程信息,以及暴露端口信息
python3 manage.py runserver 0.0.0.0:9999
进程查看:
ps -ef |grep python
网络端口管理命令
netstat -tunlp | grep 8000 #查看django端口是否存活
#查看linux进程状态
ps -ef 查看系统所有的进程
ps -ef|grep vim
ps -ef|grep mysql
ps -ef|grep redis
ps -ef|grep python
kill命令 杀死进程
语法:
kill pid
pid通过ps -ef 查看
一次性杀死多个匹配成功的进程,可以使用两个命令,一个是pkill,一个是killall,
如果命令不存在,需要额外的安装,通过yum install
1.安装killall命令
yum install psmisc -y
2.一次性杀死多个python3进程
killall python3 慎用!!!脑子想清楚了再用,一次性杀死多有python3有关的进程
killall python3 慎用!!!脑子想清楚了再用,一次性杀死多有python3有关的进程
killall python3 慎用!!!脑子想清楚了再用,一次性杀死多有python3有关的进程
killall python3 慎用!!!脑子想清楚了再用,一次性杀死多有python3有关的进程
查看磁盘空间命令
df 命令
df -h 以mb gb tb 单位显示磁盘大小
查看操作系统
hostnamectl
设置主机名
[root@yugo /tmp 11:04:42]#hostnamectl set-hostname pyyuc
[root@pyyuc ~ 11:05:12]#hostname
pyyuc
linux的dns服务相关
1.dns服务器指定配置文件,这个文件,告诉linux去哪解析dns域名
有主备两个dns服务器ip地址
[root@s16ds / 11:04:58]$cat /etc/resolv.conf
nameserver 119.29.29.29 #腾讯的dns服务器
nameserver 223.5.5.5 #腾讯的dns服务器
2.Linux解析dns的命令
nslookup pythonav.cn #解析到这个域名对应的ip地址
3.linux强制dns,或者本地dns域名解析
vim /etc/hosts
ip 自定义的域名
4.域名解析的流程,(一个域名从浏览器访问,解析过程是如何)
1.浏览器输入域名,浏览器首先会去当前机器的本地dns缓存中查找记录
2.去hosts文件中查找是否写死了对应的记录
3.去指定的dns服务器中寻找dns记录,如果找到了域名解析记录后
4.将这个dns记录缓存到本机的缓存记录中
5.下一次寻找域名解析,就去缓存中查找了
linux的计划任务,也叫做定时任务,名字是crond
1.查看linux本机的定时任务
crontab -l #查看计划任务
2.编写自己的计划任务
crontab -e #编辑计划任务
3.学习计划任务的语法格式
分 时 日 月 周 命令绝对路径
#每分钟执行一次命令
分 时 日 月 周 命令绝对路径
* * * * * 命令
#每小时的3,15分钟执行命令
分 时 日 月 周 命令绝对路径
3,15 * * * * 命令绝对路径
#在下午8-11点的第3和第15分钟执行
分 时 日 月 周 命令绝对路径
3,15 20-23 * * *
#每晚21:30执行命令
分 时 日 月 周 命令绝对路径
30 21 * * *
#每周六、日的下午1:30执行命令
分 时 日 月 周 命令绝对路径
30 13 * * 6,7
每周一到周五的凌晨1点整,清空/tmp目录的所有文件
分 时 日 月 周 命令绝对路径
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
#每晚的21:30重启nginx
分 时 日 月 周 命令绝对路径
30 21 * 3 * 命令绝对路径
#每月的1,10,22日的4:45重启nginx
分 时 日 月 周 命令绝对路径
45 4 1,10,22 * * /usr/bin/systemctl reload nginx
#每个星期一的上午8点到11点的第3和15分钟执行命令
分 时 日 月 周 命令绝对路径
3,15 8-11 * * 1
linux软件包管理
yum工具如同pip
yum install nginx
yum remove nginx
yum clean all #清空yum缓存
1.yum仓库文件的目录:
/etc/yum.repos.d
只有存放在这个目录下,且文件名是 xx.repo结尾的才会被识别为 yum仓库把
2.查看仓库文件
[root@s16ds yum.repos.d]# ls
all allbak CentOS-Base.repo epel.repo
3.yum工具使用的时候,就去这个制定的yum仓库中寻找rpm软件包
linux系统服务管理命令
系统服务(linux安装的软件名)
只有通过yum安装的软件,才能用这个命令
systemctl 这是centos7系统的命令
service 这是centos6系统的服务管理命令
实例:(只有yum安装的才能使用这个命令)
systemctl status/start/stop nginx 启停管理nginx服务
systemctl status/start/stop redis 启停管理nginx服务
原文链接:https://www.cnblogs.com/surasun/articles/10413229.html