Linux的一些学习笔记Ⅰ
这几天看了《鸟哥Linux的私房菜》这本书,不得不说写的真的很好,很适合我这个新手(
下面是一些学习总结(怕之后忘了)
Linux文件权限与目录配置
用户与用户组
用户
:即为私人(个人)
用户组
:将多个用户组合在一起,形成一个拥有共享空间的部分(集体)
linux用户身份和用户组记录的文件
默认的情况下所有的系统上的账号和一般身份用户
以及root
相关信息,都记录在了/etc/password
这个文件内
个人密码记录在/etc/password
中,linux所有的组名
都记录在/etc/group
当中
linux的文件系统
使用ls -al命令来查看文件属性
分为7列,第一列
代表这个文件的类型和权限
在第一列
中,第一个字符
代表这个文件是“目录、文件或链接文件等”
[d]
代表了目录
、[-]
代表了文件
、[l]
代表了连接文件(快捷方式)
、[b]
表示了设备文件里面的可供存储的接口设备
、[c]
则表示了设备文件里面的串行端口设备
,例如键盘和鼠标
等等
接下来的9个字符中,以3个为一组,表示权限
,其中[r]
代表可读(read)
,[w]
代表可写(write)
,[x]
代表可执行(execute)
。第一组为“文件所有者的权限”
,第二组为“同用户组的权限”
,第三组为“其他非本用户组的权限”
(同用户组的权限即为“这个用户组中所有成员拥有的权限”)
注意:针对目录,若权限为r--
,虽然有r
权限,但是由于没有x
的权限,因此不能进入此目录,只能查询此目录下的文件名列表
重点说一下这个第三列
、第四列
、以及第七列
第三列
:这个文件(或目录)的“所有者账号”
第四列
:这个文件的所属用户组
第七列
:文件名,带有“.”前缀的即为“隐藏文件”
(好康的)
改变文件属性与权限
使用chgrp
改变文件所属用户组
1 | chgrp [-R] new_groupname filename |
注意:新的用户组的名字应该存在于/etc/group
当中,否则会报错
改变文件的所有者:chown
1 | chown [-R] new_username filename |
改变权限:chmod
第一种:数字类型
改变文件权限
各权限的分数对照表:
r:4
w:2
x:1
语法如下
1 | chmod [-R] xyz filename |
其中x代表了owner的权限分数总和
,y代表了group的权限分数总和
,z代表了others的权限分数总和
第二种:符号类型
改变文件权限
语法如下
1 | chmod [-R] (u/g/o/a)(+/-/=)(r/w/x) filename |
u(user)
/g(group)
/o(others)
/a(all)
+(加入)
/-(除去)
/=(设置)
目标和文件的权限意义
文件上:
w
:可以编辑
、新增
或者是修改
该文件的内容(不含删除该文件)
r
:读取
x
:该文件具有可以被系统执行
的权限
目录上:
r
:查询数据
,即为可以使用ls
命令将该目录的内容列表显示出来
w
:代表可写入
,包括了新建
/删除
/重命名
/转移目录
内的文件、目录位置
x
:代表用户能否进入该目录,即为cd
命令
注:要开放目录给任何人浏览时,应该至少也要给予r
及x
的权限,但w
权限不可随便给予
有的时候,目录的某些权限会大于文件的某些权限
假如一个文件a
属于b目录
,a文件
对于user来说没有权限,但是b目录
对于user来说拥有rwx
的完整权限,因此user可以删除
、编辑
、查看文件a
补充一下常用的命令
1 | mkdir 目录名 (创建一个新的目录) |
linux的文件种类有很多,我大概看了一下,终于明白之前见过的.sh
后缀的文件是什么东西了(.sh
即为脚本或批处理文件
,因为批处理文件
为使用shell
写成的,所以扩展名就编成.sh
)
linux的文件目录
这里只列举了一小部分
1 | / :根目录(某种意义上也是root) |
大概就列举一下这些了,有很多其他的可以去网上或者是鸟哥的linux了解一下
绝对路径和相对路径
绝对路径
:由根目录(/)
开始写起的文件名或目录名称
相对路径
:相对于目前路径的文件名写法,不是以/开头的就属于相对路径的写法。./代表当前的目录
,../代表上一层的目录
,-代表前一个工作目录
,~代表“目前用户身份”所在的主文件夹
Linux文件与目录管理
目录的相关操作
cd
:切换目录pwd
:显示当前目录mkdir
:新建一个新的目录rmdir
:删除一个空的目录(这个目录当中不能有东西)
linux的默认命令行模式(bash shell)
具有文件补齐的功能,可以利用[Tab]
按键快速完整地输入目录
在pwd
中可以使用pwd [-P]
显示出当前的路径,而非连接路径
在mkdir
当中
1 | mkdir [-mp] 目录名称 |
在rmdir
当中
1 | rmdir [-p] 目录名称 |
关于执行文件路径的环境变量:$PATH
PATH
这个变量的内容是有一堆目录构成的,每个目录中间用冒号(:)表示,可以使用echo $PATH
来查看这些目录的具体内容,以ls
命令为例子,ls
命令文件的/bin/ls
文件路径被添加在了$PATH
的环境变量当中,因此用户可以在任何一个路径当中执行ls命令
在$PATH当中添加路径
的方法
1 | PATH="$PATH":路径名字 |
为了安全起见,不建议将”.“加入PATH的目录当中(”.”会经常变换,而且每个”.”目录下面的可执行文件都不相同)
文件与目录管理
ls
:展示目录下的文件,最常用的是ls -al
,可以展示一个目录下的所有文件(包括隐藏文件)以及文件的具体信息,另外,ll
相当于ls -a
- 复制:
cp
1 | cp dir1 dir2 |
- 删除:
rm
1 | rm file/dir (删除文件或是目录) |
- 移动文件与目录、或更名(
rm
)
1 | mv filename dir |
文件内容查阅
一般的cat
和tac
就不多说明了,这次补充一下其他的方法
nl
:按一行一行的数据输出文件的内容more
:一页一页的显示内容,你需要翻动去看下一行的数据,enter
代表向下滚动一行,空格(space)
代表向下翻一页less
:与more
相似,比起more
更方便操作,[pageup]
表示向上翻动一页,[pagedown]
表示向下翻动一页head
:显示前n行的数据
1 | head -n 数字 文件名 |
tail
:显示后n行的数据
1 | tail -n 数字 文件名 |
可以使用od
命令输出非纯文本文件
1 | od -t c 文件名 |
touch
:创建文件
1 | touch 新文件的名字 |
file
:查看文件类型
1 | file 文件名 |
命令与文件的查询
which
1 | which 命令名/文件名 |
whereis
(与which
类似,但是不只是在PATH
中寻找)
1 | whereis 命令名/文件名 |
locate
(与前两者相似)
1 | locate 文件名/命令名 |
locate
和whereis
会根据linux的数据库寻找文件