Linux 全阶段

linux 1

一:Linux操作系统简述

    Linux操作系统是由内核(Kernel)、外壳(Shell)、实用工具。

    Linux包括很多发行版,比如:Debian、Ubuntu(是在Debian的基础上衍生出来的)、

                        Redhat等等。


    Linux内核的主要功能:

    1.进程调度

      负责给不同的进程分配CPU资源。

    2.内存管理

      负责给不同的进程分配内存,Linux操作系统还支持虚拟内存。

    3.网络接口

      具体实现网络协议标准。

    4.虚拟文件系统

      通过操作虚拟文件系统可以读取、存储硬盘上的数据。

    5.进程间通信

      实现进程之间交换数据、通信的功能。

二:Linux中的文件系统

    Linux中所有的文件都在根目录(/)下,Linux文件系统就是一个树形结构的系统,

    “树根”就是根目录(/)。

三:常用命令:

    Linux命令的一般格式:

    命令 [-选项] [参数]

    eg: ls -l

        ls -l /dev/sd*  # 查看/dev目录下的以sd开头的设备文件名

        which 命令名

        who  查看当前登录用户

        pwd    #  用来显示当前所在的工作目录

        ifconfig  # 查看ip地址

        init 0  # 关机

四:硬盘分区(fdisk)、格式化(mkfs)、挂载(mount)

    1.分区:

    新添加的硬盘首先应该进行分区,分区的过程中有三种类型的分区可供选择:

    主分区(最多4个)、扩展分区、逻辑分区(逻辑分区的序号从5开始)。

    2.格式化:

    将分区添加到文件系统中

    3.挂载:

    通过操作挂载点(mount point)来操作硬盘分区。

    挂载点是一个空目录。


    具体操作:

    查看某块硬盘的分区表:eg:  fdisk -l /dev/sda  # 查看第一块SCSI类型硬盘的分区表

    例:对新添加的/dev/sdb  硬盘进行分区、格式化、挂载


    fdisk /dev/sdb  对sdb硬盘进行分区

    mkfs -t ext4 /dev/sdb1  将sdb1分区创建为ext4类型的文件系统

    mkfs.ext4 /dev/sdb2  将sdb2分区创建为ext4类型的文件系统

    mkdir /mnt/sdb1 创建一个空目录,作为/dev/sdb1分区的挂载点

    mount /dev/sdb1 /mnt/sdb1  将/dev/sdb1分区挂载到/mnt/sdb1挂载点,以后操作

                          /mnt/sdb1目录(挂载点)就相当于操作/dev/sdb1分区。

五:apt-get命令操作软件包

    apt-get install 软件包包名  # 安装指定名称的软件包

    源文件:/etc/apt/sources.list

    apt-get remove 软件包包名  # 删除指定名称的软件包

六:安装VMware Tools工具

    可以将Windows文件粘贴到虚拟机上,虚拟机上还可以全屏显示。


=======================================================================================


linux 2

一:NAT

    NAT(Net Address Translation):网络地址转换。用来与主机共享同一个IP。

二:apt-get使用

    apt-get install 软件包名

    apt-get remove 软件包名

    apt源:/etc/apt/sources.list

    解决vi编辑文本时上下键、回退键错乱的问题:

    apt-get remove vim-common

    apt-get install vim

三:主目录(home目录)与工作目录

    主目录(home目录):在创建用户时,由系统管理员给用户分配的目录,每个用户

                    都有自己的主目录。一般主目录是:/home/登录名,但是root用户

                    的主目录是/root。

    工作目录:用户当前所在的目录。

四:绝对路径与相对路径

    绝对路径:从根目录(/)开始的路径为绝对路径,绝对路径一定是以"/"开头的。

    相对路径:相对于当前工作目录的路径。   

    几个命令:

    显示当前工作目录: pwd

    改变目录:cd 目标目录

        返回上级目录: cd ..

        返回主目录(家目录):cd ~

五:目录的常用操作:

    1. mkdir 要创建的目录

      mkdir -p 要创建的目录    # 如果父目录不存在,则创建相应的父目录

两年

    2. 删除目录

      rm -d 目录名  # 删除空目录

      rm -r 目录名  # 删除目录和它所包含的内容(递归删除)

