通信人家园

标题: 《鸟哥的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: testermission 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/dir11ermission denied
ls: cannot accessdir1/file1: Permission denied
dir11  file1
1) w
拥有这项权限的话,可以在改目录之下:
o  建立新的档案与目彔;
o  删除已经存在的档案与目彔(不论该档案的权限为何!)
o  将已存在的档案或目录进行更名;
o  搬移该目彔内的档案、目录位置。
3x
拥有某个目录的执行权限,才能够进入该目录




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也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。 FIFOfirst-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目录
usrUnix 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

cd
cd - 返回上一次的目录
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/

mkdirmake 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

ls
l      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

cp
cp 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
mv
l       常用方式:
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
mv
l       常用方式:
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 //空行不列出行号
more
more file
空格 //下一页
回车 //向下翻一行
:f //显示文件名和行号(当前屏幕下方那一行的行号)
b或者ctrl-b //back,向上翻页
/str  //向下搜索字符串
q //退出more查看
less
【Note:】我们使用man cmd查看某个命令的使用方式的时候,其实就是调用了less命令来查看的。
空格键    :向下翻劢一页;
b   :也是上翻页
[pagedown]:向下翻劢一页;
[pageup] :向上翻劢一页;
/字符串     :向下搜寻『字符串』的功能;
?字符串     :向上搜寻『字符串』的功能;
n        :重复前一个搜寻 (/? 有关!)
N        :反向癿重复前一个搜寻 (/或者?有关!)
q        :离开 less 这个程序;
head
head -n num file//显示文件的前num行
head -n -num file//若file中共有t行,显示前面的(t-num)行,也就是,从后面数num行,在此之前的信息都打印出来
tail
tail -n num file //显示文件file的后面num行
tail -f file //如果file中有新追加的行,动态输出到屏幕
tail -n +num file //从前面数,第num行及其之后的行,都打印出来
【example】如果输出文件file的11-20行信息?
head -n20 file | tail -n 10
od
od,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是指文件内容发生改变的时间
touch
touchfile //更新文件时间,如果档案不存在则创建文件
-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
umask
umask //显示创建文件、目录的时候,默认的属性
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 ,lsattr
chattr ,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

SUID
l       除了常见的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 编辑

今天白天出去找同学玩了,就木有看书,晚上回来之后,看了一点点

SGID
Set 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