美文网首页
Linux 学习第一周

Linux 学习第一周

作者: 溪云初起日沉阁l | 来源:发表于2018-05-29 11:38 被阅读0次

    1.Linux登录

    在开机后的登录界面有虚拟终端与图形化终端

    虚拟终端:

    centos6 : ctrl + alt + F2~F6  可对应分别进入 /dev/tty2-6 的虚拟终端登录界面

    centos7:  ctrl + alt + F2~F6 可对应分别进入 /dev/tty2-6 的虚拟终端登录界面

    图型化终端:

    centos6: ctrl + alt + F1 可进入/dev/tty1 的图形化终端登录界面

    centos7: ctrl + alt + F1 可进入/dev/tty1 的图形化终端登录界面

    使用用户名及密码登录以上终端。

    2. Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。

    它接收用户输入的命令并把它送入内核去执行。 shell也被称为LINUX的命令解释器(command interpreter)

    同时shell也是一种高级程序设计语言。

    查看当前系统所安装的shell :cat /etc/shells  

    [root@centos7 ~]# cat /etc/shells

    /bin/sh

    /bin/bash

    /sbin/nologin

    /usr/bin/sh

    /usr/bin/bash

    /usr/sbin/nologin

    /bin/tcsh

    /bin/csh

    查看当前使用的何种shell:echo $SHELL  

    [root@centos7 ~]# echo $SHELL

    /bin/bash

    3.type命令:查看命令类型

    type + 命令

    [root@centos7 ~]# type echo

    echo is a shell builtin   (查看命令echo的类型)

    4.which 命令:查看命令的路径

    which + 命令

    [root@centos7 ~]# which echo

    /usr/bin/echo   (查看命令echo的路径)

    5.enable 查看所有已启用的内部命令

    enable (+选项) (+命令)

    (默认)查看所有已启用的内部命令

    [root@centos7 ~]# enable

    enable .

    enable :

    enable [

    enable alias

    。。。。。。(省略)

    -n  查看所有已禁用的内部命令

    -a  查看所有的内部命令

    enable command 启用指定的内部命令

    enable -n command 禁用指定的内部命令

    [root@centos7 ~]# enable -n alias (禁用 alias命令)

    [root@centos7 ~]# enable -n (查看已禁用的命令)

    enable -n alias

    命令执行的优先顺序 : alias > 内部 > 外部(hash > PATH)

    6.hash 显示已缓存的外部命令的路径

    hash (默认)显示已缓存的外部命令的路径

    [root@centos7 ~]# hash

    hits command

      2 /usr/bin/cat

    hash -d command 删除指定命令的hash缓存

    hash -r 删除所有缓存

    7.alias 别名命令

    可直接设置别名:如 alias copy=cp ;alias copy='cp -p -r' 等

    alias 查看已有的别名

    [root@centos7 ~]# alias

    alias cp='cp -i'

    alias egrep='egrep --color=auto'

    alias fgrep='fgrep --color=auto'

    alias grep='grep --color=auto'

    alias l.='ls -d .* --color=auto'

    alias ll='ls -l --color=auto'

    alias ls='ls --color=auto'

    alias mv='mv -i'

    alias rm='rm -i'

    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    unalias 删除别名

    unalias -a 取消所有别名

    *使用alias直接设置别名:如 alias copy=cp ,在重新开机后会丢失,

    若要每次开机都可直接使用此别名,可将其写入~/.bashrc文件中

    *若要临时使用某一条命令不受别名影响,可使用以下方法:

    >   /bin/ls 使用路径执行命令

    >   \ls 命令前加反斜杠

    >   'ls' 命令上加单引号

    >   "ls" 命令上加双引号

    8.date 命令 :显示/设置系统的时间与日期

    [root@centos7 ~]# date "+%F %T" (显示系统时间)

    2018-05-28 21:49:05

    [root@centos7 ~]# date "+%Y-%m-%d"   (显示系统日期)

    2018-05-28

    [root@centos7 ~]# date -d '-2 days'   (表示前天是星期几)

    Sat May 26 21:54:08 CST 2018

    其它显示内容可参考 man date 

    clock/hwclock   查看/设置时间

    -s 将硬时间写入软时间

    -w 将软时间写入硬时间

    9.history 显示历史记录

    history 查看当前的历史记录

    可使用上下键查看之前的历史命令,并可以再次回车执行

    -c 清空历史

    -a 将当前终端的新命令追加到历史文件

    -w /path/filename 将当前终端的新命令追加到指定文件

    -r 读取历史文件中的所有历史到当前终端的历史缓存

    -n 仅读取未读过的历史到当前终端的历史缓存

    !XX 执行某条历史记录

    [root@instructor_v6(nanyibo) ~]# service postfix restart

    Shutting down postfix:                                    [  OK  ]

    Starting postfix:                                          [  OK  ]

    [root@instructor_v6(nanyibo) ~]# !ser

    service postfix restart

    Shutting down postfix:                                    [  OK  ]

    Starting postfix:                                          [  OK  ]

    !!重复执行上一条历史

    ctrl+R 在历史记录中搜索使用过的命令

    搜索到后,回车可直接运行

    ctrl+g退出当前搜索 

    tab退出搜索,但保留查到的结果,可修改后再运行

    10. whatis 查看帮助

    查找方式:基于数据库的查找命令

    优点:查找速度快

    缺点:不具有实时性

    centos6:

    数据库存放位置:/var/cache/man/whatis

    更新数据库:makewhatis

    centos7:

    数据库存放位置:/var/cache/man/index.db

    更新数据库:mandb

    [root@centos7 ~]# whatis cp

    cp (1)              - copy files and directories

    cp (1p)              - copy files

    11.man 帮助命令

    man + 命令 可查看关于此命令的帮助

    在man界面翻页的快捷方式:

    f:向下翻一屏

    b:向上翻一屏

    d:向下翻半屏

    u:向上翻半屏

    j:向下翻一行

    k:向上翻一行

    g:跳至首页

    G:跳至尾页

    在man界面中搜索:

    / 关键字  自上而下  n  向下找 N向上找

    ? 关键字  自下而上  n  向上找 N向下找

    12.文件系统结构

    > /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

    > /bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

    > /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

    > /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

    > /lib64:专用于x86_64系统上的辅助共享库文件存放位置

    > /etc:配置文件目录

    > /home/USERNAME:普通用户家目录

    > /root:管理员的家目录

    > /media:便携式移动设备挂载点

    > /mnt:临时文件系统挂载点

    > /dev:设备文件及特殊文件存储位置

                   b: block device,随机访问

                   c: character device,线性访问

    > /opt:第三方应用程序的安装位置

    > /srv:系统上运行的服务用到的数据 

    > /tmp:临时文件存储位置

    > /usr 存放软件的执行程序,库文件及文档

    > /var 存放软件可变的数据

    > /proc 内核与存放进程信息的虚拟文件系统   (/proc/cpuinfo)

    > /sys 存放硬件信息的虚拟文件系统

    13.Linux下的文件类型

    -:普通文件

     d: 目录文件 

    • b: 块设备 

    • c: 字符设备 

    • l: 符号链接文件 

    • p: 管道文件pipe 

    • s: 套接字文件socket

    14.pwd:查看当前所在的绝对路径

    [root@centos7 ~]# pwd

    /root

    -P 如果当前所在位置是软链接目录,则显示源路径

    -L 显示链接路径(默认)

    [root@centos7 bin]# pwd -P

    /usr/bin

    [root@centos7 bin]# pwd -L

    /bin

    绝对路径与相对路径

    绝对:从根开始的路径

    相对:相对于当前的路径

    目录名与基名

    [root@instructor_v7(nanyibo) ~]# dirname '/etc/sysconfig/network-scripts/ifcfg-eth0'

    /etc/sysconfig/network-scripts   (取出目录名)

    [root@instructor_v7(nanyibo) ~]# basename '/etc/sysconfig/network-scripts/ifcfg-eth0'

    ifcfg-eth0   (取出基名)

    15.cd:改变目录

    cd + 路径 按相对路径或绝对路径进入对应的目录

    cd 进入家目录

    [root@centos7 bin]# cd

    [root@centos7 ~]#

    cd ~ 进入家目录

    [root@centos7 bin]# cd ~

    [root@centos7 ~]#

    cd - 进入上一次的工作目录,反复执行会在两个目录间来回切换

    cd .. 切换至当前目录的父目录

    16.ls:列出目录内容

    ls + [options][fils or directories]

    -a 显示所有文件,包含隐藏文件

    -A 显示所有文件,包含隐藏文件,除了. and ..

    -l 长列出,显示属性信息。如

    [root@centos7 ~]# ll anaconda-ks.cfg

    -rw-------. 1 root root  1495 May 15 11:23 anaconda-ks.cfg

    列出的文件的属性信息为如下内容:

        -/d/l/s/b/c/p 表示文件的类型

        rw-  ---  --- 表示owner,group,other的权限

        . 表示该文件有selinux的context标签,可用-Z 详细查看

        1 表示硬链接数

        root 表示该文件的owner

        root 表示该文件的group

        1495 表示该文件的大小,默认bytes -h以人类可读性显示,则显示具体的单位

        May 15 11:23 默认显示为mtime,可使用u或--time=atime来显示atime

                                                                  可使用--time=ctime来显示ctime

        anaconda-ks.cfg  文件名

    -dl 详细指定目录自己的属性信息,而不是显示子文件,子目录信息

    -R 递归

    -1 (数字1)以一列显示

    -S 按文件大小从大到小排序

    -tl 默认以修改时间从新到旧排序,而如果使用--time=a[c]time,则按所指定的时间从新到旧排序

    -utl 以atime从新到旧排序 也可以用--time=atime -tl

    不加t只有ul存在时,表示以atime来显示详细信息

    -rS 按文件大小从小到大 -rt 按时间从旧到新

    -U 按文件的存放顺序显示

    -X 按文件后缀排序

    -i 显示文件的inode号

    -Z 显示context

    17.stat:显示文件或文件系统状态(metadata元数据, data元数据)

    [root@centos7 app]# stat file

      File: ‘file’

      Size: 20        Blocks: 8          IO Block: 4096  regular file

    Device: 805h/2053d Inode: 71          Links: 1

    Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)

    Context: unconfined_u:object_r:etc_runtime_t:s0

    Access: 2018-05-29 09:57:58.980666458 +0800

    Modify: 2018-05-29 09:57:58.982666458 +0800

    Change: 2018-05-29 09:57:58.982666458 +0800

    Birth: -

    18.时间戳

    access time(atime): 访问时间,当文件被读取时才更新

    modify time(mtime): 数据修改时间,当文件的数据被修改时才更新

    change time(ctime): 元数据修改时间,当文件的元数据(权限,大小,owner,group,mtime等)更新时则更新

    查看时间:stat + 文件名:显示文件的三个时间

                            ls + 文件名     ls -l 默认查看mtime

                                                    ls --time=atime -l 查看atime

                                                    ls --time=ctime -l 查看ctime

    19. touch 创建新文件

    touch  + [OPTION] + FILE

    若文件不存在,则创建一个空文件

    若文件存在,则更新三个时间戳

    -a 更新atime和ctime

    -m 更新mtime和ctime

    -c 若文件存在,则更新三个时间戳,若不在,不会创建新文件,无作为。

    20.文件通配符

    *:匹配零或多个任意字符

    ?:匹配任意一个单一字符

    0-9:表示任何数字

    a-Z:表示所有字母,包括大小写

    [linux]:表示包含l或i或n或u或x

    [^linux]:表示不包含l和i和n和u和x

    [:digit:]:表示任意数字

    [:lower:]:表示小写字母

    [:upper:]:表示大写字母

    [:alpha:]:表示大小写字母

    [:alnum:]:表示任意字母或数字

    [:blank:]:表示空格(水平制表符)及TAB

    [:space:]:表示空格(水平制表符)、回车(垂直制表符)及TAB

    [:punct:]:表示符号

    [:print:]:表示可打印字符

    目前使用的编码:UTF-8 (ASCII的扩展)

    21.cp:复制文件

    cp + [OPTION] + 源文件/目录 + 目标文件/目录

    当源是一个文件时;   当目标文件不存时,则新建文件,并填充内容

                                            当目标文件存在,且为一个文件时,则覆盖该文件

                                                                            且为一个目录时,则将该文件放置入该目录

    当源是多个文件时;   当目标文件不存时,报错

                                           当目标文件存在,且为一个文件时,报错

                                                                           且为一个目录时,则将所有源目文件放置入该目录

    当源是一个目录时, 要配合-r;   

       当目标不存在时,则创建指定名称的目录,并将源目录当中的文件复制到新目录当中

       当目标文件存在,且为一个文件时,报错

                                       且为一个目录时,则两个目录内容合并,如有同名文件,则源目录下的文件覆盖目标目录的文件。

    -i 覆盖时交互式提示

    -r 递归,可以复制目录

    -d 默认不加-d时,cp复制软链接会将源复制过去,加上-d保留链接属性,把软链接复制过去

    --preserv=

                        mode 权限不变

                        owner[ship] 权限及owner,group 不变

                        time 三个时间戳不变

                        xattr acl权限不变

                        links 链接不变

                        context 文件的selinux上下文关系不变

                        all

    -p  等于 --preserv=mode,owner,time

    -a 等于 -rdp

    -v 显示复制过程

    -f 强制覆盖: 当普通用户对目标文件不可更改时,但对该目标文件所在的目录有创建及删除文件的权限,则使用-f可以强制覆盖,实际上是先删除文件,再创建

    -u 只覆盖源比目标文件新的文件

    --backup-numbered 覆盖前,先将旧文件改名为 文件名.~数字~

    22.mv : 移动和重命名文件

    mv + [OPTION] + 源文件/目录 + 目标文件/目录

    源为文件,目标为目录时,将文件移到目录内,若目标目录不存在时则新建目录

    源和目标同时为文件或目录时,若目标存在则覆盖,若不存在则新建目标(相当于修改源文件的名字)

    常用选项:

    -i: 交互式 

    -f: 强制  直接覆盖,不交互式,抵消i的作用

    若要批量修改文件名可使用rename命令

    rename +a +b +c 把名称a改成名称b,c为需要修改的文件列表,如果一个文件就直接指定文件名

          [root@centos7 b]# ls

          1.doc  3.doc  5.doc  7.doc  a.xls  c.xls  e.xls  g.xls

          2.doc  4.doc  6.doc  8.doc  b.xls  d.xls  f.xls  h.xls

          [root@centos7 b]# rename doc txt *.doc

          [root@centos7 b]# ls

          1.txt  3.txt  5.txt  7.txt  a.xls  c.xls  e.xls  g.xls

          2.txt  4.txt  6.txt  8.txt  b.xls  d.xls  f.xls  h.xls

    23.rm : 删除

      -i交互式提示(rm默认不提示,因别名中有cp=cp -i,所有提示要删除)

      (在rm命令前加上路径,可直接执行,跳过别名,如:/bin/rm 命令。或在命令前加反斜杠也可,如:\rm)

      -f 直接删除,不提示(与i相反)

      -r 递归删除(目录与内容,直接rm只能删除文件,不能删除目录,与rf组合后可删除直接删除全部

      rm dir2/* -rf  删除dir2目录下的全部文件

      rm rf *  删除本目录下的全部内容

      rm -rf / --no-preserve-root

    rm 目录和文件的连接数递减删除,当链接数由1删到0时,对应的inode在位图中由占用变为空闲。

      此时实际数据不会被马上删除,但当另一个文件使用此数据块时会被覆盖

    bitmap 位图:inode bitmap   block bitmap

    24.tree : 显示目录树

        -d: 只显示目录

        -L level:指定显示的层级数目(可与d组合使用)

          [root@centos7 app]# tree -L 1

          .

          ├── test

          └── test2

        -P pattern: 只显示由指定pattern匹配到的路径

    tree 安装:

          [root@centos7 test2]# mount /dev/cdrom /media/

          [root@centos7 test2]# rpm -ivh /media/Packages/tree-1.6.0-      10.el7.x86_64.rpm

    25.mkdir : 删除目录

    -p 可以同时创建多级目录

    -v 在创建目录时显示详细信息

    -m xxx  创建同时指定权限

    手工创建家目录

           mkdir /home/magetest

          cp -r /etc/skel/.[^.]* /home/magetest

          chown -R magetest.magetest /home/magetest

          chmod -R 700 /home/matgtest

    26.硬链接与软链接

    创建硬链接

    ln + 源路径 + 目的路径 (注意:源与目的要在同一文件系统下)

    创建硬链接会增加额外的记录项以引用文件 ,创建时链接数递增

    每个目录引用相同的inode号 

    删除硬连接 rm

    文件要存在,至少有一个链接数

    当删除硬链接,链接数会递减删除,从而释放的inode号。

    释放的inode号可以被重用;数据块也会被放在空闲列表中

    当链接数为零时,该文件被删除

    实际是删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

    创建软链接:一个符号链接指向另一个文件

    ln -s + 源路径 + 目的路径

    软链接可以对目录进行也 可以跨分区

    软链接指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的

    引用计数

    27.file 确定文件类型

    file [options] <filename>

    -b 列出文件辨识结果时,不显示文件名称

    -f filelist 列出文件filelist中文件名的文件类型

    -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符

    -L 查看对应软链接对应文件的文件类型

    [root@centos7 app]# file testfile

    testfile: ASCII text

    常用快捷键及命令

    清屏命令:clear 或 ctrl + l

    ctrl+a 光标移至行首(命令输入行)

    ctrl+e 光标移至行尾(命令输入行)

    Ctrl + u 从光标处删除至命令行首

     Ctrl + k 从光标处删除至命令行尾

     Alt + r 删除当前整行 (注意:Alt组合快捷键经常和其它软件冲突)

    stty -echoctl 可取消ctri+c的显示 ^C

    stty echoctl 可恢复ctri+c的显示 ^C

    相关文章

      网友评论

          本文标题:Linux 学习第一周

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