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字样

  

posted @ 2018-07-27 11:58  gqb00  阅读(119)  评论(0编辑  收藏  举报