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,再修改回来。

原文地址:https://www.cnblogs.com/zjlbk/p/11203127.html