通信人家园
标题: 《鸟哥的linux私房菜 基础学习篇》,阅读正当时 [查看完整版帖子] [打印本页]
时间: 2012-11-21 22:51
作者: txr_2012
标题: 《鸟哥的linux私房菜 基础学习篇》,阅读正当时
最近想好好学习一下linux基础,之前就看到《鸟哥的linux私房菜 基础学习篇》这本书还是不错的,所以就打算从头开始认真读一下,然后把读书笔记发在这里,一是为了给自己一个激励和监督,激起自己的一些兴趣,让自己可以坚持下去;二来,有看不明白的地方也可以向坛子里的大牛们请教一下。里面记录的东东,对很多人来说,可能都是小儿科,但是对我来说,可能是不熟悉 的地,所以如果觉得我发的东东太过简单,您请绕行。 我看的是电子版《鸟哥的Linux私房菜 基础学习篇(第三版).pdf》,也见过同事用纸质的出版的版本,如果想要使用电子版到baidu/google里面搜一下,一搜一大把,这里就不贴link了。
希望自己和关注帖子的同学有所收获,come on~
补充内容 (2012-11-23 22:52):
贴个《鸟哥私房菜》的link:
http://ishare.iask.sina.com.cn/f/10286085.html
时间: 2012-11-21 22:58
作者: txr_2012
因为我还算是有那么一点linux基础,之前看这本书的时候,前两章大概看了一下,主要是讲了linux是个什么东东,如何学习linux,所以在此略过;第3,4章是讲如何安装linux,我也没有看,我只在自己的pc上安装了一个vmware player(免费的),然后去down了几个linux扔到vm里面用的,所以这2章也略过;第5章,如何获取帮助信息等等,这个还是有些用处的,可以自己看一下;我从第6章开始发笔记。
时间: 2012-11-21 23:21
作者: txr_2012
第六章、Linux 的档案权限与目录配置
【note1】ls –l 看到的文件(可以使用ll代替ls -l)
o 若是[ b ]则表示为装置文件里面的可供储存的接口讴备(可随机存取装置);
o 若是[ c ]则表示为装置文件里面的串行端口讴备,例如键盘、鼠标(一次读取性装置)。
【note2】显示文件的详细时间
jerry@ubuntu:~$ ls -l--full-time
total 48
drwxr-xr-x 2 jerry jerry4096 2012-10-26 23:42:43.211062564 -0700 Desktop
drwxr-xr-x 2 jerry jerry4096 2012-10-26 23:42:43.211062564 -0700 Documents
【note3】 如果某个目录是只读的,那么用户是不能够进入这个目录的,但是root用户除外,root用户可以无视任何权限限制,即使某个目录的属性是000(d---------),root用户也可以直接进入这个目录。
[example 1]
jerry@ubuntu:~$ ls -l
total 52
dr--r--r-- 2 jerry jerry4096 Oct 27 16:57 test
jerry@ubuntu:~$ cd test
bash: cd: test
ermission denied
[example 2]
root@ubuntu:/home/jerry#cd test
root@ubuntu:/home/jerry/test#ls
时间: 2012-11-21 23:22
作者: txr_2012
本帖最后由 txr_2012 于 2012-11-21 23:24 编辑
l chgrp(change group)
可以使用这个命令改变文件/目录所在的群组,但是这个群组的名字必须在文件/etc/group中存在才可以。如果改变的是目录的group,那么这个目录之下的文件/子目录的group属性不会发生变化,除非使用chgrp -R root dir1 这种-R参数,目录下的所有文件和子目录的group属性都会被改变。
l chown(change owner)
(1)可以使用chown 改变文件的拥有者,但是修改后的名字必须在文件/etc/passwd中才可以。
(2)chownjerry.root test.txt //owner和group之间,可以使用点.或者冒号:分割,但是注意,如果文件名字或者目录名字中含有点’.’,就很容易混淆了
(3)chownjerry:root test.txt //group的名字,也必须存在于/etc/group中
(4)chown-R :root dir1
chown-R .root dir1
//可以使用-R递归改变该目录下的所有文件和子目录;可以省略onwer名字不写,chown -R :root dir1 或者chown -R .root dir1
(5)某个用户是否可以改变某个文件的拥有者与群组,与这个文件的 “读写执行”权限无关,只与这个当前用户是谁(是否拥有这个文件,是否属于这个文件拥有者的群组)有关系。
l chmod
使用u,g,o分别代表user,group ,others,那么,在不知道某个文件的原有的属性的基础上,增加,减少,设置某个属性,可以这样子:
(1)chmod a+w filename //给所有人增加 写入权限
(2)chmod g-xfilename //同一群组的用户,删除可执行权限
(3)chmod o=wrfilename //对于文件filename,给其他用户设置wr权限,如果原来filename有可执行权限,现在也将被删掉。
(4)-R 对目录下的所有文件和子目录 递归调用
l rwx权限对于目录的意义
1) r
有这项权限,表示可以列出这个目录下的所有文件和子目录,但是目录之下的文件和子目录的属性是读不到的。
jerry@ubuntu:~$ls -lt
total52
dr--r--r-- 3 jerry jerry4096 Oct 28 04:18 dir1
----
jerry@ubuntu:~$ls dir1
ls: cannot access dir1/dir11
ermission denied ls: cannot accessdir1/file1: Permission denied
dir11 file1
1) w
拥有这项权限的话,可以在改目录之下:
o 建立新的档案与目彔;
o 删除已经存在的档案与目彔(不论该档案的权限为何!)
o 将已存在的档案或目录进行更名;
o 搬移该目彔内的档案、目录位置。
3)x
拥有某个目录的执行权限,才能够进入该目录
l Last
显示最近登录过系统的用户
l 几种文件属性
1)
设备与装置文件(device),文件属性b,c
(1)区块(block)设备档 :就是一些储存数据,以提供系统随机存取的接口设备,如硬盘,软盘,这种文件第一个字母为b;
brw-r----- 1 rootdisk 8, 0 Oct 25 14:45 sda
(2)字符(character)设备文件:亦即是一些串行端口的接口设备, 例如键盘、鼠标等等,这种文件属性第一个字母为c
crw-r--r-- 1 rootroot 10, 135 Oct 25 14:45 rtc
2)
资料接口文件(sockets),文件属性s
我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的沟通。这种文件,第一个属性为 [ s ], 最常在/var/run这个目彔中看到这种文件类型了。
3)
数据输送文件(FIFO,pipe),文件属性p
FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。 FIFO是first-in-first-out的缩写。第一个属性为[p] 。
l Linux常见目录
Linux目彔配置,一般是根据FHS的标准配置的,常见目录:
/bin,系统执行文件的目录
/boot,系统开机用到的档案
/dev,任何形式的装置和接口设备都已文件形式存于此
/etc,系统配置文件,一般用户只能查阅,root可以修改
/etc/init.d, 所有服务的预设启动脚本都是在这里的,如启动或者关闭iptables
/home,用户的家目录
/lib,系统开始时,或者/bin,/sbin之下的指令会用到的函式库
/media,可以移除的装置,包括软盘,光盘等
/mnt,需要挂载额外装置时,可以放到这里
/opt,第三方软件可以放在这里
/root,系统管理员家目录
/sbin,系统开机过程中所需要的,包括开机,修复,还原系统所需的命令
/srv,即service,某些网络服务启动之后,需要取用的数据目录,如ftp,www
/tmp,临时目录
----------以下几个目录不是FHS规定的,但是常见的
/lost+found, ext2/ext3文件系统格式才会产生的一个目彔,文件系统发生错误时, 将一些遗失的片段放置到这个目录下
/proc, 系统核心、进程、周边装置的状态及网络状态等信息,是内存信息,不会占用硬盘空间
/sys,与/proc类似,记彔与核心相关的信息,同样不占用硬盘空间
--------
请说明/bin与/sbin目录所放置的执行文件有何不同之处?
/bin放置的是一般用户惯用的指令,而/sbin则是系统管理员才会使用到的指令。不过/bin与
/sbin都与开机、单人维护模式有关。更多的执行档会被放置到/usr/bin及/usr/sbin底下。
-----------
另外注意,开机过程中仅有根目彔会被挂载, 其他分区则是在开机完成后才会挂载。因此,某些目录必须与根目录在同一分区,包括/etc,/bin,/dev,/lib,/sbin
l /usr目录
usr是Unix Software Resource的缩写。这个目彔有点类似Windows 系统的『C:\Windows\ + C:\Program files\』这两个目彔的综合体
/usr/bin/ 绝大部分的用户可使用的指令都放在这里!请注意到他与/bin的不同之处。(是否与开机过程有关)
/usr/local/,系统管理员在本机自行安装自己下载的软件(非distribution默认提供),建议安
装到此目彔, 这样会比较方便管理
/usr/share/,放置共享文件,如/usr/share/man:联机帮助文件
/usr/src/,放置源代码,如核心原始码则建议放置到/usr/src/linux/目彔下
l /var
如果/usr是安装时会占用较大硬盘容量的目彔,那/var就是在系统运作后才会渐渐占用硬盘容量的目录,如/var/log,/var/mail,/var/spool(队列数据)
l 如何查看使用的linux系统的版本信息
1)查看核心版本
erry@ubuntu:~$ uname -r
3.2.0-23-generic-pae
2)查看LSB(Linux Standard Base)等信息
jerry@ubuntu:~$lsb_release -a
No LSB modules areavailable.
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
jerry@ubuntu:~$
l Linux档名的限制为:
单一档案或者目录的最大容许文件名为 255 个字符;包含完整路径名称及目录(/)之完整档名为 4096 个字符
时间: 2012-11-22 08:43
作者: crazybluesky
LZ,一定要坚持哟。
时间: 2012-11-22 15:44
作者: xiaozumi3350
时间: 2012-11-22 19:34
作者: txr_2012
crazybluesky 发表于 2012-11-22 08:43 
LZ,一定要坚持哟。
多谢鼓励,一起加油:)
时间: 2012-11-22 19:35
作者: txr_2012
xiaozumi3350 发表于 2012-11-22 15:44 
时间: 2012-11-22 19:36
作者: txr_2012
帖子被置为“推荐”了,偷偷乐一下,
时间: 2012-11-22 21:02
作者: txr_2012
【note】使用ls显示文件的具体时间信息
1)- `atime', `access', `use' //当vi file,”:q”退出的时候,这些属性会变化
2)- `ctime', `status' //是指文件内容被修改(使用vi file时,即使没有修改文件内容,但是退出时使用了“:wq”也算数),或者有chmod file发生的时候,这两个时间属性会变化
3)有关ls –l file1看到的时间,可以理解为文件“内容被modify”时的时间。 使用chmod 777 file1修改文件属性之后,ls –l file1看到的时间不会变;但是vi file1,’:wq’(即使没有真的写东西到file1)或者write sth to file1的时候,ls -l看到的时间还是会变的。
------[how to use]
jerry@ubuntu:~/dir1$ ls-l --time=
ls: ambiguous argument`' for `--time'
Valid arguments are:
- `atime', `access', `use'
- `ctime', `status'
----------[write sth to file1]
jerry@ubuntu:~/dir1$date;echo test>>file1
Thu Nov 22 20:42:23 PST2012
jerry@ubuntu:~/dir1$ ls-l file1 --time=atime
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:35 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=access
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:35 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=use
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:35 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=ctime
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:42 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=status
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:42 file1
-----------[vi file1, “:q”quit]
jerry@ubuntu:~/dir1$date;vi file1
Thu Nov 22 20:43:06 PST2012
jerry@ubuntu:~/dir1$ ls-l file1 --time=atime
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls -l file1 --time=access
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=use
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=ctime
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:42 file1
jerry@ubuntu:~/dir1$ ls -l file1 --time=status
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:42 file1
-----------[vi file1,”:wq”quit]
jerry@ubuntu:~/dir1$date; vi file1
Thu Nov 22 20:46:10 PST2012
jerry@ubuntu:~/dir1$ ls-l file1 --time=atime
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=access
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=use
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=ctime
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:46 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=status
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:46 file1
jerry@ubuntu:~/dir1$ ls-l file1
-rwxrw-rw- 1 jerry jerry31 Nov 22 20:46 file1
-----------[chmod 777 file1]
jerry@ubuntu:~/dir1$date; chmod 777 file1
Thu Nov 22 20:49:39 PST2012
jerry@ubuntu:~/dir1$ ls-l file1 --time=atime
-rwxrwxrwx 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=access
-rwxrwxrwx 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=use
-rwxrwxrwx 1 jerry jerry31 Nov 22 20:43 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=ctime
-rwxrwxrwx 1 jerry jerry31 Nov 22 20:49 file1
jerry@ubuntu:~/dir1$ ls-l file1 --time=status
-rwxrwxrwx 1 jerry jerry31 Nov 22 20:49 file1
jerry@ubuntu:~/dir1$ ls-l file1
-rwxrwxrwx 1 jerry jerry31 Nov 22 20:46 file1
时间: 2012-11-22 21:03
作者: txr_2012
本帖最后由 txr_2012 于 2012-11-22 21:03 编辑
这一章的几个小问题,希望可以有大牛帮忙解答一下,先行谢过~
l 【question1】
我们知道,使用chown username filename改变用户的时候,所改变的用户名字必须要在/etc/passwd中存在才可以,否则会报错的,但是为什么当username为纯数字的时候,却木有了这个限制了呢?
root@ubuntu:/home/jerry#chown 888 dir1
root@ubuntu:/home/jerry#ls -l
total 52
drwxr-xr-x 2 jerry jerry4096 Oct 26 23:42 Desktop
drwxr-xr--3 888 root 4096 Oct 28 04:18 dir1
l chown
当前用户是jerry, file1的拥有者是jerry,所属群组root.这个时候,可以把群组由root改成jerry,可以;但是想要把群组从jerry改成root,不行。这个如何理解?
jerry@ubuntu:~/dir1$ls -l //当前用户是jerry
total 4
drwxr-xr-- 2 jerry jerry4096 Oct 28 04:20 dir11
-rwxrwxrwx 1 jerry root 0 Oct 28 04:14 file1
jerry@ubuntu:~/dir1$chown jerry:jerry file1
jerry@ubuntu:~/dir1$ ls-l
total 4
drwxr-xr-- 2 jerry jerry4096 Oct 28 04:20 dir11
-rwxrwxrwx 1 jerry jerry 0 Oct 28 04:14 file1
jerry@ubuntu:~/dir1$chown jerry:root file1
chown: changingownership of `file1': Operation not permitted
l 另外一个小问题
uname -r 可能是unixname的意思?
时间: 2012-11-23 13:20
作者: maciliwupu
求大神把那个PDF发出来让俺们瞅瞅学习学习。
时间: 2012-11-23 18:28
作者: chen200562018
楼主,努力
我一直想看,但是经常出差没时间看。
等这次出差回去了,一定要重新拾起来
时间: 2012-11-23 22:50
作者: txr_2012
maciliwupu 发表于 2012-11-23 13:20 
求大神把那个PDF发出来让俺们瞅瞅学习学习。
pdf大概20M,我应该没有权限上传那么大的文件,给你个link吧:
http://ishare.iask.sina.com.cn/f/10286085.html
时间: 2012-11-23 22:51
作者: txr_2012
chen200562018 发表于 2012-11-23 18:28 
楼主,努力
我一直想看,但是经常出差没时间看。
等这次出差回去了,一定要重新拾起来
一起加油~~
时间: 2012-11-25 22:12
作者: saintli86
本帖最后由 saintli86 于 2012-11-25 22:12 编辑
txr_2012 发表于 2012-11-22 21:03 
这一章的几个小问题,希望可以有大牛帮忙解答一下,先行谢过~
l 【question1】我们知道,使用chown ...
第一个问题:
chown 是改变文件的所属的owner和所属的group,chown root dir1
chmod是改变文件的读写权限 chmod 777 dir1
你文章中提到的chown 888 dir1是会报错的,也许你原意是要用chmod;
另外数字组合没有888这一说,鸟哥的书上这部分肯定有
时间: 2012-11-25 22:15
作者: saintli86
第一个问题后面操作部分:
你没有root权限,你只有在root用户中才可以执行,否则会报not permitted
时间: 2012-11-26 14:37
作者: wolaizitianfu
这个真心好
时间: 2012-11-26 22:38
作者: txr_2012
saintli86 发表于 2012-11-25 22:12 
第一个问题:
chown 是改变文件的所属的owner和所属的group,chown root dir1
chmod是改变文件的读写权 ...
但是我进行chown 888 dir1 这个操作的时候确实没有报错啊,而且通过ls -l 查看的时候,dir1目录的拥有者确实变成了“888”。
drwxr-xr--3 888 root 4096 Oct 28 04:18 dir1
貌似这个是与uid,gid(群组管理有关)有关的东东,也就是ls -n这个参数有关,我还没有看到这一块,估计看到这里的时候就会明白了
jerry@ubuntu:~/dir$ ls -nl dir1
total 12
-rwxrwxr-x 1 1000 1000 39 Nov 26 05:53 file1
-rwxrwxr-x 1 1000 1000 38 Nov 25 08:23 file2
时间: 2012-11-26 22:51
作者: txr_2012
第七章 Linux 档案与目录管理Note
cdcd - 返回上一次的目录
cd ~ 返回自己的家目录
cd ~username 返回username的家目录
jerry@ubuntu:/bin$ cd -
/etc
jerry@ubuntu:/etc$ cd -
/bin
jerry@ubuntu:/bin$
about根目录(/)l (/)与它的上一层目录是同一个目录
jerry@ubuntu:/$ pwd
/
jerry@ubuntu:/$ cd ../
jerry@ubuntu:/$ pwd
/
pwd (Print Working Directory)-P //显示真实路径,而不是link路径
jerry@ubuntu:~/dir1/bin.link$pwd
/home/jerry/dir1/bin.link
jerry@ubuntu:~/dir1/bin.link$pwd -P
/usr/bin
jerry@ubuntu:~/dir1$ ls-l
lrwxrwxrwx 1 jerryjerry 9 Nov 18 03:46 bin.link ->/usr/bin/
mkdir(make directory)-p (--parents)//同时创建目录的子目录;如果想要创建的目录已经存在,也不会报错,使用已存在目录
-m(--mode) //创建目录的同时,指定目录的mode
jerry@ubuntu:~/dir1$mkdir -p dir1/dir11
jerry@ubuntu:~/dir1$ls -l dir1
total 4
drwxrwxr-x 2 jerry jerry4096 Nov 24 23:26 dir11
------
jerry@ubuntu:~/dir1$mkdir -m 755 dir1
jerry@ubuntu:~/dir1$ls -l
total 8
drwxr-xr-x 2 jerry jerry4096 Nov 24 23:28 dir1
-----
jerry@ubuntu:~/dir1/dir1/dir11$pwd
/home/jerry/dir1/dir1/dir11
jerry@ubuntu:~/dir1/dir1/dir11$mkdir -p /home/jerry/dir1/dir1/dir11
jerry@ubuntu:~/dir1/dir1/dir11$ls
testfile
rmdir删除空的目录
-p(--parents) //如果待删除的空目录删除之后,其上层目录也为空,则一同删除上层目录
jerry@ubuntu:~/dir1$rmdir -p dir1/dir11/
jerry@ubuntu:~/dir1$ ls
dir2 file1
有关PATH我们在linux中执行一个命令的时候,如“ls”,系统会调用那里的命令,或者说,这个“ls”命令是存在于何处的?通过echo $PATH可以找到所下达的命令的路径。当我们在Terminal中键入“ls”之后,系统会依照PATH的设定去每个PATH定义的目录之下搜寻文件名为ls的可执行文件, 如果在PATH定义的目录中有多个文件名为ls的可执行文件,那么先搜寻到的同名命令先被执行!(即,PATH中定义的目录是有顺序之分的)
Note:想要查看某个命令的全路径,可以使用“which”命令来查看
root@ubuntu:/bin# whoami
root
root@ubuntu:/bin# echo$PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
----
jerry@ubuntu:~/dir1$whoami
jerry
jerry@ubuntu:~/dir1$echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
lsl ls常用参数
lsfile1 file2 ...//显示两个或者多个文件的属性
-A//显示所有文件和目录,但是不显示“.“,“..“
-d(--directory)//显示目录本身的属性,而不是显示目录内的档案
-F (--classify) 显示档案时,追加指示符(如可执行文件追加“*”,目录追加“/”)
-h 以人易读的方式(GK,KB)显示档案容量大小
-i //显示inode信息
-l (long) //ll相当于ls -l
-n, --numeric-uid-gid //显示uid,gid(群组管理有关),而不是使用者与群组的名称
-r(--reverse)//将排序结果反向输出
-R(--recursive) //连同子目录一起列出来
-s //输出给每个档案分配的区块(block)大小
-S (--sort) //按照档案容量大小排序
-t //按照时间排序
--color=never | always | auto //不要依据档案属性显示颜色 | 显示颜色 | 系统自行设定
//显示多个文件的属性
jerry@ubuntu:~/dir1$ ls-l file1 file2 file3
-rwxrwxrwx 1 jerry jerry34 Nov 22 21:01 file1
-rwxrwxrwx 1 jerry jerry38 Nov 25 08:12 file2
-rwxrwxrwx 1 jerry jerry34 Nov 22 21:01 file3
//-d
jerry@ubuntu:~/dir1$ls -ld dir1
drwxrwxr-x 2 jerry jerry4096 Nov 24 23:42 dir1
//-F
jerry@ubuntu:~/dir1$ ls-F
dir1/ dir2/ dir3/ file1* file2* file3
//-h
jerry@ubuntu:~/dir1$ ls-hl
total 24K
drwxrwxr-x 2 jerry jerry4.0K Nov 24 23:42 dir1
drwxrwxr-x 2 jerry jerry4.0K Nov 24 23:29 dir2
drwxrwxr-x 3 jerry jerry4.0K Nov 24 23:44 dir3
-rwxrwxrwx 1 jerryjerry 34 Nov 22 21:01 file1
//-n
jerry@ubuntu:~/dir1$ ls-nl file2
-rwxrwxrwx 1 1000 100027 Nov 25 01:09 file2
//-s
jerry@ubuntu:~/dir1$ ls-sl file2
4 -rwxrwxrwx 1 jerryjerry 27 Nov 25 01:09 file2
//-S
jerry@ubuntu:~/dir1$ls -lS
total 24
drwxrwxr-x 2 jerry jerry4096 Nov 24 23:42 dir1
drwxrwxr-x 2 jerry jerry4096 Nov 24 23:29 dir2
drwxrwxr-x 3 jerry jerry4096 Nov 24 23:44 dir3
-rwxrwxrwx 1 jerryjerry 34 Nov 22 21:01 file1
-rwxrwxrwx 1 jerryjerry 27 Nov 25 01:09 file2
-rw-rw-r-- 1 jerryjerry 20 Nov 25 00:32 file3
l 有关排序
如果出现了两种排序方式,如ls –lhtS,或者ls –lhSt,则会按照最后的那个参数来排序,即对ls –lhtS而言,会按照文件/目录的大小排序。
l 有关atime,ctime,ls -l看到的时间的区别
1)- `atime', `access', `use'
vi file,”:q”退出的时候,这些属性会变化;
vi file,” :wq”的话,这个属性会变化;
但是,echo test>>file, 这个属性不变化(这里有点奇怪);
chmod 777 file的时候,这个值也不变化
2)- `ctime', `status' //是指文件内容被修改时
vi file,”:q”,这个时间不变
vi file, ‘:wq’时(即使没有修改文件内容,但是退出时使用了“:wq”也算数),会变 ;
chmod file发生的时候,这两个时间属性会变化;(这里是区别于“ls -l”的)
echo test>>file 的时候,这个时间会变化
3)ls –l file1 //看到的时间,可以理解为文件“内容被modify”时的时间。
vi file,”:q” //这个时间不变
vi file,”:wq” //时间变化
chmod 777 file1修改文件属性之后,ls –l file1看到的时间不会变;
echo test>>file的时候,ls -l看到的时间还是会变的。
l ls –l看到的第二列的数字的含义
对文件而言,表示这个文件有几个hard link
对于目录而言,表示这个目录下有几个目录(“.””..”也算数,但是子目录的子目录就不算数了)
jerry@ubuntu:~/dir$mkdir -p dir6/dir61; ls -ld dir6
drwxrwxr-x 3 jerry jerry 4096 Nov 2606:09 dir6
jerry@ubuntu:~/dir$ ls-l file*
-rwxrwxrwx 3 jerry jerry 34 Nov 22 21:01file1
-rwxrwxrwx 3 jerry jerry 34 Nov 22 21:01file1.link
-rwxrwxrwx 3 jerry jerry 34 Nov 22 21:01file1.link1
cpcp file1 file2 file3 … dir//拷贝多个文件到某个目录,有多个源文件情况下,最后这个参数必须是目录
-a //相当与 –dpr
-d (--no-dereference OR --preserve=links)//如果有link文件,则拷贝link文件,而不是link文件的原文件
-p (--preserve=mode,ownership,timestamps)//连同原文件的mode,拥有者,所属群组,时间戳属性一起复制
-r(--recursive) //递归拷贝
-i(--interactive) //交互模式,拷贝时,如果有同名的文件,在覆盖之前先询问
-f //强制模式,若目标文件已存在且无法开启,则移除之后再试一次(什么时候会用到??)
-l (--link)//不是复制文件,而是建立hard link
-s (--symbolic-link)//不是复制文件,而是建立symbolic link
-u, --update //当目标文件已存在时,只有源文件较新时才覆盖
//拷贝多个文件到某个目录
jerry@ubuntu:~/dir1$cp file1 file2 file3 dir1
jerry@ubuntu:~/dir1$ ls-R dir1
dir1:
file1 file2 file3 link.file
//hard link, symbolic link
jerry@ubuntu:~/dir1$cp -l ls ls.hard
jerry@ubuntu:~/dir1$cp -s ls ls.sym.link
jerry@ubuntu:~/dir1$ls -l ls.*
-rwxr-xr-x 2 jerry jerry43 Nov 25 07:58 ls.hard
lrwxrwxrwx 1 jerryjerry 2 Nov 25 08:01 ls.sym.link ->ls
//-p
jerry@ubuntu:~/dir$ ls-l file.symbolic.link
lrwxrwxrwx 1 jerry jerry5 Nov 26 06:21 file.symbolic.link -> file1
jerry@ubuntu:~/dir$ cpfile.symbolic.link cpfile //默认的是cp link文件的源文件
jerry@ubuntu:~/dir$ cp-d file.symbolic.link cp_d_file //-d的话,cp一个link文件
jerry@ubuntu:~/dir$ls -l
lrwxrwxrwx 1 jerryjerry 5 Nov 26 06:23 cp_d_file ->file1
-rwxrwxr-x 1 jerryjerry 34 Nov 26 06:22 cpfile
-rwxrwxrwx 1 jerryjerry 34 Nov 22 21:01 file1
lrwxrwxrwx 1 jerryjerry 5 Nov 26 06:21file.symbolic.link -> file1
时间: 2012-11-27 21:08
作者: txr_2012
今天不想看了,偷个懒,只看了一点:
-------------------------
如何操作“-”开头的文件或者目录如,想要创建一个文件“-a”,如果直接touch -a,系统会认为-a是参数,这个时候可以“touch ./-a” 或者“touch -- -a”
所以linux的命名建议是,文件或者目录命名不要使用“-”开头
jerry@ubuntu:~/dir$touch -a
touch: missing fileoperand
Try `touch --help' formore information.
jerry@ubuntu:~/dir$touch ./-a
jerry@ubuntu:~/dir$ ls-l ./-a
-rw-rw-r-- 1 jerry jerry0 Nov 27 04:11 ./-a
----
jerry@ubuntu:~/dir$touch -- -a
jerry@ubuntu:~/dir$ ls-l -- -a
-rw-rw-r-- 1 jerry jerry0 Nov 27 04:16 –a
mvl 常用方式:
mv file1 file2 file3 dir1
-f //强制移除,如果目标已经存在,直接覆盖
-i //询问模式
-u //目标档案已存在,且源文件较新时,才覆盖
mv目录的时候,如果目标目录非空,貌似就没有办法mv了?
jerry@ubuntu:~/dir/dir1/dir11$ls
file1
jerry@ubuntu:~/dir$ mvdir11 dir1
mv: cannot move `dir11'to `dir1/dir11': Directory not empty
l Note: rename可以用于批量重命名
时间: 2012-11-30 16:51
作者: 732298281
好东西!
时间: 2012-12-2 14:18
作者: txr_2012
鸟哥的linux私房菜在线网站:
http://vbird.dic.ksu.edu.tw/
时间: 2012-12-16 21:50
作者: txr_2012
最近工作有点忙,都没时间看书,还好,今天看了一些。一定要坚持更新这个帖子,直到把这本书看完一遍。努力工作,认真生活,come on~
时间: 2012-12-16 21:53
作者: txr_2012
如何操作“-”开头的文件或者目录如,想要创建一个文件“-a”,如果直接touch -a,系统会认为-a是参数,这个时候可以“touch ./-a” 或者“touch -- -a”
所以linux的命名建议是,文件或者目录命名不要使用“-”开头
jerry@ubuntu:~/dir$touch -a
touch: missing fileoperand
Try `touch --help' formore information.
jerry@ubuntu:~/dir$touch ./-a
jerry@ubuntu:~/dir$ ls-l ./-a
-rw-rw-r-- 1 jerry jerry0 Nov 27 04:11 ./-a
----
jerry@ubuntu:~/dir$touch -- -a
jerry@ubuntu:~/dir$ ls-l -- -a
-rw-rw-r-- 1 jerry jerry0 Nov 27 04:16 –a
mvl 常用方式:
mv file1 file2 file3 dir1
-f //强制移除,如果目标已经存在,直接覆盖
-i //询问模式
-u //目标档案已存在,且源文件较新时,才覆盖
mv目录的时候,如果目标目录非空,貌似就没有办法mv了?
jerry@ubuntu:~/dir/dir1/dir11$ls
file1
jerry@ubuntu:~/dir$ mvdir11 dir1
mv: cannot move `dir11'to `dir1/dir11': Directory not empty
Note: rename可以用于批量重命名
basename/dirname一个路径名中,除了最后那个名字以外,剩下的部分,可以使用dirname获取到;最后的文件名/目录名,可以使用basename获取到
jerry@ubuntu:~/dir$basename /home/jerry/file
file
jerry@ubuntu:~/dir$dirname /home/jerry/file
/home/jerry
jerry@ubuntu:~/dir$basename /home/jerry/
jerry
jerry@ubuntu:~/dir$dirname /home/jerry/
/home
cat(concatenate,连续)cat file //如果某个文件中的行数过多,不宜使用这个命令,因为输出一大片东东之后,文件开头的信息都已经翻屏,看不见了
-A, 相当于-vET选项
-b,输出时显示行号,但是空白行不做行号的编号
-n,输出时显示行号,而且空白行也编号
-v,列出一些看不出的特殊字符
-E,--show-ends,将每行结尾处的换行符$显示出来
-T,将Tab键以^I显示出来
jerry@ubuntu:~/dir$ cat-An file
1 e$
2 f^I^Ig$
3 d$
4 $
tac 反向显示文件内容(该命令与cat命令拼写相反)
jerry@ubuntu:~/dir$ tacfile
line3
line2
line 1
nl(number lines of files)nl与cat -n类似,而且显示行号的时候,有更多的显示方式
nl -b a file //空行也同样列出
nl -b t file //空行不列出行号
moremore file
空格 //下一页
回车 //向下翻一行
:f //显示文件名和行号(当前屏幕下方那一行的行号)
b或者ctrl-b //back,向上翻页
/str //向下搜索字符串
q //退出more查看
less【Note:】我们使用man cmd查看某个命令的使用方式的时候,其实就是调用了less命令来查看的。
空格键 :向下翻劢一页;
b :也是上翻页
[pagedown]:向下翻劢一页;
[pageup] :向上翻劢一页;
/字符串 :向下搜寻『字符串』的功能;
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与/或? 有关!)
N :反向癿重复前一个搜寻 (与/或者?有关!)
q :离开 less 这个程序;
headhead -n num file//显示文件的前num行
head -n -num file//若file中共有t行,显示前面的(t-num)行,也就是,从后面数num行,在此之前的信息都打印出来
tailtail -n num file //显示文件file的后面num行
tail -f file //如果file中有新追加的行,动态输出到屏幕
tail -n +num file //从前面数,第num行及其之后的行,都打印出来
【example】如果输出文件file的11-20行信息?
head -n20 file | tail -n 10
odod,dump files in octal and otherformats,八进制和其他格式的转储文件
od -t a file //默认字符输出
od -t c file //ASCII字符输出
od -t o/d file //八/十进制
//ASCII格式读取文件内容
[root@www ~]# od -t c /usr/bin/passwd
//文件内容以8进制形式列出储存值,并与ASCII列表对照表
jerry@ubuntu:~/dir$ od-t oCc /etc/issue
0000000 125142 165 156 164 165 040 061 062 056 060 064 040 114 124 123
U b u n t u 1 2 . 0 4 L T S
0000020 040134 156 040 134 154 012 012
\ n \ l \n \n
0000030
有关文件的atime,ctime,mtime的区分atime应该是指文件被访问的时间;ctime是指文件的权限与属性改变的时间;mtime是指文件内容发生改变的时间
touchtouchfile //更新文件时间,如果档案不存在则创建文件
-a 仅仅修订access time
-c 仅仅修订档案的时间,如果档案不存在也不创建该档案
-d 使用后面跟着的日期参数来更新文件的日期,而不是使用当前日期来来更新文件的日期
-m 仅仅修订mtime
-t 使用后面跟着的时间参数来更新文件的时间,而不是使用系统的当前时间来更新文件时间(这个参数可以修改atime,mtime,但是不能修改ctime;文件的属性和权限修改时间ctime一般不能被修改,需要注意一下)
jerry@ubuntu:~/dir$ ls-l test
-rw-rw-r-- 1 jerry jerry0 Dec 16 10:00 test
jerry@ubuntu:~/dir$touch -t 201212161500 test
jerry@ubuntu:~/dir$ll test
-rw-rw-r-- 1 jerry jerry0 Dec 16 15:00 test
umaskumask //显示创建文件、目录的时候,默认的属性
umask -S //以符号的形式显示
umask xxx //修改默认的创建属性
Note: umask看到的一串数字(后面的三位),使用777减去这串数字,就是默认的属性,当创建目录的时候,就会使用这个默认属性;当创建文件的时候,会把使用(默认属性减掉可执行权限)作为创建文件的属性
jerry@ubuntu:~/dir$umask ;umask -S
0002
u=rwx,g=rwx,o=rx
jerry@ubuntu:~/dir$mkdir d1; touch d2;
jerry@ubuntu:~/dir$ ls-l
drwxrwxr-x 2 jerry jerry 4096 Dec 16 16:20 d1
-rw-rw-r-- 1 jerryjerry 0 Dec 16 16:20 d2
chattr ,lsattrchattr ,lsattr设置于查询档案的隐藏属性
chattr [+-=][ASacdistu] file|dir 增加/减少/设置为某个属性
a //设定a属性之后,只能增加,不能删除或者修改数据,只有root用户才有权限设置这个属性
i //设定了这个属性的档案,不能够被删除,改名或者设定连接,也无法写入内容
root@ubuntu:/home/jerry/dir#chattr +i test
root@ubuntu:/home/jerry/dir#lsattr test
----i--------e- test
root@ubuntu:/home/jerry/dir#rm test
rm: cannot remove`test': Operation not permitted
root@ubuntu:/home/jerry/dir#echo aa>>test
-su: test: Permission denied
时间: 2012-12-28 21:57
作者: txr_2012
前段时间好忙,没有时间也没有精力看书;最近项目终于告一段落了,而且过元旦期间时间还蛮闲的,要加油好好看看书了,:)
哎,忙的时候忙的一塌糊涂;闲的时候,没事可做也是无聊得很,还是收收心,看看书吧:)
把心沉下来,爱生活,爱技术,come on~
时间: 2012-12-28 23:08
作者: txr_2012
SUIDl 除了常见的rwx属性之外,还有两种属性,s,t,这个属性是与系统账号,系统程序相关的
jerry@ubuntu:~$ls -ld /tmp; ls -ld /usr/bin/passwd
drwxrwxrwt13 root root 4096 Dec 27 14:22 /tmp
-rwsr-xr-x 1 root root 41284Apr 8 2012 /usr/bin/passwd
l 使用一个例子来说明passwd这个文件所具有的SUID(Set UID)这个特殊权限的作用:
Vbird对于passwd这个二进制文件具有可执行的权限,passwd这个文件拥有者是root. 当vbird执行passwd这个命令来修改密码(会更新/etc/shadow这个存放密码的文件)的时候,vbird这个用户会暂时获得passwd拥有者root的权限,就可以修改/etc/shadow了。
在这里,能够“暂时获得root权限”,就是因为passwd具有SUID的权限属性
时间: 2012-12-30 00:39
作者: txr_2012
本帖最后由 txr_2012 于 2012-12-30 00:43 编辑
今天白天出去找同学玩了,就木有看书,晚上回来之后,看了一点点
SGIDSet GroupID
如果权限属性s出现在文件的所属群组的x属性的位置上,就称为SGID权限属性
jerry@ubuntu:~$ ls -l /usr/bin/mlocate
-rwxr-sr-x1 root mlocate 34432 Aug 17 2011/usr/bin/mlocate
l 仍然使用一个例子来说明SGID的作用:
使用vbird这个账号去执行locate(-rwx--s--x root slocate)这个命令的时候,vbird会暂时获得slocate这个群组的权限,而对于文件mlocate.db(-rw-r----- 1 root slocate)而言,slocate这个群组的账户是可读这个文件的,所以,vbird这个账户这个时候可读文件mlocate.db
l 对于目录而言,也可以具有SGID的权限属性。目录如果具有SGID属性,那么,在此目录下新建文件的时候,文件的所属群组与父目录的所属群组有关系。
SBIT(Sticky Bit)这个属性只对目录而言有意义,对某个目录具有SBIT权限属性,某个用户如果对于这个目录具有wx属性,那么该用户在该目录下建立的文件/目录,只有该用户自己和root用户可以将此文件删除。而通常情况下,某个用户对于某个目录具有rwx权限,没有SBIT权限的情况下,这个用户可以删除该目录下的所有文件。
jerry@ubuntu:~$ls -ld /tmp
drwxrwxrwt 14 root root 4096 Dec 2922:57 /tmp
时间: 2012-12-30 00:43
作者: txr_2012
SUID/SGID/SBIT 权限设定
如何进行SUID/SGID/SBIT的权限设定呢?通过几个例子来说明
4,2,1分别代表SUID,SGID,SBIT
//使用chmod设定SUID,SGID,SBIT属性
jerry@ubuntu:~/dir$ ls -l test
-rwxrwxrwx 1 jerry jerry 5 Dec 16 18:34 test
jerry@ubuntu:~/dir$ chmod 7777 test
jerry@ubuntu:~/dir$ ls -l test
-rwsrwsrwt 1 jerry jerry 5 Dec 16 18:34 test
//[note]如果没有可执行权限x,对于文件拥有者,文件所属群组,其他人有s,s,t的权限,那么会显示为大写的S,S,T,这其实表示的是“空的”权限,因为连可执行权限x都没有了,文件所具有的s,s,t是没有意义的
jerry@ubuntu:~/dir$ chmod 666 test2; ls -l test2
-rw-rw-rw- 1 jerry jerry 0 Dec 29 23:59 test2
jerry@ubuntu:~/dir$ chmod 7666 test2
jerry@ubuntu:~/dir$ ls -l test2
-rwSrwSrwT 1 jerry jerry 0 Dec 29 23:59 test2
//使用类似于“u+s”这种格式
jerry@ubuntu:~/dir$ ls -l test2
-rwxrwxrwx 1 jerry jerry 0 Dec 29 23:59 test2
jerry@ubuntu:~/dir$ chmod u+s test2
jerry@ubuntu:~/dir$ ls -l test2
-rwsrwxrwx 1 jerry jerry 0 Dec 29 23:59 test2
时间: 2013-9-14 09:15
作者: txr_2012
今天回来看看这个帖子,半年多了没有再去碰它,不是因为把它忘记了,只是因为现在意识到当前工作中的短板不在linux的基本操作上,而在其他方面。我想要说的是,我不会放弃它的,有一天我会再回来的
时间: 2013-10-11 08:03
作者: mustconfident
mak
通信人家园 (https://www.txrjy.com/) |
Powered by C114 |