一、umask
文件全权限值为: 666
目录全权限值为: 777
输入umask,返回默认的需去除的文件/目录权限,0027,即属主全权限,属组无写入权限,其他用户无任何权限
重新设置umask: umask 007: 即属主全权限,属组全权限,其他用户无任何权限。
二、改变所属关系chown chgrp ch
只改变属主:chown tesla abc
改变属主和属组:chown tesla.sky abc
三、共享文件夹(所以组内用户写入的文件的属组都直接变更为组名)
步骤:
mkdir abc
chgrp sharegroup abc
chmod g+s abc
当组(sharegroup)内任何用户(user1,user2,...)写入文件是,其属组均为sharegroup
第9章 安装软件程序
aptitude
aptitude showpackage_name
dpkg -L package_name
dpkg --search absolute_file_path
aptitude search package_name
(i:已安装、p/v: 可用,未安装)
sudo aptitude install package_name
sudo aptitude safe-upgrade
(aptitude full-upgrade; aptitude dist-upgrade)
sudo aptitude purge package_name
《鸟哥的Linux私房菜》前期学习文档记录
进入root
sudo su,或者su -
第一个字符为.的文件为隐藏文件
区分大小写
ls -al
date
cal
bc
以固定格式输出日期
date +%Y/%m/%d
显示日历
cal
显示一年的日历
cal 2017
显示某年某月日历
cal 2 2017
计算器
bc
默认结果为整数
10/200=0
若需小数
scale=4 表示四位小数
1/3=0.3333
退出
quit
重要的热键:【tab】 【ctrl】-c 【ctrl】-d
tab键具有命令补全和文件补齐的功能,可以避免打错指令
1.接在一串指令的第一个字的后面,则为命令补全;
接在一串指令的第二个字以后时,则为文件补齐
若安装bash-completion软件,则在某些指令后面使用tab时,可以进行选项/参数的补齐
date --[tab][tab]
【ctrl】-c
中断目前程序
【ctrl】-d
键盘输入结束,相当于exit
如:bc
ctrl-d
【shift】+{【pageup】|【pagedown】}
纯文本情况下翻页
清屏命令
clear
man page
直接使用pageup pagedown翻页
使用【home】到第一页
使用【end】到最后一页
使用/string向下查找string
使用?string向上查找string
命令[2]
数字代表的内容
1 用户在shell环境中可以操作的指令或可执行的文件
5 配置文件或者是某些文件的格式
8 系统管理员可用的管理指令
man -f man
man -k man
总结:man,info,/usr/share/doc/
文本编辑:nano
【ctrl】-G 取得联机帮助
-X 离开nano 可能需要存储
-O 储存文件
-R 从其他文件读入,粘贴
-W 搜寻字符串
-C 光标所在处的行数与列数
-_ 直接输入行号,使得光标快速移动到此行
【alt】-Y 矫正语法功能的开闭
【alt】-M 支持鼠标移动光标
!!!正确关机
linux系统的关机/重启时很重大的系统运作,因此只有root才能够进行例如shutdown,reboot的指令,
但在某些distribution中,允许在无论在文字界面或则图像界面都能关机或重启
1. 不要直接按关机键
2. who指令,查看谁在线
3. netstat -a 查看网络联机状态
4. ps -aux 查看背景执行的程序
正确的关机指令使用:shutdown,reboot
!!!将数据同步写入硬盘的指令:sync
惯用的关机指令:shutdown
重新启动,关机:reboot,halt,poweroff
一般账号中 sync:只能保存个人数据
root账号中 sync:可以保存所有数据
关机:
/sbin/shutddown [-krhc] [时间] [警告通知]
-k:不是真的关机,只是发送警告通知
-r:将系统的服务停掉之后就重新启动(常用)
-h:将系统服务停掉后,立即关机(常用)
-c:取消已经进行的shutdown 指令
时间:制定关机时间
例:/sbin/shutdown -h 10 "i will shutdown for ten minutes"
shutdown -h now
shutdown - 20:25
shutdown -h +10
shutdown -r now
shutdown -r +30 "the system will reboot"
shutdown -k now "this system will reboot"
重新启动:
sync;reboot
sync;shutdown
halt
poweroff
systemctl [指令]
如:systemctl reboot
systemctl poweroff
5.2.1 linux文件属性
输入:ls -al:显示所有目录和文件,包含隐藏
ls -l:只显示非隐藏项目
drwx-r-x---. 5 root root 4096 May 29 16:08 .bash_history
[权限] [连接] [拥有者] [群组] [文件容量] [修改日期] [文件名]
linux权限的重要性:
系统保护的功能;
团队开发软件或数据共享的功能;
未将权限设定妥当的危害;
5.5.2如何改变文件属性与权限
·chgrp:改变文件所属群组
·chown:改变文件拥有者
·chmod:改变文件的权限,SUID,SGID,SBIT等等
chgrp:
chgrp [-R] dirname/filename
例:chgrp projectgrop test.txt
chown:
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录
(即同时更改拥有者和群组)
例:chown bin test.txt
复制:cp
cp 原文件名 新文件名
例
cp text.txt text_copy.txt
cp会复制执行者的属性和权限,可以使用chmod更改权限:
r4 w2 x1 -0
如 -rwxrwx---
owner= rwx=4+2+1=7
group= rwx=4+2+1=7
others= ---=0+0+0=0
故:770
改变权限方法1:
chmod [-R] xyz 文件或目录
例子:
chmod 754 text.txt
chmod 777 text_copyskyo.txt
改变权限方法2:
u:user
g:group
o:others
例子
chmod u=rwx,go=rx text.txt
a+x
a-x
a+r
a-r
a+w
a-w
例子:
chmod a+2 text.txt
chmod a-x text.txt
5.2.3 目录与文件之权限意义
1. 权限对文件的重要性
可读r可写w可执行x
window以扩展名莱判断可执行性:.exe .bat.com等
但是在linux下,以x判断是否可执行
2.权限对目录的重要性
r:读取目录结构列表的权限,可查询该目录下的文件名和数据
w:强大
建立新的文件与目录
删除已经存在的文件与目录,不论其权限如何
将已存在的文件或目录进行更名
搬移该目录内的文件/目录位置
x:目录不会被执行,这里代表能否进入目录
例:
drwxr--r-- 3 root root 4096 jun 25 08:35 .ssh
以上对与vbird用户的意义为:vbird可以查询此目录下的文件名列表,
但不能切换到此目录内。
因此,注意:能不能进入目录,要看x
如果你在某目录下不具有x权限,那么你就无法切换到该
目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r或w权限。
很多朋友在架设网站的时候都会卡在一些权限的设定上,他们开放目录数据给因特网的任何
人来浏览,但是只开放了r的权限,如上面的例子,那样的结果就是导致网站服务器软件无法到
该目录下读取文件(最多只能看到文件名),最终用户总是无法正确的查阅到文件的内容(显示权限不足)。
要注意,要开发目录给任何人浏览时,应该至少液压给予r及x的权限,但w权限不可随便给。
为什么w权限不可随便给:
例:
假设有个账号名为dmtsai,他的家目录在/home/dmtsai/,且用户dmtsai对此目录具有rwx的权限,。
若在此目录下有个名为the_root.data的文件,该文件的权限如下:
-rwx------ 1 root root 4536 sep 19 23:00 the_root.data
请问,dmtsai对此文件的权限如何?可否删除此文件?
答案:
如权限所示,由于用户dmtsai对此文件来说时others身份,因此这个文件他无法读/无法编辑/无法执行,也就是说他不能变动这个文件的
“任何内容”。但是,由于该文件在他家目录下,他对该文件由完整的rwx权限,因此他可以“删除”这个文件。
如果你对一个目录有完整的权限,尤其时w,那么,你可以对该目录中的文件做删除处理。
mkdir testing
chmod 744 testing
touch testing/testing
chmod 600 testing/testing
ls -ald testing testing/testing
5.2.4linux 文件种类与扩展名
文件种类
正规文件[-rwxrwxrwx]
纯文本文档ASC11
二进制文件binary
数据格式文件data
目录 [drwxrwxrwx]
连接档[lrwxrwxrwx]
设备与装置文件
区块设备档[brwxrwxrwx]
字符设备文件[crwxrwxrwx]
资料接口文件[srwxrwxrwx]
数据输送文件[prwxrwxrwx]
目录的意义:233页
. :代表当前的目录,也可使用./表示
..:代表上一层目录,也可以用../表示
如何先进入/var/spool/mail/,在进入到/var/spool/cron/?
cd /var/spool/mail
cd ../cron
第六章linux文件与目录管理
6.1.2目录的相关操作
特殊目录
. 此层目录
.. 上一层目录
- 前一个工作目录
~ 目前用户身份所在的家目录
~account 代表account这个目录的家目录
常用目录指令:
cd: 变换目录
pwd: 显示当前目录
mkdir: 建立一个新目录
rmdir: 删除一个空的目录
cd:
以root身份进入一般用户家目录:cd ~skyo
回到root自己的家目录:cd ~
不加任何路径,也表示回到自己家目录:cd
刚登入时会到自己的家目录,而家目录还有一个代码,就是~符号!使用cd ~可以
回到个人的家目录里头;仅输入cd 时,代表cd~的意思。
还有一个cd -,请自行体会
pwd 显示目前所在目录(print working directory)
pwd [-P] 显示出确实路径,而非使用link路径
mkdir [-m | -p]
mkdir -m :配置文件案的权限,直接设定,不需要看于是权限umask的脸色
mkdir -p: 帮助你直接将所需要的目录(包含上层目录)递归建立起来
例子:在tmp里面建立文件夹
mkdir test #正确
mkdir test1/test2/test3/test4 #错误,正常情况下需一层一层建立目录才行,但是使用-p可以直接建立
mkdir -p test1/test2/test3/test4 #正确
mkdir -m 711 test2 :建立test2目录,且直接设定权限为711
查阅目录和文件属性的命令
ls -al:显示所有文件和目录,包含隐藏的
ls -l:显示所有文件和目录,不包含隐藏的
ls -ld test:显示确定的目录
ls -ld test*:显示目录名有test的所有目录
6.1.3 关于执行文件路径的变量:$PATH
ls -al :其实完整路径应该为 /bin/ls -al
但为什么我们可以在任何地方执行ls呢,因为环境变量PATH帮助了我们。
查看哪些目录被设定为PATH路径了:echo $PATH
不同的用户显示出来的PATH路径可能不一样,最明显的是和root对比
移动文件
mv /bin/ls /root:将bin目录下的ls移动到root目录下。
若将ls移动到了非PATH路径下,那么执行ls将困难一些:/root/ls 或者./ls
将目录加入到PATH:PATH="${PATH}:/tmp"
上面命令为:将tmp加入到执行文件搜索路径PATH中了,再试试echo $PATH
6.2 文件与目录管理
6.2.1 文件与目录的查看:ls
ls [-aAdfFilnRSt]
注:a:全部文件;d仅目录本身;l长数据串行,包含属性和权限
ls [--color={never,auto,always}]
ls [--full-time]
6.2.2 复制/删除/移动: cp/rm/mv
cp [-adfilprsu] 来源文件 目标目录
a:
i:若目标文件已存在,在覆盖时会先询问动作的进行;
p:连同文件的属性(权限用户时间)一起复制(备份常用)
r:递归持续复制,用于目录的复制行为;
cp [options] source1 source2 source3 ... directory
rm [-fir]
f:忽略不存在的文档,不会出现警告信息。force的意思
i:互动模式,删除前会询问使用者是否动作
r:递归删除
mkdir abc
rm abc #错误
rm -r abc# 正确
rmdir abc# 正确
!!!一定注意用root删除目录或文件,因为系统不会询问操作者。
mv [-fiu]
f:强制移动,如果目标文件已经存在,则不会询问而会直接覆盖
i:若目标文件存在,则询问是否覆盖;
u:若目标文已存在,且source较新,才会update。
mv可以用来更名:
mkdir abc
mv abc abc2
6.2.3 取得路径的文件名与目录名称
basename
dirname
6.3文件内容查阅
cat 由第一行爱是显示文件内容
tac 从最后一行开始显示
nl 显示的时候,顺道输出行号
more 一页一页的显示文件内容
less
head 只看头几行
tail 只看尾巴几行
od 以二进制方式/或其他类型输出/读取文件内容
6.3.5 修改文件时间或者建立新文档:touch
mtime:modification time
ctime:status time
atime:access time
touch [-acdmt]文件
a:瑾修改accesstime
c:仅修改文件时间,若该文件不存在则不建立新文件
d:后面可以接欲修订的日期,而不用当前的日期
m:瑾修改mtime
tL后面剋接欲修订的时间而不用目前时间 格式:YYYYMMDDhhmm
6.4 文件欲目录的默认权限欲隐藏权限
umask
修改默认的新建文件和目录的权限
umask 002
6.4.2 文件隐藏属性
配置文件的隐藏属性
chattr [+-=][ASacdistu]
重点:a/i
a:只有root才能设定这个属性,当设定a之后,只能增加数据,不能删除 不能修改。
i:只有root才能设定这个属性,当设定i之后,不能删除,不能改名,设定连结也无法写入或新增数据。对系统安全行由相当达的帮助
例子:
touch testfile
chattr +i testfile #增加a属性
rm testfile #无法删除
chattr -i testfile# 取消a属性后才能删除
显示文件隐藏属性
lsattr [-adR]
6.4.3文件特殊权限:SUID SGID SBIY
文件状态中,如果出现s,如-rwsr-xr-x,那么,此时被称为Set UID,简称SUID的特殊权限
SGIT对项目开发非常重要
SUID SGID SBIT权限设定
SUID 4
SGID 2
SBIT 1
6.4.4 观察文件类型:file
file 文件名
6.5指令与文件的搜寻
6.5.1脚本文件名的搜寻
寻找执行文件
which [-a] command
寻找文档名
whereis
locate / updatedb
find [PATH] [option] [action]
find / -mtime 0
find 目录 -newer 目录
find 目录 --mtime -4
find 目录 -user -skyo
find 目录 -nouser
find / -name passwd
find / -name "*passwd*"
find /run -type s
find / -perm /7000
find /usr/bin /usr/bin -perm /6000
第七章
linux的正统文件系统则为Ext2(Linux second extended file system,ext2fs).
ls -i :观察目录内文件所占用的inode号码