8.chmod 命令
中文描述: 改变文件保护,文件保护控制用户对文件的访问权,有三个安全级别,所有者级别,组访问级别,其他用户访问级别,在这三个级别中,又有三种权限:读(r),写(w),执行(x)。(用户可以ls-lg来观看某一文件的所属的group)对于文件来说读权限意味着可以看文件的内容,写文件可以修改或删除文件,执行权限则可以执行它(类似于DOS下的EXE,COM, BAT文件)。对于目录来说,读权限意味着可以查看目录下的内容,写权限意味着能在目录下建立新文件,并可以从目录中删除文件,执行权限意味着可以从一个目录转变到另一个目录。 用法:chmod 一位8进制数 filename. 这个8位二进制就是上篇文章写的0000东西. 比如:如果你想让某个文件有运行的权限,但是只想给自己运行,别人只能读,那么可以使用 chmod u+x filenmame 其中u表示文件属组.x表示有x权限,(r代表可读,w代表可写,x代表可以运行) 如果想让同组的人来执行;那么就是: chmod g+x filename 举例:
[bkbll@market own]$ ls -l
total 12
-rw-rw-r-- 1 bkbll bkbll 39 Jul 30 20:29 1.c
-rw-rw-r-- 1 bkbll bkbll 43 Jul 18 13:58 1.h
-rw-rw-r-- 1 bkbll bkbll 88 Jul 18 14:03 2.c
[bkbll@market own]$ chmod u+x 1.c
[bkbll@market own]$ ls -l 1.c
-rwxrw-r-- 1 bkbll bkbll 39 Jul 30 20:29 1.c
[bkbll@market own]$ chmod g+x 1.c
[bkbll@market own]$ ls -l 1.c
-rwxrwxr-- 1 bkbll bkbll 39 Jul 30 20:29 1.c
[bkbll@market own]$ chmod o+w 1.c
[bkbll@market own]$ ls -l 1.c
-rwxrwxrw- 1 bkbll bkbll 39 Jul 30 20:29 1.c
[bkbll@market own]$
注意上面的权限位.
第一次是664(rw rw r)
第二次就成为:764 (rwx rw r)
第三次成为774 (rwx rwx r)
第四次成为:775(rwx rwx rx)呵呵;)头大了吗? 慢慢来,其实弄懂了权限位就很清楚了.
9. clear,date命令
中文描述:clear:清屏,相当与DOS下的cls;date:显示当前时间. 用法:clear;date; clear举例:就不用了吧?J
date举例:
[bkbll@market own]$ date
Mon Jul 30 21:10:41 HKT 2001
[bkbll@market own]$
10.mount 命令
中文描述:加载一个硬件设备.
用法:mount [参数] 要加载的设备 载入点. 举例: 加载软盘(在linux下软盘一第要mount上去才能用,和windows不同.) 要运行这个程序,您必须切换到root状态(忘记说su命令了) 先用 root登陆.(用ALT+F1,ALT+F2,…………ALT+F6切换终端).
[root@market /root]# mkdir /a /**建立一个目录,下节补讲
[root@market /root]# mount /dev/fd0H1440 /a
备注:如果mount /dev/fd0H1440 /a不成功 那么可以运行
mount -t msdos /dev/fd0H1440 /a 先建立一个目录,比如:/a表示根目录下的a.这样你mount成功后,可以直接象操作目录,文件一样 ,操作/a目录.
[root@market /a]# ls
1.jpg 2.pl 4.pl encrypt eschool.so test.pl 1.pl 3.pl decrypt eschool.bs facilities.cgi.bak 上面的就都是软盘里面的东西. 在取下软盘之前,必须先umount掉 umount掉之前,请先退出/a目录. 然后
[root@market /a]# cd ..
[root@market /]# umount /a
[root@market /]# ls /a
[root@market /]#
这样就把软盘umount掉了.
光盘就比较容易了:
[root@market /]# mount /dev/cdrom
[root@market /]# cd /mnt/cdrom
[root@market cdrom]# ls
CONTENTS.TXT Dos IE50 TOOLS WINDOWS handbook.doc
[root@market cdrom]#
缺省是mount到了/mnt的cdrom目录
10:su命令
中文描述:在不退出登陆的情况下,切换到另外一个人的身份.
用法:su -l 用户名(如果用户名缺省,则切换到root状态)
举例:
[bkbll@market own]$ whoami
bkbll
[bkbll@market own]$ su -l lltxyz
Password: /**这里输入用户lltxyz的密码
[lltxyz@market lltxyz]$ whoami
lltxyz
[lltxyz@market lltxyz]$
切换到root:
[bkbll@market own]$ whoami
bkbll
[bkbll@market own]$ su -l
Password:
[root@market /root]# whoami
root
[root@market /root]#
然后可以用exit和ctrl+d退出.
11.whoami,whereis,which,id
中文描述:确认自己在终端机上的身份以及查找应用命令程序等的路径以及帮助文档所在目录.
whoami:确认自己身份.
whereis:查询命令所在目录以及帮助文档所在目录.
which:查询该命令所在目录(类似whereis)
id:打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的UID和GID.)
用法:whoami;whereis 命令 ;which 命令;id
举例,当你从一台机器登陆到(telnet)到另外一台机器上面去的时候,如果登陆过多,您就可能忘记自己的身份了,
这会给你的工作带来一些不必要的麻烦.不过使用whoami可以知道自己是谁:
[bkbll@market bkbll]$ whoami
bkbll /*这里就是你登陆的用户名
[bkbll@market bkbll]$
当你在使用一条命令的时候,是否想知道该条命令具体是放在哪个目录呢?whoami以及whereis提供了查询的功能.
所不同的是whereis会在整个的命令目录下面查找:具体包括:/bin,/usr/bin/,/usr/sbin/等.而且还会查找出该条命令的源码,
帮助等文件所在的目录.(前提是你要装了所有的源码).而which则只会简单的查找一些固定的目录.举例:
[bkbll@market bkbll]$ whereis bin
bin: /usr/local/bin
[bkbll@market bkbll]$ which bin
/usr/bin/which: no bin in (~HOME/./:/bin:/usr/bin:/usr/sbin/:/usr/local/bin:/bin :/usr/bin:/usr/X11R6/bin:/home/bkbll/bin)
从这里就能看出whereis比which搜索全面吧?
[bkbll@market bkbll]$ whereis man
man: /usr/bin/man /etc/man.config /usr/local/man /usr/man/man1/man.1.gz /usr/man /man7/man.7.gz
[bkbll@market bkbll]$ which man
/usr/bin/man
whereis命令能查找出和该命令相关的所有信息,比如配置文件(man.config),帮助文件路径:/usr/man/man1/man.1.gz
12.grep,find
中文描述:最有效的linux搜索软件.grep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索.
基本用法: grep 搜索的字符串 目录 (-r 如果想在该目录的子目录下面查找);find 目录名 -name 文件名 -print
举例:
[bkbll@market myown]$ grep success * /*查找当前目录下面所有文件里面含有success字符的文件
1.pl:print "success$i!n";} /*文件1.pl中有success字符串
3.pl:print "success$i!n";} /* 文件3.pl中有success字符串
decrypt: print "encrypted $file to $target success!n" ; /*文件decrypt有.
en: print "encrypted $file to $target success!n" ; /*文件en满足条件
encrypt: print "encrypted $file to $target success!n" ;
总的说来,每一行均是符合要求的文件内容片段.在第一个冒号的前面就是符合要求的文件名.这个在你在文件数量很大的时候,查找显得特别有用,
对我当年学习以及熟悉bbs的源码取了很大的作用.
[bkbll@market myown]$ find /etc -name inittab -print /*格式是:find 目录名(/etc根目录下etc目录) -name 文件名(inittab) -print
find: /etc/X11/xdm/authdir: Permission denied /*权限不够,不能浏览这个目录.
find: /etc/default: Permission denied /*权限不够
/etc/inittab /*查到这个文件,路径是/etc/inittab
find: /etc/webmin: Permission denied /* 权限不够.
[bkbll@market myown]$
如果没有找到符合要求的内容,文件,将会直接返回,没有任何输出.
13.kill
中文描述:可以杀死某个正在进行或者已经是dest状态的进程.(关于进程的理解,您可以认为是一个程序,但是是程序的最小单位.)
比如你正在运行的程序已经僵死了,可以形容成为"死机 "状态,在win98下你只有重启,但是在这里你可以使用kill命令来杀死你的这个程序进程 ,回到正常的界面.
比如:
[bkbll@market /bin]$ ftp download.microsoft.com
光标就死在那里不动了,这个时候该怎么处理呢?如果你有多个终端,你连上去,把你运行的这个进程给kill掉就好了.
比如:我用alt+F2,3,4,5 键切换到另一个终端console,进去后:
运行:
[bkbll@market /bin]$ ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:05 init [3]
2 ? SW 0:00 [kflushd]
3 ? SW 0:00 [kupdate]
4 ? SW 0:00 [kpiod]
5 ? SW 0:00 [kswapd]
............................
12890 pts/0 S 0:00 login -- bkbll
12891 pts/0 S 0:00 -bash
13138 pts/0 T 0:00 ftp download.microsoft.com
13159 pts/0 R 0:00 ps ax
其中第一列的数字就是我们需要的PID,进程ID,这个在系统上是唯一的,然后从COMMAND列里面找到对应的PID,比如:刚才我们 ftp 那个进程的PID就是
13138,那我运行:
[bkbll@market /bin]$ kill -9 13138
[1]+ Killed ftp download.microsoft.com
[bkbll@market /bin]$
其中-9表示强制执行,如果你直接kill 13138没有反映,那么请加上-9参数.
执行完了,再用ps -ax命令查看进程:
bkbll@market /bin]$ ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:05 init [3]
2 ? SW 0:00 [kflushd]
3 ? SW 0:00 [kupdate]
4 ? SW 0:00 [kpiod]
5 ? SW 0:00 [kswapd]
............................
12889 ? S 0:00 in.telnetd: 202.202.50.201
12890 pts/0 S 0:00 login -- bkbll
12891 pts/0 S 0:00 -bash
13163 pts/0 R 0:00 ps ax
[bkbll@market /bin]$
其中刚才的那个ftp.进程就已经被杀了.你再切换回来发现终端已经恢复正常.