六:文件的常用操作

    1. touch 文件名[,可以创建多个文件]  # 创建文件

      创建完文件后,可以对该文件进行编辑,编辑方法:

      vi 文件名

            输入a,进入编辑模式,编辑文本;

            写入并退出,先按Esc键,再输入冒号":",在冒号后输入wq。

            退出不保存:q!

    2. cat 文件名    # 显示文件的内容

    3. cp [选项] 源文件或目录 目标文件或目录

      eg: 将apt源拷贝到当前目录下

          cp  /etc/apt/sources.list  ./

          将当前工作目录下的a.txt拷贝到a2.txt

          cp a.txt a2.txt

          将/etc/apt目录拷贝到当前目录下

          cp -rf /etc/apt  ./

    4.rm [选项] 文件或目录

      eg:删除当前目录下的a.txt文件

          rm a.txt

    5.ln [选项] 源文件或目录  链接文件或目录

        软链接(-s):别名“符号链接”,本身几乎不占用空间。

                    相当于“快捷方式”,可以通过软链接方便的访问文件或目录。 


        eg:  在当前目录下创建一个名为mycp的软链接。

              ln -s /bin/cp mycp

              然后,使用创建好的mycp软链接进行拷贝操作:

                ./mycp a.txt a2.txt

        硬链接:与源文件占有的空间相同,不能给目录创建硬链接。

      6.mv移动命令

          mv 源文件 目标文件    # 剪切并给源文件重命名

          mv 源文件... 目标目录    # 将多个文件剪切到目标目录中

          mv [选项]... -t 目标目录 源文件...  # 同上

      7.tar压缩和解压缩命令

        压缩命令: tar [选项] 创建的压缩文件  要压缩的目录

                选项解释: c:创建新归档文件

                          v:显示详细信息

                          f:使用归档文件

                          z:调用gzip实现压缩

            例如:将当面目录下的test3目录压缩为mytest.tar.gz压缩文件

            tar -cvzf mytest.tar.gz test3

        解压缩命令:

          tar [选项] 待解压缩的文件

            选项解释:  x :用来解压缩

      8. grep查找

        例如:查找出当前目录下文件名(或目录名)中含有'y'的文件或目录

              ls | grep 'y'

              其中,竖线|为“管道符”,“管道符”的作用是将前面命令的执行

              结果作为后面命令的源。

      9. find命令

        find 路径 [选项] 


        例如:从根目录下查找文件扩展名为txt的文件

        find / -name *.txt

        从根目录下查找文件扩展名为txt的文件,并对查找出的文件进行长格式显示

        find / -name *.txt  -exec ls -l {} \;

  =================================================================================         

    linux 3

    一:用户的管理

    三个重要的配置文件:

    1. /etc/passwd  # 该配置文件的每一行配置的是用户的信息

    2. /etc/shadow  # 该配置文件中存储有每个用户加密后的密码

    3. /etc/group  # 该配置文件中存储了用户组信息

    添加用户的方法:

    方法一: useradd [选项] 用户名

            选项: -c  备注

                    -d  home目录

                    -s  shell程序

                    -g  用户的主组(初始组)

                    -G  用户的附加组

                    -m  创建主目录(家目录) 注意:-m必须添加

                    -u  新用户的id

            新创建的用户必须设置密码,才能进行登录,设置(更改)密码的命令:

            passwd 用户名

    方法二:adduser 用户名

            用这种方式创建用户,会以交互的方式创建其他信息。

    删除用户的方法:

    userdel [选项]  用户名

    选项:-r 删除用户的主目录和邮件池

          -f 强制删除

    修改用户的方法:

    usermod [选项] 用户名

      选项:-u  用户id

            -g  用户的主组

            -G  用户的附加组 


    例如:将alice用户的id修改为1008,主组修改为sport_group

    usermod -u 1008 -g sport_group alice

    注意:用户的主组只能有一个,但用户的附加组可以有多个

二:用户组的管理

    1. 用户组的创建

      groupadd [选项] 用户组名

          选项:

              -g  :用来显式指定新建组的组id。

    2. 将用户添加到组中

      gpasswd -a 用户名 组名

    3. 将用户从指定组中删除

      gpasswd -d 用户名 组名


    4. 查看用户所在的全部组

      groups [用户名]

    5. 删除组

      groupdel 组名

    6. 修改组

      groupmod [选项] 组名

      选项: -g 用来修改组id

              -n 用来修改组名

      eg:将组id改为9529

          groupmod -g 9529 sport_group


          将组名改为my_sport_group

          groupmod -n my_sport_group sport_group

三:文件和目录的权限

    1. chmod [选项]... 模式[,模式]... 文件...

        注意:

            u:文件所属用户

            g:文件所属的组

            o:其他用户

            a:所有用户

        对于目录,执行权限(x)决定了能否进入该目录。

        chmod [选项]... 八进制模式 文件...

        每个八进制数字可以拆分成三个二进制位

        例如:chmod 345 a.txt

              最终的权限位为: -wxr--r-x

    2. chown改变所属用户或用户组

      chown 新所属用户:新所属用户组  文件或目录

  思考:newgrp命令、chgrp命令的用法


