我就读于信息管理与信息系统,二年级,在生活学习中通过了网络的渠道了解到了飞天加速计划--高校学生在家实践活动。免费领取到了一台ecs服务器。
在学习linux过程中接触到许多以前不知道的知识,比如:Linux严格区分大小写;Linux中所有内容都以文件形式保存,包括硬件;Linux不靠拓展名区分文件类型。
在linux的世界里一切皆文件。
又比如:在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。
当为 d 则是目录
当为 – 则是文件;
若是 l 则表示为链接文档 (link file);
若是 b 则表示为装置文件里面的可供储存的接口设备 (可随机存取装置);
若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标 (一次性读取装置)。
接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读 (read)、 w 代表可写 (write)、 x 代表可执行 (execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 – 。每个文件的属性由左边第一部分的 10 个字符来确定。
Linux 不会自动创建不存在的文件夹,使用”mv” 命令时需要注意文件夹是否存在,否则会将文件重命名。
为文件创建硬链接实际上是为文件创建了额外的名字部分 (数据部分未改动), 类似于 C 语言中创建了一个指针指向该文件。
为文件创建符号链接类似于 WIN 中的快捷方式,在使用”ls -li” 命令中可以比较直观的看出区别。硬链接字节数和源文件一样,而符号链接字节数不同。
使用别名 “alias” 创建命令:在同一行同时运行多个命令用 “;” 分开;可以使用 “type” 查询命令是否已经在系统中;值得注意的是使用 “alias” 创建命令在结束 shell 会话时会消失(因为没有添加到文件中去);使用”unalias” 删除别名
使用 “>” 重定向会重写源文件,”>>” 重定向会在源文件后续写
将错误信息写入文件(而不是显示在屏幕上)可以用 “2>”
重定向标准输出和错误到同一个文件有两种方法:一是,在重定向的文件名后加上 ”2>&1“;二是,在重定向符前加”&“。
Linux 文件属性有两种设置方法,一种是数字,一种是符号。
Linux 文件的基本权限就有九个,分别是 owner/group/others (拥有者 / 组 / 其他) 三种身份各有自己的 read/write/execute 权限。
先复习一下刚刚上面提到的数据:文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份 (owner/group/others) 各自的三个权限 (r/w/x) 分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是 770。变更权限的指令 chmod 的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归 (recursive) 的持续变更,以及连同次目录下的所有文件都会变更
举例来说,如果要将 .bashrc 这个文件所有的权限都设定启用,那么命令如下:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
那如果要将权限变成 -rwxr-xr– 呢?那么权限的分数就成为 4+2+1[4+0+0]=754。
4、符号类型改变文件权限
还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:
user:用户
group:组
others:其他
那么我们就可以使用 u, g, o 来代表三种身份的权限。
此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:
chmod u
g
o
a +(加入)
-(除去)
=(设定) r
w
x 文件或目录
如果我们需要将文件权限设置为 -rwxr-xr– ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
touch test1 // 创建 test1 文件
ls -al test1 // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:
chmod a-x test1
ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
最后,在后面的课程中,我将继续学习面向对象编程知识,努力掌握C++语言,与此同时也要学会Liunx,网站运营等方面知识。为以后的软件开发课程打下坚实的基础。同时我也很感谢阿里云平台的飞天加速计划,让我能够免费体验到云服务器ECS这样好用的工具,希望后面也能在云服务器ECS的帮助下,在学习计算机知识的道路上走得好!