linux 系统命令学习笔记(一)

1、pwd 命令
系统输入#pwd
它的意思是﹕Print Working Directory
你目前所处的系统位置
 
例子:
root@www ~]# pwd [-P]
选项与参数:
-P  :显示出确实的路径,而非使用连结 (link) 路径。
范例:单纯显示出目前的工作目录:
[root@www ~]# pwd
/root    spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!

2、路径:绝对路径,相对路径
cd ..
我们用“..”表示上一级目录;“.”表示当前目录
#cd / 指根目录
#cd .. 上一级目录
相对路径
绝对路径   绝对路径第一个字符一定是 / ,否则就是相对路径
../test1
 
例子:

[root@www ~]# cd [相对路径或绝对路径]
# 最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号罗!
[root@www ~]# cd ~vbird
# 代表去到 vbird 这个使用者的家目录,亦即 /home/vbird
[root@www vbird]# cd ~
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www ~]# cd
# 没有加上任何路径,也还是代表回到自己家目录的意思喔!
[root@www ~]# cd ..
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www /]# cd -
# 表示回到刚刚的那个目录,也就是 /root 罗~
[root@www ~]# cd /var/spool/mail
# 这个就是绝对路径的写法!直接指定要去的完整路径名称!
[root@www mail]# cd ../mqueue
# 这个是相对路径的写法,我们由/var/spool/mail 去到/var/spool/mqueue 就这样写!

  
总结:
.         代表此层目录
..        代表上一层目录
-         代表前一个工作目录
~         代表『目前使用者身份』所在的家目录
~account  代表 account 这个使用者的家目录(account是个帐号名称
 
3、新建删除文件夹
创建新的目录,就使用mkdir (make directory)


例子:
[root@www ~]# mkdir [-mp] 目录名称
选项与参数:
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递回创建起来!

范例:请到/tmp底下尝试创建数个新目录看看:
[root@www ~]# cd /tmp
[root@www tmp]# mkdir test
   
 
删除文件夹 rmdir 

例子:
[root@www ~]# rmdir [-p] 目录名称
选项与参数:
-p :连同上一级『空的』目录也一起删除

范例:将於mkdir范例中创建的目录(/tmp底下)删除掉!
[root@www tmp]# ls -l  
  
(注:使用rmdir命令目录必须为空白才可,否则你会碰到一个错误信息﹐告知您要移除的目录并不是空的)
强制删除文件 rm -rf
rm 这个命令(remove)基本上是用来刪除档案的﹐-r 是 recursive 模式﹐会将目录其下的所有文件和子目录刪除掉﹔通常进行 rm 的時候﹐在 Redhat 里面预设会是 -i (interactive) 模式﹐也就是在刪除档案之前会提出询问﹐如果您按 y 才真正刪除﹐而 -f 則是 force 的意思﹐則不再提出询问直接删除;
在 Linux 里面执行 rm 命令﹐一旦生效是没办法‘反移除’动作的﹐也就是说﹕如果文件一经删除﹐除非您有备份﹐否则没办法救回。所以﹐如果您用 root 身份﹐执行 rm -rf / 的话﹐结果是将整个 Linux 系统砍光。
复制文件:cp test.ls test.ls.copy
 
总结:
cd:变换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
 
4、权限属性
“ls”是 list 的意思;
ls显示当前目录下的文件目录
ls -l文件目录以详细信息形式显示出来
ls test* ‘*’通配字符,所有以test开头的目录文件都会被列出来
ls -a显示所有文件,包括隐藏文件
 
root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称
选项与参数:
-a  :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-A  :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录
-d  :仅列出目录本身,而不是列出目录内的文件数据(常用)
-f  :直接列出结果,而不进行排序 (ls 默认会以档名排序!)
-F  :根据文件、目录等资讯,给予附加数据结构,例如:
      *:代表可运行档; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;
-h  :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-i  :列出 inode 号码,inode 的意义下一章将会介绍;
-l  :长数据串列出,包含文件的属性与权限等等数据;(常用)
-n  :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!)
-r  :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R  :连同子目录内容一起列出来,等於该目录下的所有文件都会显示出来;
-S  :以文件容量大小排序,而不是用档名排序;
-t  :依时间排序,而不是用档名。
--color=never  :不要依据文件特性给予颜色显示;
--color=always :显示颜色
--color=auto   :让系统自行依据配置来判断是否给予颜色
--full-time    :以完整时间模式 (包含年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)
                       而非内容变更时间 (modification time)
 
范例一:将家目录下的所有文件列出来(含属性与隐藏档)
[root@www ~]# ls -al ~
total 156
drwxr-x---  4 root root  4096 Sep 24 00:07 .
drwxr-xr-x 23 root root  4096 Sep 22 12:09 ..
-rw-------  1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
-rw-------  1 root root   955 Sep 24 00:08 .bash_history
-rw-r--r--  1 root root    24 Jan  6  2007 .bash_logout
-rw-r--r--  1 root root   191 Jan  6  2007 .bash_profile
-rw-r--r--  1 root root   176 Jan  6  2007 .bashrc
drwx------  3 root root  4096 Sep  5 10:37 .gconf
-rw-r--r--  1 root root 42304 Sep  4 18:26 install.log
-rw-r--r--  1 root root  5661 Sep  4 18:25 install.log.syslog
# 这个时候你会看到以 . 为开头的几个文件,以及目录档 (.) (..) .gconf 等等,
# 不过,目录档档名都是以深蓝色显示,有点不容易看清楚就是了。