linux  4


一:查看文本信息命令

    1. cat命令

      显示文本文件的内容:cat [选项] 文件名称[,...]

                          选项:-n  #输出行号

      进行文件内容的合并:cat [选项] 文件名1 文件名2 ... > 合并后的文件名

      通过键盘输入文本内容: cat > 文本内容保存的文件名

    2. more命令

      more [选项] 文件名

        注意:“回车键”显示下一行

              “空格键”显示下一屏

              "q"退出

    3. less命令

      less [选项] 文件名

      可以使用“上下键”进行查阅

    例子:

    find / | more  # 分屏显示根目录的系统路径 

    find / | less  # 分屏显示根目录的系统路径,使用less进行查看(可以使用“上下键”)

    cat /proc/cpuinfo | more # 分屏显示cpu信息

    cat /proc/meminfo | more # 分屏显示内存信息

    4. head命令

      head命令用来从头显示若干行,默认10行

      head [选项] 文件名

      例如:显示kern.log的前5行内容

            head -n 5 kern.log

            如果要在显示的内容前加上行号,则:head -n 5 kern.log | cat -n

            另一种写法显示前5行内容:

            head -5 kern.log

    5. tail命令

        tail命令用来从末尾显示若干行,默认10行

        tail [选项] 文件名

    6. gedit命令

        可以随意编辑

二:vi编辑器

    使用"vi 文件名"可以对一个文件进行编辑。

    使用vi编辑文件的过程中有三种模式:一般模式、编辑模式(输入模式)、命令模式。

    如何从一般模式进入编辑模式:按a或i键进入。

    如何从编辑模式进入命令模式:先按Esc键,再按输入冒号":",

    输入相应命令:w写入、q退出、!不保存。

    一般模式下的常用快捷键:

    x:删除光标位置的字符

    X:删除光标前面的字符

    dd:删除当前行

    D:删除从光标所在字符至行尾的内容

    $:将光标移动至当前行的末尾

    ^:将光标移动至当前行的开头

    G:光标跳转至最后一行的行首

    y$:从光标处开始复制到行尾

    p: 粘贴

三:VMWare的两个连接网络模式

    1. NAT模式

      当访问网络时,共享的是物理机IP。

    2. 桥接模式

      IP地址与主机互相独立,虚拟机相当于一台独立的机器。

四:安装SSH服务的步骤与使用

  安装ssh服务:

  sudo apt-get install openssh-server

  启动ssh服务:

  sudo service ssh start

  查看ssh服务是否启动:

  sudo service ssh status

  关闭防火墙:

  ufw disable

  使用SSH远程连接:

  ssh 要连接的用户名@连接用户所在的IP地址

思考:如何从vi搜索某些文本?

      进入一般模式后,直接按斜杠(/),斜杠后面输入要搜索的目标文本,

      按“Enter回车键”找到第一个符合搜索条件的文本,之后,按"n"查找

      下一个(按"N"查找上一个)。

      head -3 a.txt > b.txt



Linux   5

一:Shell介绍

    Shell是用户与内核之间的桥梁,也可以当作操作系统中的编程语言。

    Shell与用户交互的模式:在交互环境下每次执行一条命令;通过编写Shell脚本的方式。

二:Shell的编写与执行

    1. Shell解释器  #!解释器

    2. Shell的变量类型

        环境变量:  Shell环境下已经存在的一些系统变量,eg:PWD、UID、PATH。

        自定义变量:变量名=变量值    # 自定义变量等号两边不能加空格

        预定义变量:$0  当前执行的shell脚本的程序名

                    $1 $2 .... $n  代表第一个、第二个...第n个位置参数的值

                    $#  传递的位置参数的个数

                    $*  所有位置参数的值

                    $?  返回上一条命令是否执行成功,成功为0,失败为非0。

    3.Shell脚本执行方式:

      方式一:直接通过脚本文件的位置执行  (必须添加x执行权限)

      方式二:sh 脚本文件位置

      方式三:source 脚本文件位置

三:Shell的程序流程控制

    1. if条件判断语法:

      if [ 判断条件表达式 ]

      then

          # 测试通过执行此处脚本

      else

          # 测试未通过,在此执行脚本

      fi

      注意:文件判断的常用选项:-d 是否为目录

                                -f 是否为文件

                                -e 是否存在

    2. for循环语句

      for 循环变量 in 表达式

      do

          # 循环内容

      done

    3. while循环语句

      while [ 判断条件表达式 ]

      do

          # 循环内容

      done

