zoukankan      html  css  js  c++  java
  • Linux(一):Linux基础

    1. Linux入门

    1.1. Linux概述

    • Linux是一套免费使用和自由传播的类Unix操作系统。Unix操作系统是上世纪70年代在贝尔实验室诞生的一个强大的多用户、多任务操作系统。
    • Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
    • 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。

    1.2. Linux和Windows的区别

    1.3. CentOS下载地址

    网易镜像:http://mirrors.163.com/centos/6/isos/

    搜狐镜像:http://mirrors.sohu.com/centos/6/isos/

    2. Linux 文件与目录结构

    2.1. Linux文件

    • 在Linux中一切都是文件。

    2.2. Linux目录结构

    1. /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
    2. /root:该目录为系统管理员,也称作超级权限者的用户主目录。
    3. /etc:所有的系统管理所需要的配置文件和子目录。
    4. /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
    5. /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。
    6. /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
    7. /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
    8. /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
    9. /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    3. VI/VIM编辑器

    3.1. 编辑器概述

    • VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。

     3.2. 编辑器的一般模式

    1. yy:复制光标当前一行
    2. p:箭头移动到目的行粘贴
    3. u:撤销上一步
    4. dd:删除光标当前行
    5. x:删除一个字母,相当于del
    6. shift+^:移动到行头
    7. shift+$:移动到行尾
    8. shift+g:移动到页尾

    3.3. 编辑器的编辑模式

    1. i:在当前光标前进入编辑模式
    2. a:在当前光标后进入编辑模式
    3. o:当前光标行的下一行
    4. ESC:退出编辑模式

    3.4. 编辑器的指令模式

    1. ::w是保存,q是退出,!是强制执行
    2. /:查找,/被查找词,n是查找下一个,shift+n是往上查找

    3.5. VI键盘图和模式转换

    4. 网络配置和系统管理操作

    4.1. 修改网络ip地址

    # 使用vim编辑器修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
    DEVICE=eth0                #接口名(设备,网卡)
    HWADDR=00:0C:2x:6x:0x:xx   #MAC地址 
    TYPE=Ethernet               #网络类型(通常是Ethemet)
    UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44  #随机id
    ONBOOT=yes                #系统启动的时候网络接口是否有效(yes/no)
    BOOTPROTO=static      # IP的配置方法[none|static|bootp|dhcp](引导时不使
    用协议|静态分配IP|BOOTP协议|DHCP协议)
    IPADDR=192.168.1.100      #IP地址
    GATEWAY=192.168.1.2      #网关
    DNS1=192.168.1.2          #域名解析器

    4.2. 关闭防火墙(CentOS7)

    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld 
    开机禁用  : systemctl disable firewalld
    开机启用  : systemctl enable firewalld

    4.3. 关机重启

    • 概述:在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。正确的关机流程为:sync > shutdown > reboot > halt。
    • 经验技巧:Linux系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
    • 基本语法:

    sync

    将数据由内存同步到硬盘中

    halt

    关闭系统,等同于shutdown h now poweroff

    reboot

    就是重启,等同于 shutdown r now

    shutdown

    选项

    -h-h=halt关机

    -r-r=reboot重启

    参数

    now:立刻关机

    时间:等待多久后关机(时间单位是分钟)。

    5. Linux中常用的基本命令

    5.1. 帮助命令

    man 获得帮助信息

    例:man ls(获取ls的帮助信息)

    help 获得shell内置命令的帮助信息

    例:help cd(获取cd的帮助信息)

    常用快捷键

    ctrl + c:停止进程

    ctrl+l:清屏(彻底清屏是:reset

    ctrl + q:退出

    tab:提示信息

    上下键:查找执行过的命令

    5.2. 文件目录类

    pwd

    显示当前工作目录的绝对路径

    ls

    -a :全部的文件,连同隐藏的(开头为 . 的文件一起列出来(常用)

    -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

    cd

    cd路径:切换到绝对路径或者切换到相对路径

    cd ~或者cd :回到自己的家目录

    cd -:回到上一次所在目录

    cd ..:回到当前目录的上一级目录

    cd -P:跳转到实际物理路径,而非快捷方式路径

    mkdir

    mkdir:创建一个目录(例:mkdir abc

    mkdir -p:创建一个多级目录(例:mkdir -p abc/def

    rmdir

    删除一个空的文件夹

    touch

    创建空文件(例:touch a.txt

    cp

    cp:复制文件(例:cp /home/a/b.txt /home/x/

    cp -r:递归复制整个文件夹(例:cp -r /home/a/b /home/x/

    rm

    rm -r:递归删除目录中所有内容

    rm -f:强制执行删除操作,而不提示用于进行确认。

    rm -v:显示指令的详细执行过程

    mv

    mv oldNameFile newNameFile      (功能描述:重命名)

    mv /temp/movefile /targetFolder  (功能描述:递归移动文件)

    cat

    查看文件内容,从第一行开始显示。

    cat -n:显示所有行的行号,包括空行。

    more

    空白键 (space):代表向下翻一页;

    Enter: 代表向下翻『一行』;

    q:代表立刻离开 more ,不再显示该文件内容。

    Ctrl+F:向下滚动一屏

    Ctrl+B:返回上一屏

    =:输出当前行的行号

    :f:输出文件名和当前行的行号

    echo

    echo输出内容到控制台

    head

    head用于显示文件的开头部分内容。默认情况下head指令显示文件的前10行内容。

    head -n 10 文件(查看文件头10行内容,10可以是任意行数)

    tail

    tail  -n 5 文件(查看文件头5行内容,5可以是任意行数)

    tail  -f  文件    (功能描述:实时追踪该档的所有更新)

    cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2

    >> 

    echo “内容” >> 文件

    ln软链接

    ln -s [原文件] [目标文件]:(功能描述:给原文件创建一个软链接,软链接存放在目标文件目录,例:ln -s xiyou/dssz/houge.txt ./houzi

    删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ (例:rm -rf houzi

    进入软连接实际物理路径(例:cd -P dssz/

    history

    查看已经执行过历史命令

    5.3. 时间日期类

    date显示当前时间:

    date

    显示当前时间

    date +%Y

    显示当前年份

    date +%m

    显示当前月份

    date +%d

    显示当前是哪一天

    date "+%Y-%m-%d %H:%M:%S"

    显示年月日时分秒

     date显示非当前时间:

    date -d '1 days ago'

    显示前一天日期

    date -d '-1 days ago'

    显示明天时间

    设置系统时间:

    date -s "2017-06-19 20:52:18"

    设置系统当前时间

    cat查看日历:

    cal

    查看当前月的日历

    cal -3

    查看当前月、前一个月和后一个月的日历

    cal 2017

    查看2017年的日历

    5.4. 用户管理命令

    useradd

    useradd 用户名 (功能描述:添加新用户)

    useradd -g 组名 用户名 (功能描述:添加新用户到某个组)

    passwd

    passwd 用户名  (功能描述:设置用户密码)

    id

    id 用户名    (功能描述:查看用户是否存在)

    su

    su 用户名称(切换用户,只能获得用户的执行权限,不能获得环境变量)

    su - 用户名称(切换到用户并获得该用户的环境变量及执行权限)

    userdel

    userdel  用户名       (功能描述:删除用户但保存用户主目录)

    userdel -r 用户名     (功能描述:用户和用户主目录,都删除)

    who

    whoami            (功能描述:显示自身用户名称)

    who am i             (功能描述:显示登录用户的用户名)

    cat

    cat  /etc/passwd      (功能描述:查看创建了哪些用户)

    usermod

    usermod -g 用户组 用户名   (功能描述:将用户加入到用户组)

    5.5. 用户管理组命令

    groupadd

    groupadd 组名   (功能描述:新增组)

    groupdel

    groupdel 组名    (功能描述:删除组)

    groupmod

    groupmod -n 新组名 老组名       (功能描述:修改组)

    cat

    cat  /etc/group (功能描述:查看创建了哪些组)

    5.6. 文件权限类

    1. 文件属性:

    a) 一个文件或者文件夹的属性具体含义如下图所示:

      

        如果查看到是文件:链接数指的是硬链接个数,创建硬链接方法:ln [原文件] [目标文件](例:ln sunhouzi/shz.txt ./shz.txt)

        如果查看的是文件夹:链接数指的是子文件夹个数。

      b) 从左到右的10个字符的具体含义如下图所示:  

          

      c) 0首位表示类型:

        - 代表文件

             d 代表目录

             l 链接文档(link file)

      d) 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

      e) 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

      f) 第7-9位确定其他用户拥有该文件的权限 ---Other

    2. chmod改变权限

      a) 基本语法:

        chmod  [{ugoa}{+-=}{rwx}] 文件或目录

        chmod  [mode=421 ]  [文件或目录]

      b) 经验技巧:

        u:所有者  g:所有组  o:其他人  a:所有人(u、g、o的总和)

        r=4 w=2 x=1        rwx=4+2+1=7

      c) 示例:

        chmod u+x test1.java

        chmod g+x test1.java

        chmod -R 777 testdir

    3. chown改变所有者

      a) 基本语法:

        chown [选项] [最终用户] [文件或目录]            (功能描述:改变文件或者目录的所有者,-R:表示递归修改文件夹中的所有文件)

      b) 示例:

        修改文件所有者:chown atguigu test1.java

        递归改变文件所有者和所有组:chown -R atguigu:atguigu sunhouzi/

    4. chgrp改变所属组:
      a) 基本语法:
        chgrp [最终用户组] [文件或目录]
      b) 示例:
        修改文件的所属组:chgrp atguigu test1.java

    5.7. 磁盘分区类

    1. df查看硬盘:

      基本语法:df  选项       (功能描述:列出文件系统的整体磁盘使用量)

      选项说明:-h 以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示

    2. fdisk查看分区:

      基本语法:fdisk -l                  (功能描述:查看磁盘分区详情)

      选项说明:-l                        显示所有硬盘的分区列表

      经验技巧:该命令必须在root用户下才能使用

      功能说明:(Device:分区序列) (Blocks:容量)

    5.8. 搜索查找类

    1. find 查找文件或者目录(find [搜索范围] [选项]):

      a) -name<查询方式>:按照指定的文件名查找模式查找文件

        例:find /opt/ -name *.txt

      b) -user<用户名>:查找属于指定用户名所有文件

        例:find /opt/ -user atguigu

      c) -size<文件大小>:按照指定的文件大小查找文件

        按文件大小:在目录下查找大于n兆的文件(+n 大于  -n小于  n等于)

        例:find /home -size +204800

    2. grep 过滤查找及“|”管道符:

      a) 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

      b) 基本语法:grep 选项 查找内容 源文件

      c) 选项说明:-n显示匹配行及行号

      d) 示例操作:查找某文件在第几行        ls | grep -n test

    5.9. 进程线程类

    进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

    1. ps查看系统中所有进程:

    基本语法

    ps -aux | grep xxx

    查看系统中所有进程

    ps -ef | grep xxx 

    可以查看子父进程之间的关系

    选项说明

    -a

    选择所有进程

    -u

    显示所有用户的所有进程

    -x

    显示没有终端的进程

    ps -aux显示信息说明

    %CPU

    该进程占用CPU资源的百分比,占用越高,进程越耗费资源

    %MEM

    该进程占用物理内存的百分比,占用越高,进程越耗费资源

    VSZ

    该进程占用虚拟内存的大小,单位KB

    RSS

    该进程占用实际物理内存的大小,单位KB

    STAT

    进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台

    ps -ef显示信息说明

    UID

    用户ID

    PID

    进程ID

    PPID

    父进程ID

    2. kill终止进程

    基本语法

    kill  [选项] 进程号

    通过进程号杀死进程

    killall 进程名称

    通过进程名称杀死进程

    选项说明

    -9

    表示强迫进程立即停止

    实例操作

    杀死指定进程号

    kill -9 5102

    通过进程名称杀死进程

    killall firefox

    3. pstree查看进程树:

    基本语法

    pstree [选项]

    选项说明

    -p

    显示进程的PID

    -u

    显示进程的所属用户

    实例操作

    显示进程pid

    pstree -p

    显示进程所属用户

    pstree -u

    4. top 查看系统健康状态:

    基本命令

    top [选项]   

    选项说明

    -d 秒数

    指定top命令每隔几秒更新。默认是3秒

    操作说明

    P

    以CPU使用率排序,默认就是此项

    M

    以内存的使用率排序

    N

    以PID排序

    q

    退出top

      在第2行中zombie为僵尸进程,如果不是0,需要手工检查僵尸进程。

    5. netstat显示网络统计信息:

    基本语法

    netstat -anp

    用来显示整个系统目前的网络情况

    选项说明

    -an

    按一定顺序排列输出

    -p

    表示显示哪个进程在调用

    实例操作

    查看端口50070的使用情况

    netstat -anp | grep 50070

    5.10. 压缩和解压类

    在Linux中压缩和解压有gzip/gunzip压缩,zip/unzip压缩和tar打包等方法,但在大数据中一般不会使用这些,有自己的压缩和解压方法,但在网络上下载的Linux的文件一般使用tar解压,所以只要对tar有所了解就够了。

    基本语法

    tar  [选项]  XXX.tar.gz  将要打包进去的内容

    选项说明

    -c

    产生.tar打包文件

    -v

    显示详细信息

    -f

    指定压缩后的文件名

    -z

    打包同时压缩

    -x

    解包.tar文件

    实例操作

    压缩多个文件

    tar -zcvf test.tar.gz test1.java test.java

    压缩目录

    tar -zcvf test.java.tar.gz test1

    解压到当前目录

    tar -zxvf test.tar.gz

    解压到指定目录

    tar -zxvf test.tar.gz -C /opt

    5.11. crond系统定时任务

    1. 选项说明:

    选项

    功能

    -e

    编辑crontab定时任务

    -l

    查询crontab任务

    -r

    删除当前用户所有的crontab任务

      2. 参数说明:  

      

    3. 具体操作:

    时间 

    含义

    45 22 * * * 命令

    在22点45分执行命令

    0 17 * * 1 命令

    每周1 的17点0分执行命令

    0 5 1,15 * * 命令

    每月1号和15号的凌晨5点0分执行命令

    40 4 * * 1-5 命令

    每周一到周五的凌晨4点40分执行命令

    */10 4 * * * 命令

    每天的凌晨4点,每隔10分钟执行一次命令

    0 0 1,15 * 1 命令

    每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

      4. 重启crontab,启动定时任务:

        /bin/systemctl restart crond.service     或          service crond restart

    6. 软件包管理

    6.1. RPM软件包

    1. RPM概述:

      RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。RPM包的名称格式如下:

      Apache-1.3.23-11.i386.rpm

        -       “apache” 软件名称

        -       “1.3.23-11”软件的版本号,主版本和此版本

        -       “i386”是软件所运行的硬件平台

        -       “rpm”文件扩展名,代表RPM包

    2. RPM查询命令:

      a) 基本语法:rpm -qa                (功能描述:查询所安装的所有rpm软件包)

      b) 经验技巧:由于软件包较多,会采取过滤。rpm -qa | grep rpm软件包

      c) 查询firefox软件安装情况:rpm -qa |grep firefox

    3. RPM卸载命令:

      a) 基本语法:(1) rpm -e RPM软件包     (2) rpm -e --nodeps 软件包 

      b) 选项说明:

        -e:卸载软件包

        --nodeps:卸载软件时,不检查依赖(比较少使用)

      c) 实例操作:卸载firefox软件       rpm -e firefox

    4. RPM安装命令:

      a) 基本语法:rpm -ivh RPM包全名

      b) 安装firefox软件:rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm

  • 相关阅读:
    提升树在回归方法中的应用
    前向分布算法
    提升树
    AdaBoost算法学习笔记
    统计学习方法-提升方法
    序列最小最优化算法
    mysql-profiling详解
    mysql,简单介绍一下索引
    MySQL Explain详解
    spring的事务传播行为
  • 原文地址:https://www.cnblogs.com/yangshibiao/p/11414072.html
Copyright © 2011-2022 走看看