zoukankan      html  css  js  c++  java
  • Linux基础

    学习过程参考  http://www.runoob.com/linux

    1.Linux系统启动过程

    •  内核的引导 : 计算机打开电源后,首先BIOS自检,按照BIOS中的设置启动,读入/boot下的内核文件
    •  运行init: 运行init程序,在/etc/inittab 中读取配置文件,运行守护进程(服务)
    • 系统初始化: 调用执行rc.sysinit 脚本(激活交换分区,检查磁盘,加载硬件模块,及其他任务)
    • 建立终端: rc执行完毕后,返回init。init就会打开六个终端,以便用户登入系统
    • 用户登录系统:分为三种命令行登陆,ssh登陆,图形界面登陆。我们默认登录的是第一个终端或者图形界面终端

    2.Linux目录结构

      在命令行窗口输入  ls /  显示目录

    • /bin  Binary的缩写,存放着经常使用的指令
    • /boot  存放Linux启动时需要的一些核心文件(连接文件和镜像文件等)
    • /dev  Device的缩写,存放外部设备(访问方式和访问文件的方式是相同的)
    • /etc  存放所有管理系统所需要的配置文件和子目录
    • /home  用户主目录,以用户名命名
    • /lib  存放系统最基本的动态链接共享库
    • /lost+found  存放系统非法关机时生成的文件
    • /media  当插入U盘或光驱时,系统识别后z自动挂载到本目录下
    • /mnt  Mount的缩写,挂载光驱,U盘或者别的文件系统
    • /opt  存放主机额外安装的软件
    • /proc  虚拟目录,是系统内存的映射,可以直接访问并修改其中的信息,存在于内存而不是硬盘中
    • /root  系统管理员的用户主目录
    • /sbin  s代表SuperUser,存放系统管理员所使用的系统管理程序
    • /selinux Redhat/CentOS特有的目录,类似于windows防火墙
    • /srv 存放一些服务启动之后需要提取的数据
    • /usr 存放用户的应用程序和文件。  /bin 系统用户使用的的应用程序;/src  存放内核源码
    • /var 存放着不断扩充的东西。包括各种日志文件

      /表示根目录;. 表示当前目录

      如果一个目录/文件以 . 开始,即表示他是一个隐藏目录/文件,按默认方式查找时不显示。

    3.Linux远程登录

       通过ssh服务实现远程登录功能,默认ssh服务端口号为22

       安装ssh :  

    yum install ssh

       启动ssh:

    service sshd start

      登陆:

    ssh -p 端口号 用户名@IP
    回车输入密码

    4.Linux文件与目录:

    文件类型              属主权限(u)             属组权限(g)            其他用户权限(o)
         0               1   2   3             4   5   6             7     8      9
         d               r    w  x             r    w   x            r      w      x
    
    当没有此权限是为 - 
    
    chgrp  更改文件属组   chgrp [-R] 组名 文件名    更改属组为目标组名,加上-R为递归改变下属所有目录/文件属组
    chown  可以更改文件属主     更改属主为目标用户,加上-R为递归改变下属所有目录/文件属主
    chmod 更改文件九个属性 如 chomd 777 .bashrc ls -al .bashrc
    -rwxrwxrwx 1 root ...........
    //表示吧。bashrc的九个权限属性改为了rwxrwxrwx //其中r:4 w:2 x:1 //[4+2+1][4+2+1][4+2+1]=rwxrwxrwx
    或者chomd u=rwx,g=rx,o=r .bashrc
    ls -al .bashrc
    -rwxr-xr-- 1 root............... 在Windows底下一个文件是否具有执行的能力是由文件名来判断的,例如:.exe, .bat, .com等等,但是在Linux底下,我们的文件是否能被执行,则是由是否具有x这个权限来决定的!跟文件名是没有绝对的关系的
    类型 r w x
    目录 读取目录下的文件资料

    建立新的文件和目录

    删除已经存在的文件和目录(不论该文件或目录权限如何)

    更改文件或目录名称

    移动该目录内文件和目录位置

    授权进入该目录
    文件 读取文件内容 修改文件内容 执行文件内容
    操作动作 /dir1 /dir1/file1 /dir2 重点
    读取file1 内容 x r - 要能够进入/dir1 才能读到里面的文件资料
    修改file1 内容 x rw - 能够进入/dir1 且修改file1 
    执行file1 内容 x rx - 能够进入/dir1 且file1 能执行
    删除file1 文件 wx - - 能够进入/dir1 具有目录修改的权限即可
    将file1 复制到/dir2 x r wx 要能够读file1 且能够修改/dir2 内的资料

      相对路径  如由 /usr/share/doc 到 /usr/share/man 时,写成: cd ../man

      5.常用命令:

          date  显示当前时间     cal [month] [year]    显示当前月(指定月)的日历 

    • ls 列出目录   -a:列出包含隐藏文件的全部文件;-d:仅列出目录本身,不包含目录内文件数据  -l:包含文件的属性与权限等等数据  -li 可以在-l的基础上多列出一个索引节点号
    • ll  列出目录,包含隐藏文件,包含文件的属性与权限等等数据
    • find 查找文件或目录  -name 文件名:通过名字查找整个目录树
    • cd 切换目录
    • pwd 显示当前目录   -p:显示出绝对路径
    • mkdir 创建一个新的目录   -m:配置文件的权限   -p:可以直接递归创建所有需要的目录
    • rmdir  删除一个空的目录     -p:连同上一级空目录也删除
    • cp 复制文件或目录  -i:进行操作之前会询问
    • rm 移除文件或目录  -i:进行操作之前会询问
    • mv 移动文件到某个目录 或修改目录名称
    • *************************查询命令**************************
    • cat 从第一行开始查看文件内容   -A-b-E-n-T-v
    • wc  查看文件Byte数,字数,列数     wc 选项 文件名: -C 显示Byte数    -l 显示行数   -w 显示字数,若不加文件名,则会从stdin读取数据
    • tac  从最后一行开始查看文件内容
    • nl   显示时输出行号
    • more 一页一页地显示文件内容    按space向下翻页;按Enter向下翻一行; /字串 代表向下搜寻【字串】这个关键字;按q 离开more
    • less  和more类似 但是可以往前翻页
    • head 只看头几行,默认显示十行(包括空行)      -n 数字   表示显示【数字】行
    • tail   只看尾几行,默认显示十行(包括空行)  -n 数字   表示显示【数字】行

       强制解锁命令:当遇到 无法获得锁 /var/lib/dpkg/lock - open和 无法锁定管理目录(/var/lib/dpkg/) 时有以下解决办法

    • 输入 ps  -aux ,列出进程,找到含有apt-get的进程,直接sudo kill PID。
    •  sudo rm /var/cache/apt/archives/lock    sudo rm /var/lib/dpkg/lock  

        可以用man 命令 来查看其使用文档

         [Tab]按键:命令补全  在命令xxx后连按两下会输出所有以xxx开头的命令    文件补全   在文件名后连按两下会输出所有以 此名字开头的文件。

         要看目前有谁在线上,『who』;而如果要看网路的连线状态,『 netstat -a 』;而要看背景执行的程序可以执行『 ps -aux 』。     

    6.Linux链接:

        硬链接 :通过索引节点来进行连接,允许一个文件拥有多个有效路径名

        软连接:符号链接,相当于windows快捷方式,可以理解为指针,引用

    7.Linux用户与用户组

        多用户多任务分时操作系统

        用户账号:控制对系统资源的访问和帮助用户组织文件,提供安全性保护

    • 添加账户
      useradd 选项 用户名
          选项  -c      指定一段注释性描述
                  -d 目录       指定用户目录
                  -g 用户组         指定用户所属用户组 -G 用户组   指定附加组
                  -s Shell文件         指定用户的登陆Shell
                  -u 用户号               指定用户的用户号
                  
    • 删除账号
      userdel 选项 用户名      //一般情况不加选项是删除/etc/password等系统文件中该用户记录
         选项  -r  把用户主目录一起删除
    • 修改账号
      usermod 选项 用户名
         选项差不多和useradd中一样,新增 :-l 新用户名   表示把原用户名改为新的
    • 用户口令(密码)
      passwd 选项 用户名
                选项  -l 锁定口令,即禁用账号
                        -u  解锁口令
                        -d    使账户无口令
                        -f     强迫用户下次登录时修改口令

         用户组的管理

    *增加一个用户组   groupadd 选项 用户组 
                                                     选项 -g GID    指定新用户组的组标识号(GID)
                                                            -o    一般与-g同时使用,表示新用户组的GID和 系统已有用户组的GID相同
    
    *删除一个用户组       groupdel 用户组
    
    *修改用户组属性   groupmod 选项 用户组
                                                 选项 -g GID   为用户指定新的GID
                                                        -o
                                                        -n 新用户组名    将用户组改名
    
    *切换用户到其他用户组    newgrp 目标用户组

       与用户账号有关的系统文件

    • /etc/passwd   用cat  /etc/passwd打开,其中每一行记录代表一个用户 格式为
      用户名:口令:用户标识号:组标识号:注释性描述:主目录:登陆Shell

      因为/etc/passwd对所有用户都是可读的,用户口令的加密串存放在/etc/shadow中,而/etc/passwd中的口令字段只存放一个特殊字符“*”或“x”。  用户标识号用来区别用户,如果几个用户名对应用户标识号一样则视为同一个用户,但是他们可有不同的口令,主目录,登陆Shell。  组标识号对应用户所属用户组,对应/etc/group文件中一条记录。  主目录是用户起始工作目录。  Shell是用户与Linux系统之间的接口,登陆Shell默认为/bin/sh,也可以指定为某个特定的程序

    • /etc/shadow  只有超级用户可以访问,存放加密后的口令,其中的记录行与/etc/passwd中的一一对应,格式为
      登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

      登录名与/etc/passwd中的一一对应。     加密口令为13个字符的加密后用户口令字,没有口令则说明对应用户登录时不需要口令,如果有不属于{./1~9a~zA~Z]}中的字符,则不能登陆。       "最小时间间隔"指的是两次修改口令之间所需的最小天数 。        "最大时间间隔"指的是口令保持有效的最大天数 。          "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。        "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。              "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

    • /etc/group   保存用户组所有信息,用来对用户进行管理和控制访问权限,每个用户都属于某个用户组,用户和用户组之间属于多对多的关系。/etc/passwd中存放的是用户主组,当访问属于附加组的文件时用newgrp使自己成为所要访问组的成员。
      组名:口令:组标识号:组内用户列表

      一般情况下,用户组没有口令,为空。            组内用户列表中不同用户之间用 ,隔开

     如何批量添加用户:

    1.   编辑一个文本文件,每一行为一个记录,按照   /etc/passwd格式书写  。
    2. 以root身份执行命令/user/sbin/newusers,从刚创建的users.txt中导入
      newusers < users.txt

      然后使用vipw或vi /etc/passwd检查/etc/passwd中是否出现这些用户,用户主目录是否已经创建。

    3. 执行/usr/sbin/pwunconv,将/etc/shadow中的shadow密码解码,然后写回到/etc/passwd中,并将/etc/shadow中的shadow删掉。
      pwunconv
    4. 编辑密码对照文件,注意顺序,格式为
      用户名:口令

      保存为passwd.txt

    5. 以root身份执行/usr/sbin/chpasswd,会将编码过的密码写入/etc/passwd 密码栏
      chpasswd < passwd.txt
    6. 以root身份执行/usr/sbin/pwconv,将密码经编码写入/etc/shadow
      pwconv

    8.Linux磁盘管理

        常用命令:

    •   df  列出文件系统整体磁盘使用量
      df 选项 目录或文件名
      选项 不加任何选项(只有df) 列出的不包含特殊内存内的文件系统以及swap
      -a 列出所有文件系统
      -k/m 以KB/MB的容量显示各文件系统
      -h 以KB,MB,GB的容量显示各文件系统
      -H 以M=1000k代替M=1024k的进位方式
      -T 显示文件系统类型,连同显示分区的文件系统名称
      -i 不用硬盘容量而用inode数量显示
    • du   对文件和目录 磁盘使用空间的查看,这个命令会直接到文件系统去搜寻所有文件数据2
      du 选项 文件或目录名称
             选项      默认只统计目录下文件量
      -a 列出所有文件与目录容量 -h 以G/M显示 -s 列出总量 -S 列出总量,不包含子目录下的统计 -k/m
    • fdisk [-l] 装置文件名    输出装置的所有分区的内容
    • mkfs [-t 文件系统格式] 装置文件名   格式化磁盘     输入mkfs【Tab】【Tab】    (按两个Tab键后)可以显示mkfs支持的文件格式
    • fsck  磁盘检验
      fsck [-t 文件系统] 选项 装置名称
              -t 给定文件系统格式 若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
              选项     -s   按序执行fsck指令来检查
                        -A   检查/etc/fstab中所有列出来的分区
                        -C    显示完整的检查进度
                        -d    打印出e2fsck的debug结果
                        -p     有-A时同时有多个fsck检查一起运行
                        -R    有-A是省略/不检查
                        -V   详细显示模式
                         -a   检查有错时自动恢复
                         -r   检查有错时由使用者回答恢复
                         -y   在不确定哪些是错误的时候,执行他,会在检测每个文件时自动输入yes
    • mount  磁盘挂载
      mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n]  装置文件名  挂载点
    • umount    磁盘卸载
    umount 选项 装置文件名或挂载点
                 选项    -f  强制卸除
                           -n   不升级/etc/mtab 情况下删除

     9. Linux系统中文件除了实际内容外还包含许多属性,实际数据则放置到 data block 区块中,权限和属性放在inode中,

        inode:记录文件属性,与文件一对一,同时记录该文件数据所在的block,可以用  stat 文件名  查看某个文件inode信息。

    10.vi/vim

       vi:文本编辑器

       vim:  由vi发展而来,具有程序编程能力

      vi/vim有三种模式:命令模式,输入模式,底线命令模式

    • 命令模式:刚启动vim时进入,敲击键盘会被vim识别为命令,按 i 可以切换到输入模式,按 : 切换到底线命令模式,按 x 删除当前光标处所在字符
    • 输入模式:按ESC回到命令模式,按Insert切换光标为输入(竖线)/替换(下划线)模式
    • 底线命令模式:按ESC回到命令模式,按:wq保存文件,退出程序

         直接 vi  文件名.txt 建立一个文件,按 i 进入输入模式,底下有Insert字样

      

  • 相关阅读:
    JAVA DBUTils和连接池
    JAVA jsp技术
    java cookie学习
    grub引导
    更改网卡顺序及名称
    ambari 警告信息
    radhat7.2 救援模式
    radhat7.2 系统引导修复
    sehll编程入门
    HBase安装部署
  • 原文地址:https://www.cnblogs.com/ooffff/p/9312647.html
Copyright © 2011-2022 走看看