四:计划定时任务

    1. 使用crontab命令操作定时任务,crontab的常用选项:

    -e : 编辑当前用户的定时任务文件

    -r : 删除当前用户的定时任务

    -l : 列出当前用户的所有任务

    如果当前用户要编辑其他用户的定时任务,则需要有root权限(sudo),而且

    需要指定-u选项。eg: sudo crontab -u jerry -e

    注意:每个用户都有自己的定时任务文件。

    用户定时任务文件:

    m  h    dom  mon  dow  command

    32  */2    *    *    *    date >> /home/jerry/jerrylog.txt 

    意思是:每天间隔2小时的32分,将当前时间写入对应的文件

    2.如果要执行以root用户权限执行的任务,应该在/etc/crontab文件下加入任务,

      user字段填写root就可以用root权限执行。

    3./etc/cron.daily 每天都会执行该目录下的所有脚本

      /etc/cron.weekly 每周都会执行该目录下的所有脚本

      /etc/cron.monthly 每月都会执行该目录下的所有脚本

Linux  6

一:Git简述与基本配置

    Git是一个分布式的版本控制工具,简单易用。

    Git全局配置:

    git config --global user.name "用户名"    # 配置使用Git的用户名

    git config --global user.email "邮箱"    # 配置使用Git的邮箱

    git config --global color.ui  true    # 配置颜色提示为打开状态

    git config -l # 查看当前所有的git配置

二:Git的操作:

    1.  git init 工作区目录名

        使用该命令可以创建并初始化一个工作区,以目录的形式出现。

        在工作区的根目录下,有一个.git目录(版本库,或本地仓库)

    2.  git add 添加到暂存区的内容

        使用该命令可以将工作区中相关内容的改动添加到暂存区。

    3.  git commit -m "提交信息"

        将暂存区中的内容提交到本地某个分支上

        注意:在工作区中修改的内容不能直接commit提交,但可以使用

              git commit -a -m "提交信息"一个命令既添加到暂存区,紧接着

              提交到本地仓库分支上,但不建议这样使用。

    4. git log

      该命令用来查看提交日志,可以使用git log --pretty=oneline的方式显示

      简短的提交日志。

    5. git status

      操作git的状态

    6. git reset

      git reset的作用是重置提交id(commit id)。

      该命令有两个常用的参数:

      --soft : 重置提交id,但并不修改暂存区和工作区的内容。

      --hard : 重置提交id,并且将暂存区和工作区的内容强制恢复到当前

                重置commit id状态。该命令很危险!

      例如:git reset --soft HEAD~1  # 将当前commit id重置到上一次提交,但并

                                        不修改工作区与暂存区的内容。


            git reset --hard 701162444b6aabc25e3b56ddff645cc3214b6956

            # 将当前提交id重置为"7011xxx"的状态,并强制工作区与

              暂存区的内容恢复到该提交id的状态。

      特别注意:一旦使用git reset的--hard参数,则工作区和暂存区将强制恢复。

                如果后悔了,可以使用git reflog来查看所有的提交(commit)和重置(reset)日志。

三:GitHub

    GitHub是一个代码托管网站。

    1.在本地操作系统(Linux)上使用命令创建密钥

      ssh-keygen -t rsa -C "邮箱"

    2.寻找id_rsa.pub文件里面存放的“公钥”,将其复制到GitHub上自己的帐号里(SSH keys)里。

    3.在GitHub上创建一个远程仓库,选中“Initialize this repository with a README”复选框。

    4.在本地进行git clone "远程仓库的地址"操作,在本地创建一个与远程仓库对应的仓库。

    5.cd "克隆下来的目录(本地仓库)"

    6.git remote add 远程主机名(习惯上origin) 远程仓库的ip  # 将远程仓库与本地仓库进行关联

    7.在本地仓库中进行开发(git add 、git commit)

    8.git push -u origin master  # 将本地仓库的修改推送到远程仓库

四:git分支管理

    git branch 新建分支名  # 创建新分支

    git branch  # 查看所有分支

    git checkout 分支名    # 切换分支

    git checkout -b 新建分支名  # 新建一个分支后,直接切换到该新建分支

    git merge 合并分支名  # 将某个分支的成果合并到当前分支

    思考:git pull 与 git fetch的区别?如何故意制造冲突?

五:补充

    git diff 对比暂存和工作区内容差异

    git diff --cached 对比本地库和暂存区差异

 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容