Linux第二天
知识点:
1.学习linux,安装的方式
在你的windows上安装一个 vmware虚拟化软件(基于它可以安装各种系统)
注意:我设置的所有用户的密码都是 liangyufeng
2.公司中 会提供一个云服务器给你用
服务器ip 123.206.16.61 公网ip
账号 :xiaozhang
密码: xiaozhang666
3.登录linux的流程
windows客户端:下载一个远程连接工具Xshell
ssh xiaozhang@123.206.16.61 回车过后
输入xiaozhang用户的密码,即可登录
macos:直接使用终端
ssh xiaozhang@123.206.16.61
ubuntu:
ssh xiaozhang@123.206.16.61
4.显示终端连接数
w 命令 ==>显示当前系统有多少个终端在使用,在登录(远程的终端,自己的终端,以及自己服务器上面的桌面都是一个终端)
5.我在哪的命令
pwd ==>显示当前的路径
6.我是谁
whoami ==>显示当前登录的用户名
7.找到命令的绝对路径
which python ==> /user/bin/python
8.linux的文件系统格式 复习
1.是一个树状图
2.顶点是 根目录 /
3. 查看 根目录 下有什么 内容 ls /
4.用户家目录 超级用户root的家目录 /root (就是root下面的一个)
5.普通用户家目录 /home/xiaobai
/home/xiaolv
/home/铁锤
6.常用的文件夹
/opt 存放第三方软件的目录,大型软件的目录
/etc 存放各种配置文件的目录
/var/log 存放日志文件的目录,/var是存放经常变化的文件的目录
7.对文件夹,文件操作的命令
(蓝色的是文件夹)文件夹的操作:
ls
mkdir
mv 改名/移动位置(文件或文件夹都可以)
rm -r 才能删文件夹
(白色的是文件,xx.py xx.php xx.go xx.c )文件的操作:
cat 查看
touch 创建空文本
vim 创建/编辑文本(操作的文件不存在的话就创建 )
rm 单纯的指令只能删除文件
mv 改名/移动位置(文件或文件夹都可以)
8.linux的命令提示符
[root@localhost log]# ==>这是root用户默认的,普通用户的 [alex@localhost log]$
△如何 修改命令提示符
默认的命令提示符是PS1 的变量控制的
echo $PS1
结果是 (注意是反斜杠)
[\u@\h \W]\$ ==>\u:代表user,\h:代表hostname(主机名),\W:大写的,代表显示工作目录的最后一位
修改变量的值(将下面一行代码复制到终端,命令提示符当下就改变了,但是只在当前会话生效,退出重新登录就没有了)
PS1="[\u@\h \w \t]\$" ==>\w:小写的,代表显示绝对路径 \t:代表时间,时分秒
9.linux命令参数的用法
ls -ahl (参数的顺序无所谓,写上就有效果)==>l:显示详细信息,a:显示隐藏(以.开头的文件名),h:显示大小的单位(kb,Mb等)
10.查看文本的命令
cat 用于查看纯文本文件(常用于内容较少的),相当于open函数,把文件内容读取到内存当中
#猫,查看文件
cat xxx.py
#查看文件,显示行号
cat -n xxx.py (n:代表number)
#在每一行的结尾加上$符
[root@master tmp]# cat -E 1.txt
#追加文字到文件,可用于写代码,能保留格式输出
cat >>/tmp/oldboy.txt << EOF
唧唧复唧唧
木兰开飞机
开的什么机
波音747
EOF
解释:
>> 代表重定向,追加输出
<< 代表写入(输入符)
EOF 代表end of file , 文件结尾
△输入/输出 重定向符号
1.>> 追加重定向,把文字追加到文件的结尾
2.> 重定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾
3.< 输入重定向
4.<< 将输入结果输入重定向
more 用于查看内容较多的文本,会以百分比形式告知已经看到了多少,使用回车键向下读取内容
按下空格space是翻页
按下b键是上一页
回车键向下读取内容
#例如要看一个很长的配置文件:
more /etc/passwd
11.查看文件的前十行,后十行
△下面的三行指令只是为了让我们看一下内容,便于后续指令的对照:(可以不写,也能)
vim xxx.txt # 打开文件
在结尾输入(不是编辑模式):set nu ==>显示行号
退出(:q!),输入下面的代码
head显示文件前几行,默认前10行
tail显示文件后几行,默认后10行
head -10 filename # 查看文件的前十行 等价于 head filename
tail -10 filename ==>tail:尾巴 # 查看文件的后十行 等价于 tail filename
实时监控的命令,可以用于检测nginx的 access.log 也能看各种日志信息
1,tail -f filename # 实时监控filename的 变化,终端会卡在这里==>-f:代表flush,持续刷新显示
2,再打开一个终端,输入 echo '111' >> /tmp/ll.py # 向同一个文件中追加内容 ,这时候上面的窗口会实时显示追加的内容
12.echo追加写入文件
> 重定向覆盖(相当于以w模式打开文件)输出符
>> 重定向追加(相当于以a模式打开文件)输出符 ==> echo 字符串(要写入的内容) >> 文件名(要写入的文件名)
[root@localhost tmp]# echo "亚洲的第一个秘密" > 亚洲的秘密.txt #覆盖写入
[root@localhost tmp]# echo "亚洲的第一个秘密" > 亚洲的秘密.txt
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]# cat 亚洲的秘密.txt
亚洲的第一个秘密
[root@localhost tmp]#
[root@localhost tmp]#
[root@localhost tmp]# echo "亚洲的第一个秘密" >> 亚洲的秘密.txt # 追加写入
[root@localhost tmp]# echo "亚洲的第一个秘密" >> 亚洲的秘密.txt
[root@localhost tmp]# echo "亚洲的第一个秘密" >> 亚洲的秘密.txt
13.复制的命令(重命名/移动,源文件存在) ==>对照 mv:重命名/移动,源文件不存在
cp 文件 新文件夹(要拷贝到的路径) # 拷贝文件(filename)到新文件夹下,没有指定名字的话是不改变名字
#拷贝xxx.py到/tmp目录下
cp xxx.py /tmp/
#拷贝xxx.py到/tmp目录下顺便改名为chaoge.py
cp xxx.py /tmp/chaoge.py
cp -r 文件夹 新文件夹(要拷贝到的路径) # 拷贝文件夹(dir)到新文件夹下,-r:是递归,复制目录以及目录的子孙后代,否则不能拷贝文件夹
14.历史记录命令
history 历史记录命令,记录系统的命令敲过的历史
快捷方式
使用 !加上 命令的序号,可以快捷执行
栗子:
history
结果: 282 exit
输入: !282
就会执行 exit 这个指令,登录状态就会退出
15.查找命令,查找机器上的文件,或者文件夹
find 要查找的路径 -type f -name 要查找的名字
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开头的文件夹
16.查看命令帮助信息,如何查看有什么参数?
http://linux.51yip.com/
命令 --help # 使用: grep --help
man 手册 # 使用: man grep ==>是以more命令的形式打开的,按enter去继续查看
man 命令
17.linux的系统管道符
grep==>全局 正则 打印
(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep [参数] [--color=auto] [字符串] filename # grep "all"(要查找的内容) ./settings.py(要查找的范围)
参数详解:
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
--color = auto : 给关键词部分添加颜色
Linux提供的管道符“|”讲两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。
联合栗子:
grep -v "^$" settings.py | grep -i "allow" # 前面的输出是一堆字符串,作为后面要查找的范围
#过滤出文件的有用信息,也就是排除 注释行,空白行
grep -v "^#" settings.py | grep -v "^$" # 这里的"^#"代表是以#开头的行
#测试:正则(要查找的内容)不需要加引号(加不加都可以)就可以匹配到
[root@localhost crm]# grep a /tmp/ll.py #要查找的内容,加或不加引号都可以找到,就算是正则表达式
aaaaaBBBBBAAAAA
a='1234567宝宝'
[root@localhost crm]# grep 'a' /tmp/ll.py
aaaaaBBBBBAAAAA
a='1234567宝宝'
[root@localhost crm]# grep '^a' /tmp/ll.py
aaaaaBBBBBAAAAA
a='1234567宝宝'
[root@localhost crm]# grep ^a /tmp/ll.py
aaaaaBBBBBAAAAA
a='1234567宝宝'
18.linux的别名功能
#查看系统默认别名
alias
#部分结果:
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
-i:拷贝/移动/删除 已有文件或目录之前先询问用户;
栗子:当用户输入 rm的时候,就提示他 “你这个二货,求你了别坑我了 ”
# 为rm设置别名
alias rm="echo 你这个二货,求你了别坑我了"
#取消别名
unalias rm # 给rm取消系统中设置的别名(取消当前rm在系统中设置的别名,系统中就没有rm的别名了,需要重新加上原来的alias rm='rm -i',否则执行rm的时候是不会有删除提示的)
#设置别名永久生效,写入到/etc/profile(针对登录用户的合同,设置环境变量)
1,vim /etc/profile #编辑文件
2,将 alias rm="echo 你这个二货,求你了别坑我了" 写入文件的最后一行
i 进入编辑模式
G 快速到达最后一行
o 当前行下一行,创建一个新行,进入编辑模式
3,source /etc/profile #读取文件(合同生效)
19.更改主机名字
hostnamectl set-hostname wangdachui # 将主机名更改为wangdachui,需要退出会话重新登录才能生效
20.xshell的快捷键
ctrl + l 清屏 ==>Mac终端有效
ctrl + d 是快速推出会话 logout ==>Mac终端有效
shift + ctrl + r 是快速连接会话 ==>Mac终端无效
21.远程传输文件的命令
scp命令用于Linux之间复制文件和目录。secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
语法: scp 【可选参数】 你想传输的内容(源文件) 你想传输到的地方(目标地址,可以)
#实例
#把本地的test.sh 传输到远程服务器上
scp test.sh root@服务器ip:/opt/
scp /tmp/chaoge.py root@192.168.1.155:/home/ # 传输
scp /tmp/chaoge.py root@192.168.1.155:/home/chaoge_python.py # 传输的同时更改文件名
#把远端服务器的内容,传输到自己的机器上
scp -r root@123.206.16.61:/opt/pythonav /tmp/
22.安装一个windows和linux传输文件的 软件
yum install lrzsz 的工具 # yun是Linux上使用的,类似于pip的指令
它提供2个命令,一个是上传 一个是下载
rz (接收文件) 直接rz
sz (发送文件) : sz 传输的内容 # 没弄出来???
直接拖拽
23.在线下载资源的命令
wget 资源的url
wget http://www.xiaohuar.com/d/file/20190227/257e9f91df2bbd45c537f9416ae3afbb.jpg
24.统计文件 文件夹大小的命令
du会显示指定的目录或文件所占用的磁盘空间。
用法
du 【参数】【文件或目录】
-s 显示总计
-h 以k,M,G为单位显示,可读性强
实例
#什么都不跟,代表显示当前目录所有文件大小
du
#显示/home的总大小
du -sh /home
ls -lh 方式1
du -h 文件 #统计文件大小
du -sh . #统计当前文件夹大小合计
du -sh /var/log #统计/var/log大小
25. chattr命令
给文件加锁,只能写入数据,无法删除文件
chattr +a test.py
chattr -a test.py
lsattr命令
查看文件隐藏属性
lsattr test.py
25.linux的任务管理器top
top
#开关机命令
reboot命令用于重启机器
poweroff用于关闭系统
26.linux的时间命令 date 可以查看当前时间日期
进行linux时间同步的命令
ntpdate -u ntp.aliyun.com # ntp是时间同步服务器 ntpdate:是与某一个服务器的时间进行同步 -u:update
27.下载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源码包(先切换到/opt)
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==1.11.14
2.升级pip
pip3 install --upgrade pip
3.通过命令创建django项目
django-admin startproject crm
django-admin startapp app01
4.关闭防火墙
iptables -F
5.运行 项目
python3 manage.py runserver 0.0.0.0:8001 (最后的端口任意指定)
完成python3的安装 以及django项目的运行,显示页面 来了老弟
另:下载tree的指令 yum install tree -y 显示安装位置:rpm -ql tree
报错的话,输入 ctrl + c 退出(Mac也是使用Ctrl)
补充:
△Linux快捷键
1.tab键 用于自动补全命令/文件名/目录名
2.ctrl + l 清理终端显示
3.clear/cls 清理终端显示
4.ctrl + c 终止当前操作(Mac也是使用Ctrl)
linux 下面的指令之间的空格,一个或者多个都无所谓
浙公网安备 33010602011771号