范例二:承上题,不显示颜色,但在档名末显示出该档名代表的类型(type)
[root@www ~]# ls -alF --color=never  ~
total 156
drwxr-x---  4 root root  4096 Sep 24 00:07 ./
drwxr-xr-x 23 root root  4096 Sep 22 12:09 ../
-rw-------  1 root root  1474 Sep  4 18:27 anaconda-ks.cfg
-rw-------  1 root root   955 Sep 24 00:08 .bash_history
-rw-r--r--  1 root root    24 Jan  6  2007 .bash_logout
-rw-r--r--  1 root root   191 Jan  6  2007 .bash_profile
-rw-r--r--  1 root root   176 Jan  6  2007 .bashrc
drwx------  3 root root  4096 Sep  5 10:37 .gconf/
-rw-r--r--  1 root root 42304 Sep  4 18:26 install.log
-rw-r--r--  1 root root  5661 Sep  4 18:25 install.log.syslog
# 注意看到显示结果的第一行,嘿嘿~知道为何我们会下达类似 ./command
# 之类的命令了吧?因为 ./ 代表的是『目前目录下』的意思啊!至於什么是 FIFO/Socket ?
# 请参考前一章节的介绍啊!另外,那个.bashrc 时间仅写2007,能否知道详细时间?

范例三:完整的呈现文件的修改时间 *(modification time)
[root@www ~]# ls -al --full-time  ~
total 156
drwxr-x---  4 root root  4096 2008-09-24 00:07:00.000000 +0800 .
drwxr-xr-x 23 root root  4096 2008-09-22 12:09:32.000000 +0800 ..
-rw-------  1 root root  1474 2008-09-04 18:27:10.000000 +0800 anaconda-ks.cfg
-rw-------  1 root root   955 2008-09-24 00:08:14.000000 +0800 .bash_history
-rw-r--r--  1 root root    24 2007-01-06 17:05:04.000000 +0800 .bash_logout
-rw-r--r--  1 root root   191 2007-01-06 17:05:04.000000 +0800 .bash_profile
-rw-r--r--  1 root root   176 2007-01-06 17:05:04.000000 +0800 .bashrc
drwx------  3 root root  4096 2008-09-05 10:37:49.000000 +0800 .gconf
-rw-r--r--  1 root root 42304 2008-09-04 18:26:57.000000 +0800 install.log
-rw-r--r--  1 root root  5661 2008-09-04 18:25:55.000000 +0800 install.log.syslog
# 请仔细看,上面的『时间』栏位变了喔!变成较为完整的格式。
# 一般来说, ls -al 仅列出目前短格式的时间,有时不会列出年份,
# 藉由 --full-time 可以查阅到比较正确的完整时间格式啊!

  
#chmod u+x test.ls
#chmod g+wx test.ls
#chmod o+x test.ls
或是合为一句﹕
#chmod u+x,g+wx,o+x test.ls
 
这个 chmod 命令是 change mode 的意思
第一行是为 user 增加 x 权限;
第二行是为 group 增加 w 和 x 权限;
第三行是为 others 增加 x 权限﹐如果您这时候再使用 ls -l 的話﹐您会看到 test.ls 的权限会变成﹕rwxrwxr-x 我们使用“+”来增加权限﹐如果使用“-”是刪除权限﹐如果使用“=”則是指定权限值。
不过,您是否觉得这样输入命令很麻烦呢﹖有没有更方便的办法啊?答案是﹕有的﹗
现在,请您输入这样的命令﹕ chmod 777 test.ls 
您会看到test.ls的权限会变成成﹕rwxrwxrwx,也就是所有使用者都具备所有权限了;
我们给每一个使用者都赋予‘7’这个数值﹐它分別是﹕1(x)+2(w)+4(r)的总和﹐如果是‘0’的話﹐就表示沒用任何权限。
事实上﹐权限值真正的计算方法以二进制进行的﹕
先让我们看看 x,r,w 的 bit 位元表示方式﹕
x: 001
w: 010
r: 100
rwx 的位置都是 111﹐换成十进位就是 7 了。
下面您如果输入﹕ chmod 750 test.ls 
权限会变成﹕rwxr-x---
1) 将 750 换成二进位﹐就是﹕111,101,000
2) 分別将 rwx 的位置代入得﹕rwx,r-x,---
(方法﹕1 对应的权限就是打开﹐0 对应的就是关闭)
就这么简单 ^_^ 
 
chgrp=change group改变文件所属用户组
chown=change owner改变文件所有者
 
 
 

猜你喜欢

转载自eileenlml.iteye.com/blog/1628062