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系统

http://www.centos.org

 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的预设放置也是在这里。
View Code

简单命令

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

 

 

posted @ 2019-03-26 20:22  等待の喵  阅读(609)  评论(0编辑  收藏  举报