linux--介绍和指令练习

蓝咒 提交于 2019-12-23 18:18:06

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!