Linux基础知识
Linux是什么
就是个操作系统,是一套开放源代码程序、且可以自由传播的操作系统
操作系统是什么
是人与计算机硬件沟通的介质
使用linux的好处
是自由传播,免费,不会犯法,任意切换图形/命令终端,安全稳定,不用杀毒软件,不卡
Linux能干啥
当服务器,在服务器上安装各种企业应用\服务
Linux系统在那些领域
淘宝 京东
服务器有那些硬件
机箱 ,光驱,主板,网卡,cpu,内存条,硬盘,显卡,网卡,电池,声卡
内存 CPU 和磁盘的作用
内存:1. 负责硬盘等硬件上的数据与CPU之间数据交换处理;2. 缓存系统中的临时数据。3. 断电后数据丢失。
CPU:中央处理单元(Cntral Pocessing Uit)的缩写,也叫处理器,是计算机的运算核心和控制核心。人靠大脑思考,电脑靠CPU来运算、控制。让电脑的各个部件顺利工作,起到协调和控制作用
硬盘:存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。也被人们称之为“数据仓库”
服务器常见的品牌
联想 DELL HP IBM
操作系统的作用
控制和管理资源的使用
开源软件的特性,以及开源许可的协议
可以软件的特性: 低风险 高品质 低成本 更透明
GNU特点: 复制自由 传播自由 修改自由 收费传播
Linux的优点
稳定性和高效性 低配置要求 免费或者少许费用 强大的支持 安全性 真正的多用户
常见的Linux发行版
RHEL CentOS openSUSE Ubuntu
用虚拟机学Linux的好处
对于初学者来说操作简单,使用方便,便于管理
下载Centos系统
Linux系统结构
Linux使用正斜杠"/"而不是反斜杠"\"来标识目录
/bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。 /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev : dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 /media: linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all /root: 该目录为系统管理员,也称作超级权限者的用户主目录。 /sbin: s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 /srv: 该目录存放一些服务启动之后需要提取的数据。 /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。 该文件系统是内核设备树的一个直观反映。 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 /tmp: 这个目录是用来存放一些临时文件的。 /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 /usr/bin: 系统用户使用的应用程序。 /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。 /usr/src:内核源代码默认的放置目录。 /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。 值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
简单命令
ifconfig 查看服务器ip地址
ls 查看当前文件夹下的内容
pwd 查看当前所有文件夹
cd 切换文件夹
touch 如果文件不存在创建新的文件
mkdir 创建目录
rm 删除指定的文件名
clear 清屏
. 当前目录 .. 上层目录 - 前一个工作目录 ~ 当前所在的家目录
Linux当前路径PATH
echo $PATH
输出
/usr/local/sbin: /usr/local/bin: /usr/sbin: /usr/bin: /root/bin:
vim的工作流程
打开文件 vim alex.txt 进入一个命令模式
输入字母 i 进入编辑模式
输入 esc键盘 退出编辑模式 然后输入 :wq 保持并退出
递归添加文件夹
mkdir -p /tmp/{alex,wusir}
创建普通用户
useradd alex
更改密码
passwd alex
删库跑路
rm -rf /*
cat 查看文件内容
ls -la 以树状显示文件夹,显示隐藏文件
更改主机名字
hostnamectl set-hostname wangdachui
1.查看linux的path变量
echo $PATH
2.简述linux的文档目录结构
是一个树状图
定点是根目录 /
查看根目录 ls /
超级用户root家目录 /root
普通家目录 /home
3.递归创建文件夹/tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng}
mkdir -p /tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng}
4.显示/tmp/下所有内容详细信息
ls /tmp/* -lh
5.简述 / ~ - 的含义
/ 根目录
~ 用户家目录
- 上一次工作目录
6.请简述你如何使用vi命令
1.打开文件 vim filename。此时进入了一个命令模式
2.输入 字母i ,进入编辑模式
3. 输入 esc 键盘 ,退出编辑模式,此时输入 :wq 写入代码,并且保存退出
7.查看/etc/passwd的内容并且打印行号
cat -n /etc/passwd
8.查看文本有哪些命令?
vi
vim
cat
9.linux xshell常用快捷键?
tab 自动补全 ctrl + l 清屏 ctrl + c 终止 shift + ctrl + r 快速链接对话 ctrl + d 是快速推出会话
10.如何用echo清空一个文件?
echo > xx.txt
11.复制/tmp/下所有内容到/home,在修改文件前,先拷贝一份,防止内容被破坏
cp -r /tmp/* /home
12.重命名test.py为my.py
mv test.py my.py
13.强制删除/tmp下内容
rm -rf /tmp/*
14.找到服务器上的settings.py
find / -type f -name settings.py
15.找到/etc下的网卡配置文件,提示网卡配置文件名是ifc开头
find /etc -name ifc*
这里题目,请先cp /etc/passwd /tmp/ 拷贝文件
16.过滤出/tmp/passwd下有关root的信息
cat /etc/passwd |grep '^root'
17.过滤出/tmp/passwd下除了/sbin/nologin的信息,且打印行号
cat /etc/passwd |grep -v /sbin/nologin -n
18.查看/tmp/passwd前25行
head -25 /tmp/passwd
19.查看/tm/passwd后3行
tail -3 /tmp/passwd
20.不间断打印/var/log/py.log的信息
tail -f /var/log/py.log
23.配置rm别名为“禁止你用rm,谢谢”,然后取消别名
alias rm="echo 你删不掉你气不气"
unalias rm
24.将服务器1的/tmp/my.py远程传输到服务器2的/opt/目录下
scp /tmp/my.py root@服务器2地址ip:/opt/
25.将服务器2的/opt/test.py拷贝到服务器1的/home目录下
scp -r root@服务器2地址IP:opt/test.py /home
26.统计/var/log/文件夹大小
du -sh /var/log/
27.简述top的常见参数
-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
28.给settings.py加锁,禁止删除
lsattr settings.py #查看是否加锁
chattr +a settings.py #加锁
chattr -a settings.py #解除
29.同步服务器时间到ntp.aliyun.com
ntpdate -u ntp.aliyun.com
30.下载http://pythonav.cn/xiaobo.jpg图片
wget http://pythonav.cn/xiaobo.jpg
在编辑文件显示显示行号
:set nu
echo追加写入文件
> 重定向覆盖输出符
>> 重定向追加输入符
head -10 filename #查看前10行
tail -10 filename #查看后10行
实时监控 tail -f filename
复制的命令
cp 文件 新文件夹
cp -r 文件夹 新文件夹
历史记录命令
history 历史记录命令,记录系统的命令敲过的历史 以!加数字执行
查找命令,查找机器上的文件,或者文件夹
find / -name views.py #找到机器上所有的 views.py
find /etc -name *.py #找到/etc目录下 所有名字叫做 .py的文件
find / -name python* #找到 机器上 所有的python开头的文件和文件夹
find / -type f -name python* #找到机器上 所有以python开头的文件
find / -type d -name python* #找到机器上所有python开头的文件夹
查看命令帮助信息,如何查看有什么参数?
http://linux.51yip.com/
linux的系统管道符
grep -v "^$" settings.py | grep -i "allow"
-v 取反 -i 忽略大小写
alias添加别名
alias rm="echo 请不要删库"
unalias rm 取消别名
.更改主机名字
hostnamectl set-hostname xxx
.xshell的快捷键
ctrl + l 清屏
ctrl + d 是快速推出会话 logout
shift + ctrl + r 是快速连接会话
远程传输文件的命令
scp 你想传输的内容 你想传输到的地方
#实例
#把本地的test.sh 传输到远程服务器上
scp test.sh root@服务器ip:/opt/
#把远端服务器的内容,传输到自己的机器上
scp -r root@123.206.16.61:/opt/pythonav /tmp/
给文件加锁
chattr +a fildname
给文件解锁
chattr -a fildname
查看隐藏锁
lschattr fildname
wget 资源的url
wget http://www.xiaohuar.com/d/file/20190227/257e9f91df2bbd45c537f9416ae3afbb.jpg
统计文件 文件夹大小的命令
ls -lh 方式1
du -h 文件 #统计文件大小
du -sh . #统计当前文件夹大小合计
du -sh /var/log #统计/var/log大小
linux的任务管理器
top
linux的时间命令
date 可以查看当前时间日期
进行linux时间同步的命令
ntpdate -u ntp.aliyun.com
下载python3,进行编译安装,运行django程序
1.解决python编译安装所需的软件依赖
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
2.下载python3源码包
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
xz -d Python-3.6.7.tar.xz
tar -xf Python-3.6.7.tar #解压缩,生成一个python源码文件夹
3.进入python源码文件夹
cd Python-3.6.7
4.进行编译安装,编译三部曲
1.第一曲
./configure --prefix=/opt/python36/
--prefix 参数解释:指定python36安装的位置
2.第二曲
make
3.第三曲 ,此时就开始安装python3软件
make install
5.进入python36安装目录 ,检查bin目录
6.配置python3的环境变量 PATH
1.取出当前的path变量
echo $PATH
2.填写python3的bin目录到PATH中
PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
3.讲环境变量,写入到全局配置文件/etc/profile
vim /etc/profile
4.写入如下代码,在最底行写入如下配置
PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
5.读取配置文件,加载变量生效
source /etc/profile
7.安装django,运行django
1.安装django模块
pip3 install -i https://pypi.douban.com/simple django
2.升级pip
pip3 install --upgrade pip
3.通过命令创建django项目
django-admin startproject crm
django-admin startapp app01
4.关闭防火墙
iptables -F
查看系统发行版本
cat /etc/redhat-release
cat /etc/os-release
看系统用户的id信息
id root
存放用户信息的文件 /etc/passwd
存放用户组的文件 /etc/group
用户切换
su - 用户名
userdel删除用户
userdel -rf 用户名
vim /etc/sudoers #编辑文本给普通用户加权限
sudo命令,预设以root身份去执行命令
1.配置 /etc/sudoers,添加banzhuren用户到配置中
找到如下行
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
banzhuren ALL=(ALL) ALL
2.保存退出后,banzhuren用户即可使用sudo命令了
3.visodu命令,提供对/etc/sudoers文件,进行配置检测的功能
权限查看
- 横线代表是普通文本
d 代表文件夹
l 代表软连接
r read 可读
w write 可写
x 可执行
- 没有权限
linux有三个用户身份
可读可写可执行 是有顺序的 依次是可读可写可执行
user 属主
group 属组
others 其他人
加权限
chmod o+w fildname #给其他用户加写权限
chmod 777 fildname #给所以用户加读写执行
更改文件属主
chown 用户名 文件
更改文件属组
chgrp 用户组名 文件
linux的软连接配置
ln -s 目标文件绝对路径 软连接绝对路径
ln -s /tmp/file1.txt /opt/file2.txt
#打包,解包命令
#将/tmp下所有内容打包成一个文件 xx.tar
#打包文件 ,不节省磁盘
tar -cvf 打包文件的名字.tar 要打包的内容
#压缩且打包文件
tar -zcvf 压缩文件名.tar.gz 要压缩的内容
#解压缩
tar -xf 解包文件名.tar
tar -zxvf 压缩文件名.tar.gz
#查看进程
ps -ef |grep python #检查python进程是否存活
#查看端口
netstat -tunlp | grep 8000
netstat -tunlp |grep
#杀死计算机的进程
1.通过ps -ef | grep 找到进程的pid号
2.通过kill pid 杀死进程
#批量杀死进程
pkill 你想杀死的任务名字
pkill python
#linux防火墙功能
1.linux有俩防火墙,可能会影响咱们的 web服务部署
一个是selinux
二个是iptables
三个,云服务器对外提供防火墙服务的 硬件防火墙
2.关闭防火墙的步骤
iptables -F #清空防火墙规则
systemctl stop firewalld #关闭防火墙服务
systemctl disable firewalld #禁止防火墙开机自启
3.关闭selinux 步骤如下
1.打开文件vim /etc/selinux/config
2.临时修改selinux,临时关闭
getenforce #获取selinux状态
setenforce 0 #临时关闭
想要永久关闭seliunux,执行3,4步骤
3.修改代码如下
SELINUX=disabled
4.重启机器后,生效
linux的定时任务
crontab服务
vim /etc/crontab #打开文件,查看语法规则
编辑定时任务的文件
crontab -e
#每分钟写入一个信息到文件中
* * * * * /usr/bin/echo "老弟啊,学习很累啊" >> /tmp/xd.txt
#每分钟执行一次命令
分 时 日 月 周
* * * * * 命令绝对路径
* * * * * 执行命令
#每小时的3,15分组执行命令
分 时 日 月 周
* * * * * 命令绝对路径
3,15 * * * * 执行
提前下载好wget工具
yum install wget -y
2.下载lrzsz工具,方便linux和windows互相传文件
yum install lrzsz -y
3.如何手动启动网卡?
ifup eth33
4.linux的超级用户是什么?如何查看用户身份信息?
root管理员
id root
5.简单描述linux的用户管理
用户
用户组
其他用户
6.如何创建普通用户,并且修改用户密码,然后使用普通用户登录
useradd alex
passwd alex
ssh alex@服务器
7.在linux下如何切换用户
su - alex
8.如何使用root身份执行普通用户的命令?请详细说明配置步骤
visudo
配置 /etc/sudoers 添加alex用户到配置中
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
alex ALL=(ALL) ALL
保存退出后,alex用户即可使用sudo命令了
9.简述linux文件的权限有哪些?
r:读
w:写
x:执行
10.linux文件权限的755,700是什么意思?
755 700
user 属主 rwx rwx
group 属组 r-x ---
other 其他人 r-x ---
11.如何修改test.py文件权限为700
chmod 700 test.py
12.如何修改test.py属组是oldboy?
chgrp oldboy test.py
13.已知test.py文件权限是rwxr--r--,如何修改权限为rw-rw-rw
chmod 666 test.py
14.linux如何建立软连接?
ln -s 目标文件地址 快捷地址
15.linux的PS1变量是什么?如何修改
linux的命令提示符
查找echo $PS1
修改PS1="[\u@\h \w \t]\$"
1.vim vi 是什么?
文本编辑器
2.vim有哪几种模式?
命令模式
插入模式
底行模式
3.命令模式有哪些?
:wq vim
4.输入模式有哪些?
i a o ESC
5.底线命令模式有哪些?
: ENTER
6.centos7用什么命令管理服务
systemctl restart nginx
service nginx stop #centos7以下
7.linux解析dns的命令是什么?
nslookup
1.将/tmp/下所有内容压缩成All_log.tar.gz并且放到/home/下
tar -zcvf /tmp/All_log.tar.gz /tmp/*
2.解压缩Python源码包Python-3.7.0b3.tgz
tar -zxvf Python-3.7.0b3.tgz
3.查看mysql端口状态
netstat -tunlp |grep mysql
4.如何查看nginx的进程
ps -ef |grep nginx
5.如何杀死nginx进程
pkill nginx
6.如何修改linux中文
vim /etc/locale.conf
7.如何统计/var/log大小
du -sh /var/log
8.tree是什么作用?
以树形结构展示给用户
9.如何给linux添加一个dns服务器记录
/etc/hosts 强制写入本地 需要测试的域名 和ip的解析
vim /etc/resolv.conf
nameserver 114.114.114.114
crontab -e
10.每月的,5,15,25天的晚上5点50重启nginx
50 17 5,15,25 * * /opt/nginx/sbin/nginx -s reload
11.每周3到周5的深夜11点,备份/var/log /vmtp/
* 23 * * 3-5 /var/log/cp /var/log/ /mtp/
12.每天早上6.30清空/tmp/内容
30 6 * * * /usr/bin/rm -rf /tmp/*
13.每个星期三的下午6点到8点的第5,15分钟执行命令 command
5,15 18-20 * * 3 command
14.编译安装软件有哪些步骤?
1.下载源代码
2.解压源代码
3进入源代码目录,开始编译安装
4.配置环境变量
15.如何修改python3的环境变量,以及软连接
echo $PATH
PATH="/opt/python36/bin/:$PATH"
vim /etc/profile
ln -s /opt/python36/bin/python3.6 /usr/bin/python3
16.请在linux上启动django,windows上进行访问
18.如何查看linux端口?
netstat -tunlp
19.如何杀死进程号为5888?
kill 5888
20。如何关闭iptables?
iptables -F
14.请说出 755, 740分别是什么权限?
rwxr-xr-x
rwxr-----
15.修改文件权限为只有属主可读可写可执行?
chmod 070 xx.txt