第五章
date 命令
date +"%Y/%m/%d" 建议加""来设置格式,因为我以前写shell的时候试过error,挺难找的
cal 日历
cal 10 2019
cal 2018
bc 计算器
设置小数点后的位数
scale=number, number 就是位数
quit 退出
ctrl + d 代表键盘输入结束(EOF),也可以用来替代exit
ctrl + c 中断
tab 补全,两次是展示
man (manual)操作说明,所有UNIX Like系用中都可以用man,Linux额外提供了info命令
echo $LANG
LANG=“en”
超简单文本编辑器nano
sysc 数据同步写入磁盘,在系统关机或重启之前对好多执行几次,在内存中尚未被更新的数据就会被写入硬盘中
halt 会先调用shutdown,而shutdown最后会调用 halt(。。这不会循环引用么?)。不过,shutdown 可以依据目前已启动的服务来逐次关闭各服务后才关机,至于halt却能够在不会目前系统状况下,进行硬件关机的特殊功能
/var 是系统默认的一些数据暂存或者cache数据的保存目录,像email就含在这面
文件系统检查命令 fsck
fsck /dev/sdb1 (依据实际情况设置)
第六章 Linux 的文件权限与目录配置
Linux 一般将文件可存取访问的身份分为3个类别,分别是 owner,group,others,且3重身份各有 read,write,execute 等权限
- linux 系统当中,默认的情况下所有的系统上的账号与一般身份用户,还有root 的相关信息,都是记录在 /etc/passwd 这个文件内。
- 个人的密码记录在 /etc/shadow 这个文件下。
- linux 的所有组名都记录在 /etc/group 内。
这3个文件可以说是Linux系统里面账号,密码,用户组信息的集中地。不要随便删除这3个文件。
执行命令 ls -al 查看当前文件夹文件及属性,ls 是list的意思
ls -a 显示当前目录下的所有文件及文件夹包括隐藏的.和…等
ls -al 显示当前目录下的所有文件及文件夹包括隐藏的.和…等并显示详细信息,详细信息包括大小,属组,创建时间
[权限] [连接] [所有者] [用户组] [文件容量] [修改日期] [文件名]
drwxr-x- - - 4 root root 4096 Sep 8 14:06 …
-
第一列,类型与权限permission
- 共有10个字符
- 第一个字符代表这个文件是**“目录,文件或链接文件等”**,
若是[d]则是目录,[-]是文件,[l]表示为链接文件(linkfile),[b]表示设备文件里面的可供存储的接口设备,[c]则表示设备文件里面的串行端口设备,例如键盘,鼠标(一次性读取设备) - 接下来的字符中,以3个为一组,且均为"rwx"的组合,r表示可读,w代表可写,x代表可执行,-代表没有对应的权限
第一组为"文件所有者的权限",
第二组为"同用户组的权限",
第三组为"其他非本用户组的权限"
-
第二列,表示有多少文件名连接到此节点(i-node)
-
第三列,表示这个文件或目录的所有者账号
-
第四列,表示这个文件所属用户组
-
第五列,表示这个文件的容量大小,默认单位为B
-
第六列,为这个文件的创建文件日期或最近的修改日期
-
第七列,为文件名,隐藏文件的名字第一个为"."
man ls 或 info ls 查看基础用法
例题
drwxr-xr-- test1 testgroup 5238 Jun 19 20:25 groups/
testgroup 这个用户组[r-x]可以进入本目录进行工作,但是不能在本目录下进行写入操作
other 权限[r–],虽然有r,但是由于没有x的权限,因此others的用户并不能进入此目录
chgrp (change group )改变所属的用户组
要改变的组名必须要在/etc/group 文件内存在才行,否则会显示错误
chgrp -R dirname/filename 递归的持续更改,连同子目录下的所有文件,目录都更改称为这个用户组
例子
chgrp users install.log 把改log 改为users用户组
chown 改变文件所有者
注意,用户必须是已经存在于系统中的账号,也就是在/etc/passwd这个文件中有记录的用户名称才能改变
-R 同样递归
例子
chown bin install.log 将所有者改为bin这个账号
chown root:root install.log 将所有者和用户组改回为root
可以单纯改用户组 chown .root install.log 就是这个小数点"."的用途
cp 复制行为,会复制执行者的属性与权限
chmod 改变权限,可以用数字或符号
数字分别对应owner,group,others 三种身份各有自己的read,write,execute权限,三个一组,r:4,w:2,x:1,分数累加
例如 [-rwxrwx- - -] 770
-R 递归
chmod [-R] 754 filename , [-rwxr-xr- -]
755 [-rwxr-xr-x]
740 [-rwxr- - - - -] 不希望被其他人other看到
符号,u,g,o 分别代表user,group,others,a代表all,+加入,-除去,=设置
例如
chmod u=rwx,go=rx .bashrc
group和other只有读和执行的权限
只想增加每个人写的权限
chmod a+w filename
除去所有人执行的权限
chmod a-x filename
- 文件与目录的rwx权限意义
- 文件的权限是对针对文件内容的,
- 而目录的主要内容是记录文件名列表,文件名与目录有强烈的关联
- 对目录而然rwx权限意义:
- r读取目录结构列表,
- w新建,删除(即使对该文件无任何权限),重命名文件或目录,转移目录内的文件或目录位置
- x代表用户能否进入该目录称为工作目录(没有x权限表示不能进入/切换到该目录下,若有r权限表示可以查看到目录下的文件列表(但无法读到详细信息)),cd(change directory)
- 如果你在某目录下有r权限而无x权限,那么你就无法切换到该目录下,也就无法执行该目录下的任何命令,所以要开放目录给任何人浏览时,应该至少给予r及x的权限,否则总是无法查阅到文件的内容
任何人都可以工作的/tmp 目录
mkdir (make directory)新建目录
su - user 来切换用户,exit 切换回原本的身份
普通文件regular file [-]
- 依照文件的内容大致分为:
- 纯文本文件(ASCII)
- 可以直接读到的数据,大多用来作为设置的文件都属于这一种
- 二进制文件(binary)
- 可执行文件
- 数据格式文件(data file)
- 例如Linux在用户登录时,都会讲登录的数据记录在/var/log/wtmp 那个文件内,该文件是一个data file,它能够通过last命令读出来,但使用cat 会读出乱码,因为它属于一种特殊格式的文件
目录(directory)[d— --- —]
连接文件(link)[l — --- —]
设备与设备文件(device),与系统外设及存储等相关的一些文件,通常都集中在/dev 这个目录,通常分为两种:
块(block)设备文件[b — --- —], 自行查/dev/sda 看看
字符(character)设备文件,[c — --- —]
套接字(sockets)通常被用在网络上的数据连接,[s — --- —],/var/run/ 中可看到这种文件类型
管道(FIFO,pipe),主要的目的在解决多个程序同时访问一个文件所造成的错误问题,FIFO(first in first out)
socket 与FIFO与进程(process)有关系,可以通过man fifo, man socket 来查阅
x代表这个文件具有可执行的能力,但是能不能执行成功,要看该文件的内容
linux 目录配置标准 FHS
FHS 的重点在于规范每个特定的目录下应该要放置什么样子的数据
针对目录树架构定义出三层目录下面应该放置什么样的数据:
/ (root,根目录):与开机系统有关;
/usr (UNIX software resource):与软件安装/执行有关;
/var(variable):与系统运作过程有关
FHS 标准建议:根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目 录越小越好,如此不但性能较好,根目录所在的文件系统也较不容易发生问题。
/bin 放置的是在单用户维护模式下还能够被操作的命令,可以被root与一般账号所使用,主要有cat,chmod,chown,date…
/boot 这个目录主要在放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等。Linux kernel 常用的文件名为vmlinuz,如果使用的是grub 这个引导装载程序,则还会存在/boot/grub/ 这个目录
/dev 在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录重的。你只要通过访问这个目录下面的某个文件,就等于访问某个设备。
/etc 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件,各种服务的起始文件等。
/etc/init.d/ 所有服务的默认启动脚本都是放在这里的,例如要启动或关闭iptables 的话,/etc/init.d/iptables start ,/etc/init.d/iptables stop
/home 默认的用户主文件夹
/lib 在开机时会用到的函数库,以及在/bin 或 /sbin 下面的命令会调用的函数库。尤其重要的是/lib/modules/ 这个目录,因为该目录会放置内核相关的模块(驱动程序)
/opt 这个是给第三方软件放置的目录,以前的 Linux系统中,习惯放置在/usr/local/目录下。
/sbin 放在/sbin 下面的为开机过程中所需要的,里面包括了开机,修复,还原系统所需要的命令。某些服务器软件程序,则一般放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件,则放置到/usr/local/sbin 当中。
/srv (service),是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的目录例如WWW,FTP等。举例来说,WWW服务需要的网页数据就可以放置在/srv/www 里面
/tmp 这是让一般用户或者正在执行的程序暂时放置文件的地方。这里目录是任何人都能够访问,所以你需要定期清理一下。
uname -r
lsb_release -a
查看内核基本信息
Linux标准(Linux Standard Base)LSB