美文网首页
Linux养成计划I&II

Linux养成计划I&II

作者: 兔子兔子先生_ | 来源:发表于2016-11-15 15:56 被阅读19次

    Version(common):Red Hat +CentOS

    开源软件(并不一定免费):Apache(Web服务器软件)、Nginx(轻量级Web服务器)、MySQL、php、python、ruby、Sphinx、samba、mongoDB

    Linux应用于企业服务器,嵌入式应用

    Linux和windows的不同:

    1、严格区分大小写

    2、Linux中所有内容以文件形式保存(一切皆文件),包括硬件。

    3、Linux不靠扩展名区分文件类型(靠权限区分类型)

    字符界面的优势:

    1、占用的系统资源更少

    2、减少了出错,被攻击的可能性

    快捷键:

    ctrl+L 清屏      ctrl+c 强制终止当前命令      ctrl+a 光标移动到命令行首 

    ctrl+e 光标移动到命令行尾   ctrl+u 从光标所在位置删除到行首 

    ctrl+z 把命令放入后台    ctrl+r 从历史命令中搜索

    Tab键自动补全功能

    Linux常用命令:

    管理员:root   主机名:localhost    ~:当前所在目录(家目录)  $、#:普通用户/超级用户提示符

    命令格式    [选项]   [参数]

    #命令1:ls [选项] [目录名]

    -a 所有文件  -l 详细信息(ll) -d目录(pwd)-h易理解形式 -t 文件修改时间 -i 显示inode

    列出文件类型 -F  递归目录和子目录中的文件 -R   大到小排序-S

    -rw-r-xr--.  :(-文件类型,-文件、d目录、l软链接文件)

    rw-:u所有者、r-x:g所属组、r--:o其他人    r读  w写  x执行

    #命令2:【改变工作目录】cd [目录路径]  

    cd ~ 进入当前用户的家目录  cd 进入当前用户的家目录  cd - 进入上次目录  cd .. 进入上一级目录

    【创建目录】mkdir [-p] 目录路径名   -p 递归创建,即创建多级目录

    【删除目录】rmdir [-p] 目录路径名

    mkdir -m 777                                               rm -rf /  自杀命令(删除所有Linux文件

    #命令3:【删除文件或目录】rm [参数选项] 文件名  或 目录名              rm -rf

    -i 使系统在删除之前,显示删除确认询问

    -f 直接删除文件或目录,不显示任何警告消息

    -r 删除指定目录及其目录下的所有文件和子目录

    与rmdir只删除空目录不同

    在命令行中可包含一个或多个文件名(各文件间用空格分隔)以实现删除多个文件。

    #命令4:【文件或目录的复制】cp [参数选项] 源文件 目标文件    -a  相当于 -pdr

    -i  :如果目标文件存在,覆盖目标文件时给出提示         -p: 连带文件属性复制

    -r  :复制目录树                           -d:若源文件是链接文件,则复制链接属性

    #命令5:【移动或重命名目录或文件】mv [参数选项] 源目录或文件名    目标目录或文件名

    -i  当目标文件已存在时,显示提示信息

    -b  覆盖已存在的文件前,系统会自动创建原已存在文件的一个备份,备份文件名为原名称后附加一个~符号

    Linux系统没有重命名命令,因此可利用该命令来间接实现

    常见目录的作用:

    1、根目录下的bin和sbin,usr目录下的bin和sbin,都是用来保存系统命令的。

    (bin为普通用户命令)(sbin为超级用户使用的命令)

    2、boot启动目录,启动相关文件。

    3、dev设备文件保存目录。

    4、etc配置文件保存目录。

    5、home普通用户家目录、root 超级用户家目录。

    6、lib系统库保存目录。

    7、(三个空目录用于外接挂载):media(光盘)   mnt(U盘、移动硬盘)   misc(磁带机)

    8、proc和sys目录不能直接操作,这两个目录保存的是内存的挂载点,直接写入内存的。

    9、tmp临时目录

    10、var系统相关文档内容

    #命令6:链接命令生成链接文件   ln  -s  [源文件]  [目标文件] 

    -s  创建软链接

     硬链接特征: .hard

    1、拥有相同的i节点和存储block块,可以看做是同一个文件。

    2、可以通过i节点识别。

    3、不能跨分区。

    4、不能针对目录使用。

    软链接特征: .soft

    1、类似Windows快捷方式

    2、软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据

    3、Irwxrwxrwx          I软链接

    4、修改任意文件,另一个都改变

    5、删除原文件,软链接不能使用

    #命令7:locate  [文件名]          /var/lib/mlocate   后台数据库中按文件名搜索,搜素速度更快

    updatedb 更新数据库,需要root权限

    /etc/updatedb.conf配置文件  文件中四个配置:(locate、whereis和which遵循此规则)

    1、PRUNE_BIND_MOUNTS = "yes"      #开启搜索限制

    2、PRUNEFS =                                  #搜索时,不搜索的文件系统

    3、PRUNENAMES =                           #搜索时,不搜索的文件类型

    4、PRUNEPATHS =                           #搜索时,不搜索的路径

    #命令8:whereis [命令名] (只能查系统命令)  -b  只查找可执行文件      -m   只查找帮助文件

    which  [文件名]  搜索命令所在路径及别名

    *PATH环境变量:定义的是系统搜索命令的路径      # echo $PATH

    #命令9:find 目录路径 搜索选项 动作选项("XX*")

    -name:通过文件名查找文件             -iname:不区分大小写搜索文件名

    -user:通过用户查找文件                  -nouser:查找没有所有者的文件

    -type:类型选项

    -size:通过文件大小查找文件   +20M、-20M(k小写,M大写) 

            -a   逻辑与       -o   逻辑或      

    -inum:通过i节点查找文件

    -atime:通过文件的最后访问日期查找文件        -ctime 改变文件属性 -mtime   修改文件内容

    -mtime:通过文件的最后修改日期查找文件       +10 10 -10 //10天前,10天,10天内

    -newer:查找比指定文件更新的文件

    动作选项

    -print:输入找到的每个文件路径名(默认)

    -exec command {} \:对找到的文件执行command(如,-exec ls -lh {} \ )

    -ok command {} \:执行command前确认

    通配符:  *  匹配任意内容      ?  匹配任意一个字符        []  匹配任意一个中括号内的字符

    #find与grep命令的区别:内容匹配与包含匹配。

    find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹                   配。(搜索文件名称)

    grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表                 达式是包含匹配。(搜索文件中的内容)

    #命令10:grep [选项] 字符串 文件名 

    -i   忽略大小写   -v   排除指定字符串(取反)

    #命令11:帮助命令man。

    #命令12:其他帮助命令

    #命令13:压缩命令

    常用压缩格式: .zip  .gz  .bz2  .tar.gz  .tar.bz2

    zip格式压缩:zip 压缩文件名 源文件         zip -r 压缩文件名 源目录

    zip格式解压缩:unzip 压缩文件

    gz格式压缩:gzip 源文件 (不保留源文件)          gzip -c 源文件 > 压缩文件(源文件保留)

                       gzip -r  目录    (压缩目录下所有子文件,但是不能压缩目录)

    bz2格式压缩:bzip2 源文件(不保留源文件)     bzip2 -k 源文件   (保留源文件)

    bz2格式解压缩:bzip2 -d 压缩文件 (-k保留源文件) bunzip2 压缩文件 (-k保留源文件)

    #打包命令tar:tar -cvf 打包文件名 源文件  // -c:打包  -v:显示过程  -f:指定打包后的文件名

    解打包命令:tar -xvf 打包文件名       //-x:解打包

    tar.gz压缩格式:tar -zcvf  压缩包名.tar.gz  源文件 

    tar.gz解压缩格式:tar -zxvf  压缩包名.tar.gz        

    tar.bz2压缩格式:tar -jcvf  压缩包名.tar.bz2  源文件(多个源文件用空格隔开)

    tar.bz2解压缩格式:tar -jxcf  压缩包名.tar.bz2 

    tar -ztvf  压缩文件名   查看文件不解压

    #命令14:shutdown [选项] 时间

    -c:取消前一个关机命令     -h:关机     -r:重启                   也可用reboot命令

    cat  /etc/inittab        //修改系统默认运行级别             runlevel             //查询系统运行级别

    退出登录:logout

    #命令15:挂载命令 mount     //查看挂载状态

    -a   依据配置文件/etc/fstab的内容,开机自动挂载

    挂载命令格式:mount [-t 文件系统]  [-o 特殊选项]  设备文件名  挂载点

    卸载命令:umount 设备文件名  挂载点

    //-t 文件系统:加入文件系统类型来指定挂载的类型,ext3、ext4、iso9660

    //-o 特殊选项:可以指定挂载的额外选项

    U盘挂载:fdisk -l          //查看U盘文件名

    mount -t vfat /dev/sdb1 /mnt/usb/     (Linux默认不支持NTFS文件系统)    挂载移动硬盘

    #命令16:用户登录查看命令   w ; who

    last:查询当前登录和过去登录的用户信息

    lastlog:查询所有用户的最后一次登录时间

    #命令17:alias 查看系统中生效的别名   //alias 别名='原命令'   如:alias vi='vim'

    vi ~/.bashrc  //写入环境变量配置文件       unalias 别名  //删除别名

    命令生效顺序:

    第一顺位执行用绝对路径或相对路径执行的命令。

    第二顺位执行别名。

    第三顺位执行Bsah的内部命令。

    第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令

    #命令18:历史命令 history [选项] [历史命令保存文件]

    -c:清空历史命令     -w:把缓存中的历史命令写入历史命令保存文件~/.bash_history

    使用上、下箭头调用以前的命令                    使用!!重复执行上一条命令

    使用!n重复执行第n条历史命令                   使用!字串 重复执行最后一条以该字串开头的命令

    #Bash的基本功能:输出重定向 (其实并没有卵用)

    命令  > 文件  2>&1  //覆盖的方式     命令  >> 文件  2>&1  //追加的方式    都放到同一个文件

    命令 &> 文件  //覆盖的方式          命令 &>> 文件      //追加的方式          都放到同一个文件

    命令>>文件1 2>>文件2              //正确的追加在文件1中,错误的追加到文件2中

    输入重定向:  wc [选项] [文件名]               (不常用)

    -c:统计字节数           -w:统计单词数         -l:统计行数

    命令<文件 把文件作为命令的输入

    命令<<标识符

    #管道符:

    1、 命令1;命令2           //多个命令顺序执行

          命令1&&命令2         //命令1正确执行,命令2才会执行;命令1执行不正确,命令2不会执行

          命令1||命令2          //当命令1执行不正确,命令2才会执行;命令1正确执行,命令2不会执行

          [命令] && echo yes || echo no

    2、管道符:命令1 | 命令2               //命令1的正确输出结果作为命令2的操作对象

      #小技巧:netstat -an | grep ESTABLISHED | wc -l            //查看服务器多少个人连接

      # ll -a /etc/ | less

     #通配符:      [^]:逻辑非           [-]:范围                      

    ?:匹配任意一个字符             *匹配任意多个字符               [] 匹配括号中任意一个字符

    Bash中其他特殊符号:

    ' ' :在单引号中的所有的特殊符号,都没有特殊含义。

    " ":在双引号中特殊符号都没有特殊含义,"$","`","\" 分别代表“调用变量的值”、“引用命令”、“转义符”的特殊含义

    ``:反引号括起来的内容是系统命令,在Bash中会先执行,和$()的作用一样,推荐使用$()。

    $():同反引号作用,推荐使用。反引号易看错。

    #:在shell脚本中,#开头的行代表注释。

    $:用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。

    \:转义符,跟在\之后的特殊符号将失去含义,变为普通字符。

    养成计划II

    VI编辑器→VIM

    支持多级撤销          可以跨平台运行           支持语法高亮           支持图形界面

    三种模式:命令模式,输入模式,底行模式。

    vim的命令格式:vim + abc     //定位光标到最后一行       vim +3 abc    //定位光标到第三行

    vim +/XXX abc      //XXX为一个字符串,定位到第一个出现的行

    底行模式常用指令: -w:保存    -q:退出   -:ls   列出当前编辑器打开的所有文件

    -:n 下一个文件   -:N  前一个文件     -/xxx  向后搜索    -?xxx向前搜索

    - h j k l  光标上下左右       - ctrl+ f b d u 翻页(半页)

    命令模式常用指令: -dd 删除光标所在的行  -o 在光标所在的行的下方插入一行并切换到输入模式

     - yy 复制光标所在的行      - p 在光标所在行下方粘贴   - P(大写) 在光标所在行上方粘贴

    vim指令图

    #磁盘管理

    df:查看磁盘分区的使用状况

    -l:仅显示本地磁盘(默认)               -a:显示所有文件系统的磁盘使用情况,包含比如/proc/

    -h:以1024进制计算最合适的单位显示磁盘容量       -H:以1000进制计算

    -T:显示磁盘分区类型             -t:显示指定类型文件系统的磁盘分区(后接文件类型0)

    -x:不显示指定类型文件系统的磁盘分区

    du:统计磁盘上文件的大小

    -b:以byte为单位  -k:以kb为单位  -m:以mb为单位   (-h -H同上)  -s:指定统计目标

    fdisk -l:查看分区状态       fdisk /dev/sdb:sdb进入分区模式,按照提示选择

    硬盘分区要点:

    第一:主分区和扩展分区总数不能超过4个

    第二:扩展分区最多只能有一个

    第三:扩展分区不能直接存储数据,必须在其中建立逻辑分区再存储数据

    MBR分区模式:主分区不超4个,单个分区容量最大2TB

    GPT分区模式:主分区个数(128),单个分区最大容量(18EB),“几乎”没有限制。

    1EB=1024PB;1PB=1024TB;1TB=1024GB;

    mkfs  格式化文件系统

    mkfs.ext3 /dev/sda  或mkfs -t ext3 /dev/sda

    swap交换分区:swapon /dev/sdb  //启用    swapoff /dev/sdb //停止 free:查看加载状态    

    1、先建立一个普通的Linux分区。2、修改分区类型的16进制编码。

    3、格式化交换分区。   4、启用交换分区。 

    用户和用户组:

    用户:使用操作系统的人。

    用户组:具有相同系统权限的一组用户。

    /etc/group:存储当前系统中所有用户组的信息

    group :        X         :123   :abc,def,xyz

    组名称:组密码占位符:组编号:组中用户名列表

    /etc/gshadow:存储当前系统中用户组的密码信息

    group:    *    :             :abc,def,xyz

    组名称:组密码:组管理者:组中用户名列表

    /etc/passwd:存储当前系统中所有用户的信息

    user   :      x        :   123   :     456     :     xxxxx    :/home/user:/bin/bash

    用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型

    /etc/shadow :存储当前系统中所有用户的密码信息

    user  :vf;Zu8sdf....(单向加密):::::

    用户名:密码   :::::

    用户组基本命令:

    创建用户组:groupadd  -g [组编号] [组名]         更改组名: groupmod  -n   [新组名]  [原组名]

    更改组编号:groupmod -g [编号] [组名]           删除用户组:groupdel [组名称] (要先删用户)

    向组中添加用户:useradd -g [用户组] [用户]      //系统默认在/home下创建与用户名相同的目录

    指定用户目录:useradd -d /home/xxx [用户名] //系统默认创建与用户名相同的用户组

    修改用户备注:usermod -c [备注内容] [用户名]  修改用户名:usermod -l [新用户名] [原用户名]

    更改用户组:usermod -g [新用户组] [用户名]    删除用户名及个人文件:userdel -r [用户名]  

    禁止除了root用户以外的用户登录:touch /etc/nologin    //空文件即可

    用户组进阶命令:

    锁定账户:passwd -l [用户名]       解锁账户:passwd -u [用户名]

    清除账户密码:passwd -d [用户名]

    一个用户可以属于多个用户组,一个主要组,其余附属组。

    添加一个附属组:gpasswd -a [用户名] [附属组名称]            //添加多个附属组,用逗号隔开。

    切换到附属组:newgrp [附属组名称]   //想哪个账号切换,登录哪个账号。

    删除附属组:gpasswd -d  [用户名] [附属组名称]

    同时添加多个组useradd -g [主要组名称] -G [附属组名称1],[附属组名称2]....

    添加用户组密码:gpasswd [用户组]

    切换用户:su username

    查看系统版本信息:

    cat /etc/issue

    Linux分区

    主分区:最多只能有4个

    扩展分区:对一块硬盘最多只能有一个

                     主分区加上扩展分区最多有4个

                     不能写入数据,只能包含逻辑分区

    逻辑分区

    格式化:写入文件系统。(更好地放入数据)

    相关文章

      网友评论

          本文标题:Linux养成计划I&II

          本文链接:https://www.haomeiwen.com/subject/vxkjqttx.html