zoukankan      html  css  js  c++  java
  • 2019年7月17日星期三(linux基础)

    一、linux基础大纲

    1linux基本操作命令,关于命令特殊参数使用。

    2linux系统文件类型,文件权限设置,文件起始权限计算。

    3linux根目录存放的文件是什么?

    4、环境变量PATH使用,如何设置环境变量,永久设置环境变量。

    5linux系统man手册的使用方法。

    6、安装中文的man手册。

    二、linux基本操作命令

    1pwd  -> 打印当前的工作路径

    2ls   -> 查看目录中的全部文件名

       ls 等价于 ls .  -> 默认查看当前目录下的全部文件名(不包括隐藏文件)

       ls /    -> 指定查看根目录下所有的文件名。

       ls -a   -> 列出当前目录下全部文件名(包括隐藏文件)

       ls -a / -> 指定列出根目录下所有的文件名(包括隐藏文件)

       ls -l   -> 列出当前目录下的全部文件的详细属性

     类型    权限     链接数   组名  创建者   大小     修改日期      文件名

      d   rwxrwxr-x   4       gec    gec    4096   Jul  2  2013   Download

      -   rw-rw-r--   1       gec    gec      65   Jul  3 19:50   test.c

    3cd  -> 切换工作路径

       cd /      -> 直接切换到根目录    绝对路径: 以"/"开头

       cd ./../  -> 切换到上一级        相对路径: 以"./"开头,可以省略!

       cd        -> 直接切换到家目录

       cd -      -> 切换到刚刚去过的目录,只能记住一次。

       ~ 等价于 /home/gec

    4touch  -> 创建普通文件

       touch /home/gec/test.c  -> 在家目录下创建一个新的文件叫test.c

       touch ./test.c    -> 在当前目录下创建一个新的文件叫test.c

    如果不在家目录下创建/删除内容,都会提示: Permission denied  -> 权限拒绝!

    解决方案:

    1)切换到超级用户,再执行命令。

    sudo su  -> 输入密码

    touch /test.c  -> 在超级用户权限下创建文件

    exit   -> 切换到普通用户

    2)借用超级用户身份,执行命令

    sudo touch /test.c

    5 rm  -> 删除文件

        rm /home/gec/test.c

        rm ./test.c

    6 mkdir  -> 创建目录

        mkdir /home/gec/aaa  -> 创建一个新的目录叫aaa

        mkdir ./aaa   -> 在当前目录下创建新的目录叫aaa

    如果当前目录下没有aaa目录,则执行mkdir ./aaa/bbb ->  执行错误,提示aaa目录不存在。

    如果说想一次性创建多级父目录,则需要添加-p选项  mkdir ./aaa/bbb -p

    7 cat   -> 在终端上显示文本内容

        cat /home/gec/test.c  -> 使用绝对路径查看家目录下的test.c文件的内容

        cat ./test.c     -> 使用相对路径查看家目录下的test.c文件的内容

    8 cp  -> 拷贝目录/文件

        cp test.c aaa  -> 把当前目录下的test.c拷贝到当前目录下的aaa目录下

        cp ccc/   aaa -r  -> 把当前目录下的ccc目录拷贝到aaa目录下,注意处理目录的时候需要添加-r参数!

    9 mv  -> 重命名/移动

        mv test.c kkk.c  -> 把test.c文件名重命名为kkk.c。

        mv kkk.c  ccc/   -> 把kkk.c移动到ccc/目录。

    如何判断mv命令是重命名还是移动?

    只需要看第二个参数即可。如果第二个参数是文件名来的,mv就是重命名。如果第二个参数是目录来的,mv就是移动。

       mv aaa/ bbb/  -> 把aaa/重命名为bbb/

       mv aaa/ -t bbb/  -> 把aaa/移动bbb/中

    10 tar  压缩/解压

       在linux下,常见的压缩包格式: .gz结尾 / .bz2结尾

       参数:

           z:  处理.gz格式的压缩包

            j:  处理.bz2格式的压缩包

          x:  决定了tar命令是解压命令

           c:  决定了tar命令是压缩命令

           v:  以可见的方式进行解压,这个参数不是必须。

           f:  不可忽略文件

           -C 路径: 指定解压之后的路径

    例子1:将a.c b.c test.c打包为一个新的压缩包example.tar.gz

    1)将这些文件塞到一个目录test_dir/。

    2)压缩该目录,变成一个新的压缩包

       tar zcvf example.tar.gz test_dir/

    例子2: 将example.tar.gz解压到当前目录下aaa目录中

    1)首先确保当前目录下有aaa目录

    2)解压压缩包到aaa目录中

       tar zxvf example.tar.gz -C ./aaa

      练习1: 处理bz2结尾的格式压缩包!

    11 chmod  修改文件/目录的权限

    1)什么是文件/目录的权限?

    可以通过"ls -l"来查看文件/目录权限

    结果:

    gec@ubuntu:~$ ls -l examples.c

    -rw-rw-r-- 1 gec gec   12 Jul  3 19:52 examples.c

    rw-rw-r--   -> 就是examples.c的权限

    该权限可以分为三个部分处理:

    rw-: 创建者权限   user(u)  -> 创建者可读可写不可执行

    rw-: 组权限      group(g)  -> 组可读可写不可执行

    r--: 其他人 other(o)   -> 其他人可读不可写不可执

                         权重

    r: read -> 读权限 4

    w: write -> 写权限       2

    x: execute -> 执行权限   1 

    -:  没有这个位置的权限    0

    2)如何修改文件/目录的权限。

    单个修改:

    公式: chmod (u/g/o)(+/-)(r/w/x) 需要修改的文件的路径

     

    例子1:给examples.c这个文件的创建者添加一个执行权限。

           chmod u+x examples.c

    例子2:给examples.c这个文件的组删除写的权限

           chmod g-w examples.c

    多个同时修改:

    例子3: 想修改examples.c这个文件的权限为  -wxr--r-x

    1.计算修改后的权重?  -> 345

    2.直接使用chmod命令修改

    公式: chmod 权重 需要修改的文件的路径

    最终命令:chmod 345 examples.c

    3.结果:

      -wxr--r-x    examples.c

    . 如何判断一个东西是文件还是目录?

    1)在linux下不能通过后缀来判断文件的类型,只能通过创建的方式来判断。

    原则:

    只要是使用touch命令来创建的,无论叫什么名字,都是一个普通文件。

    例子: touch dir  (dir是一个普通文件)

    只要是使用mkdir命令来创建的,无论叫什么名字,都是一个目录文件。

    例子: mkdir a.c  (a.c是目录文件)

    2)使用"ls -l"命令查看类型

     类型

      d   rwxrwxr-x 2 gec gec 4096 Jul 18 09:16 a.c

      -   rw-rw-r-- 1 gec gec    0 Jul 18 09:16 dir

     d: 一定是目录

     -: 一定是文件

    四、为什么文件的起始权限都是664,目录都是775

    1. 权限对文件/目录有什么影响?

    1)文件没有读权限会怎么样?

    gedit、vi打不开文件: -> 使用 sudo gedit 文件名还是可以看的。

    cat命令提示: cat: Permission denied  -> 使用超级用户还是可以看的。

    2)文件没有写权限会怎么样?

    gedit、vi可以打开文件,但是不可以修改文件的内容。  -> 使用超级用户还是可以修改的

    3)文件没有执行权限会怎么样?

    执行不了文件,即使使用超级用户也没有用。

    4)目录没有读权限会怎么样?

    不能使用ls命令查看目录中的内容,使用超级用户还是可以查看的。

    5)目录没有写权限会怎么样?

    不能使用touch/mkdir命令在目录中创建新的内容,但是超级用户还是可以的。

    6)目录没有执行权限会怎么样?

    不能使用cd命令切换到目录中,即使使用超级用户也没有用。

    2、为什么文件的起始权限都是664,目录都是775

    linux系统默认规定文件没有执行,目录都是可以切换,默认目录有执行权限。

    五、文件/目录起始权限都是与系统中"umask"有关。

    1、什么是umask

    其实就是一个影响文件起始权限一个数字,这个数字可以设置。

    2、在linux系统下,umask起始值?

    gec@ubuntu:~$ umask

    0002   -> 当前系统的umask值

    第一个0是属于无效位,后三位才是真正的umask。

    3 umask与文件起始权限有什么关系?

    文件起始权限 = 666 - 当前系统的umask = 666 - 002 = 664  (使用666来计算,因为linux不想文件有执行权限)

    目录起始权限 = 777 - 当前系统的umask = 777 - 002 = 775  (使用777来计算,因为linux希望目录有执行权限)

    4 umask如何修改?

    1)临时修改umask   -> 重启终端无效。

    gec@ubuntu:~$ umask 0000

    gec@ubuntu:~$ umask

    0000

      这时候创建文件,文件的起始权限就是666-000=666。

    2)永久修改umask   -> 重启终端有效

    机制:终端在启动时默认先执行一个脚本文件: 家目录下的隐藏文件".bashrc",只要将"umask 0000"写入这个文件中,那么linux系统就会永久修改umask值为0000。

    1. 编辑启动脚本

    gec@ubuntu:~$ gedit ~/.bashrc

    2. 将"umask 0000"写入到文件的末尾,保存退出!

    3. 生效脚本/重启终端

    gec@ubuntu:~$ source ~/.bashrc

    4. 查看umask

    gec@ubuntu:~$ umask

    0000

      练习2: 永久修改umask为0022,创建目录,看看是不是755,再修改回来。

  • 相关阅读:
    jade -Template Engine
    GitHub 版本管理工具
    Bootstrap笔记
    网页布局笔记
    html,css的笔记
    Angular 实例项目 angular-phonecat 的一些问题
    sublime 浏览器快捷键配置
    Javascript 事件 笔记 1
    Bootstrap 学习笔记 一
    Codeforces 546 E:士兵的旅行 最大网络流
  • 原文地址:https://www.cnblogs.com/zjlbk/p/11203127.html
Copyright © 2011-2022 走看看