Linux
Linux就是个操作系统:它和Windows XP、Windows7、8、10什么的一样就是一个操作系统而已!
Linux能干什么:能当服务器,在服务器上安装者各种企业应用、服务。 比如:Web服务(Nginx,Apache,例如淘宝网站就是二次开发的Tengine服务器)、数据库(MySQL,存储网站信息数据的)、路飞学城等等……
Linux系统用在哪些领域:例如淘宝、京东的服务器就是Linux系统,再比如美团、滴滴、快手、xx直播,总之他们都是Linux服务器。Linux同时也在桌面领域(windows桌面)、嵌入式领域(阿里云的YunOS,安卓操作系统)、大数据云计算的领域迅速发展
linux的优势
Linux以高效和灵活主城,Linux同事具有多任务、多用户的能力,支持多线程,多CPU。
Linux包括了文本编辑器,高级语言编译器,以及图形用户界面登应用软件,当然绝大多数服务器都是使用命令行,文本模式操作Linux的。
Linux遵循GNU通用公共许可协议,属于自由软件,用户不需要支付费用就可以获得系统和系统源代码,无偿使用且自由传播。
Linux具有很高的系统稳定性和可靠性。具有很高的系统安全性众多业界厂商支持,如IBM、Oracle、Intel、HP、Google等有完善的数据库平台,包括Oracle、DB/2、Sybase、MySQL、PostgreSQL等。有完善的图形化用户界面,包括GNOME、KDE等。有完善的开发平台,包括C/C++、Java、Python等。
基础指令练习
常见指令
增
创建一个目录:
mkdir /test
递归创建:(在test目录下创建new)
mkdir -p /test/new
递归创建:test/a,b,c,d四个目录
mkdir -p test/{a,b,c,d}
递归创建文件夹:a/b/c/d/e
mkdir -p a/b/c/d/e
touch 文件
例如:touch xxx.py
1.如果文件已经存在,修改文件的访问时间
2.如果文件不存在,则创建这个文件
vi/vim编辑器,编辑文件
步骤
1. vi 文件名 打开文件,进入命令模式
2. 输入 a i o ,其一的字符,进入编辑模式
a append 在光标后开始写入
i insert 在光标当前位置开始编辑
o 在光标下一行开始编辑
3.代码写完后,退出编辑模式,按下esc,回到命令模式
4.输入 冒号,进入底线命令模式
:q 直接不保存退出
:q! 不保存强制退出
:wq 保存退出
:wq! 强制写入内容且退出
vi:类似于window的记事本,文本编辑器
vim:如同notepad++,高级文本编辑器,支持编程
删
rm 删除文件 (remove移除的意思)
rm -i 文件 #删除文件且交互式提示,是否删除 ,系统做了别名,默认加上rm -i
rm -r 文件夹 #递归删除文件夹
rm -f 文件 #强制删除文件,且不提示
rm -rf 文件 #删除一切的命令,很危险
rm命令,随时快照虚拟机
改
cd (change directory ) 更改工作目录
cd / #进入到根目录下
python filename.py
mv(move 移动和重命名的作用)
mv heiheihei.txt 才徐坤.txt # 格式:mv 旧的文件名 新的文件名
mv 文件 文件夹 #更改目录
systemctl restart network #重启网络服务
查
pwd (翻译全称print work directory) ,打印当前工作目录
ls (list 列出目录的内容)
ls / #显示根目录下的内容
ls -a /tmp #列出/tmp目录下的所有文件以及隐藏文件
tree命令,以树状图显示文件目录结构
yum install tree -y # 如同 pip3 install django (这个命令随便在哪敲,安装在默认路径)
rpm -ql tree #查询命令的所有安装路径
cat 文件名 #查看文件内容
alias:
语法 alias命令 参数="别名"
alias rm='rm -i'
wc:
wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。
- c 统计字节数。
- l 统计行数。
- w 统计字数。
wc -lcw /etc/passwd
18 26 798 /etc/passwd(行数、字数、字节数、文件名)
which
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。which pwdwhich python
举个栗子:
which python #python命令在哪
/usr/bin/python #命令文件绝对路径
du
Linux du命令用于显示目录或文件的大小。
du会显示指定的目录或文件所占用的磁盘空间。
格式
du 参数 文件或目录
-s 显示总计
-h 以k,M,G为单位显示,可读性强
举个栗子:
显示目录或文件所占空间
du
什么都不跟,代表显示当前目录所有文件大小
显示/home的总大小
du -sh /home
lsattr命令
查看文件隐藏属性
lsattr test.py
wget命令
wget命令用于在终端下载网络文件
参数是 wget [参数] 下载地址
wget -r -p http://www.luffycity.com#递归下载路飞所有资源,保存到www.luffycity.com文件中
echo命令
echo命令用于在终端输出字符串或变量提取后的值,格式是“echo 【字符串|$变量】”
#默认吧内容显示到终端上
/tmp/xxxx.txt $PATH #取出打印PATH的值
移动命令
移动(搬家)命令 > move > mv
mv /home/shahe/tj/tmp/chaoyang 文件/文件夹改名mv x.log xx.log
复制
复制 > copy > cp
#移动xxx.py到/tmp目录下
cp xxx.py /tmp/
#移动xxx.py顺便改名为tj.py
cp xxx.py /tmp/tj.py
Linux下面很多命令,一般没有办法直接处理文件夹,因此需要加上(参数)
cp -r 递归,复制目录以及目录的子孙后代
cp -p 复制文件,同时保持文件属性不变 可以用stat
cp -a 相当于-pdr
#递归复制test文件夹,为test2
cp -r test test2
cp是个好命令,操作文件前,先备份
cp main.py main.py.bak
特殊符号
输入/输出 重定向符号
1.>> 追加重定向,把文字追加到文件的结尾
2.> 重定向符号,清空原文件所有内容,然后把文字覆盖到文件末尾
3.< 输入重定向
4.<< 将输入结果输入重定向
echo "tj-python666" > /tmp/tj.txt
echo "tj666" >> /tmp/tj.txt
cat >>/tmp/tj.txt << EOF
我想把命令执行的结果信息,写入到文件中
ip addr > /tmp/network.txt #标准输出重定向 把命令执行结果信息,放入到文件中
3.通配符
ls -l /etc/us*
Linux快捷键
1.tab键 用于自动补全命令/文件名/目录名
2.ctrl + l 清理终端显示
3.clear/cls 清理终端显示
4.ctrl + c 终止当前操作
数据库
#登录数据库 -u 指定用户名 -p指定密码 -h指定数据库主机地址
mysql -uroot -p -h 123.206.16.61
#备份数据库,备份所有的库表 > 导入
mysqldump -uroot -p --all-databases > /opt/alldatabases.sql
练习
1.服务器有哪些硬件?
CPU、主板、内存、显卡、硬盘、电源、机箱等构成。
2.内存,CPU,硬盘的作用?
CPU,电脑的主芯片,就像人的大脑,数据的交换在这里进行,所以,它功能越好,交换越快
显卡,主控显示画质方面,保持画质的清楚流畅,游戏必不可缺,当然,其他方面也需要,但不如游戏那样的要求高
硬盘,一个容量硬件,你的软件之类的都需要一个空间来存放,就是它了,就像一个仓库一样,你把你需要存放的东西都放进去,当你需要用的时候再取出来,所以,它需要有足够大的空间,空间太小了就会导致东西放不下,取东西也不方便
内存,一个暂存硬件,你的所有要处理的信息不可能一下子都挤到CPU上,需要先放在一个地方,就是内存了,再由内存与CPU进行一步一步的信息交换,最后完成指令,所以,内存对于处理速度也有重要的影响
3.服务器常见品牌?
IBM,浪潮,thinkserver,华为,曙光,dell,HP等。
4.操作系统的作用?
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求
5.开源软件的特性,以及开源许可的协议
特性:
使用的自有
绝大多数开源软件免费
研究的自有
可以获得软件源代码
散布及改良的自有
可以自己传播、改良甚至销售
许可的协议:
GPL许可协议
LGPL许可协议
MPL许可协议
Apache许可协议
BSD许可协议
MIT许可协议
6.linux优点
7.说出常见的linux发型版
1、centos
2、ubuntu
3、Red Hat
8.用虚拟机学linux的好处是?
利用虚拟机软件搭建Linux学习环境简单,容易上手,重要的是利用虚拟机模拟出来的Linux与真实的Linux几乎没有区别
可以同时开启多个Linux虚拟机
使用虚拟机系统环境,我们可以随意对虚拟系统进行设置和更改操作
1.查看linux的path变量
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2.简述linux的文档目录结构
3.递归创建文件夹/tmp/tj/python/{alex,wusir,nvshen,xiaofeng}
[root@localhost ~]# mkdir -p /tmp/tj/python/{alex,wusir,nvshen,xiaofeng}
4.显示/tmp/下所有内容详细信息
ls -la /tmp/*
#24s ks-script-kw6KbA tjvmware-root yum.log
5.简述 / ~ - 的含义
/ 斜线 (forward slash)在路径表示时根目录
~ 用户家目录
- 上次的工作目录,这个符号代表上次的工作目录
6.请简述你如何使用vi命令
1. vi 文件名 ,打开文件,进入命令模式
2. 输入 a i o ,其一的字符,进入编辑模式
a append 在光标后开始写入
i insert 在光标当前位置开始编辑
o 在光标下一行开始编辑
3.代码写完后,退出编辑模式,按下esc,回到命令模式
4.输入 冒号,进入底线命令模式
:q 直接不保存退出
:q! 不保存强制退出
:wq 保存退出
:wq! 强制写入内容且退出
7.查看/etc/passwd的内容并且打印行号
cat -n /etc-passwd
8.查看文本有哪些命令?
cat tac head tail more
9.linux xshell常用快捷键?
1.tab键 用于自动补全命令/文件名/目录名
2.ctrl + l 清理终端显示
3.clear/cls 清理终端显示
4.ctrl + c 终止当前操作
10.如何用echo清空一个文件?
echo > test.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 / -name settings.py
15.找到/etc下的网卡配置文件,提示网卡配置文件名是ifc开头
find /etc -type f -name ifc*
#/etc/sysconfig/network-scripts/ifcfg-lo
#/etc/sysconfig/network-scripts/ifcfg-ens33
15.请先cp /etc/passwd /tmp/ 拷贝一份文件
cp /etc/passwd /tmp/
16.过滤出/tmp/passwd下有关root的信息
grep -i 'root' /tmp/passwd
#1:root:x:0:0:root:/root:/bin/bash
17.过滤出/tmp/passwd下除了/sbin/nologin的信息,且打印行号
cat /tmp/passwd |grep -v /sbin/nologin -n
grep -v '/sbin/nologin' /tmp/passwd
#1:root:x:0:0:root:/root:/bin/bash
#6:sync:x:5:0:sync:/sbin:/bin/sync
#7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#8:halt:x:7:0:halt:/sbin:/sbin/halt
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 禁止你用rm,谢谢"
unalias rm
24.将服务器1的/tmp/my.py远程传输到服务器2的/opt/目录下
#传输本地文件到远程地址
scp 本地文件 远程用户名@远程ip:远程文件夹/
scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名
scp /tmp/my.py root@192.168.1.155:/home/
scp /tmp/my.py
root@192.168.1.155:/home/tj_python.py
scp -r 本地文件夹 远程用户名@远程ip:远程文件夹/
scp -r /tmp/tj root@192.168.1.155:/home/tj
25.将服务器2的/opt/test.py拷贝到服务器1的/home目录下
#复制远程文件到本地
scp root@192.168.1.155:/home/tj.txt /tmp/tj.txt
scp -r root@192.168.1.155:/home/tj/home/
26.统计/var/log/文件夹大小
du -sh /var/log
# 2.9M /var/log
27.简述top的常见参数
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
28.给settings.py加锁,禁止删除
chattr +i settings.py
29.同步服务器时间到ntp.aliyun.com
ntpdate -u ntp.aliyun.com
30.下载http://pythonav.cn/xiaobo.jpg图片
wget http://pythonav.cn/xiaobo.jpg