收藏 分销(赏)

linux-培训文档.doc

上传人:仙人****88 文档编号:12010237 上传时间:2025-08-27 格式:DOC 页数:11 大小:93KB 下载积分:10 金币
下载 相关 举报
linux-培训文档.doc_第1页
第1页 / 共11页
linux-培训文档.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
Chmod 用途:改变文件或目录的读、写、执行的允许权限 l mode : 权限设定字串,格式如下 : [ugoa...][[+-=] [rwxX]...][,...],其中 u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 -c : 若该档案权限确实已经更改,才显示其更改动作 -f : 若该档案权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) --help : 显示辅助说明 --version : 显示版本 l 范例 : 1. 将档案 file1.txt 设为所有人皆可读取 : chmod ugo+r file1.txt  2. 将档案 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt  3. 将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 : chmod ug+w,o-w file1.txt file2.txt  4. 将 ex1.py 设定为只有该档案拥有者可以执行 : chmod u+x ex1.py  5. 将目前目录下的所有档案与子目录皆设为任何人可读取 : chmod -R a+r *  l 此外chmod也可以用数字来表示权限如 chmod 777 file 语法为:chmod abc file 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6; 若要r-x属性则4+1=7。 范例: 1. chmod a=rwx file  和 chmod 777 file  效果相同 2. chmod ug=rwx,o=x file  和 chmod 771 file  效果相同 3. 若用chmod 4755 filename可使此程序具有root的权限 chown 用途:更改文件的所有者或组。命令由单词change owner组合而成。 使用示例: 1. 更改文件的所有者: chown jim program.c 文件 program.c 的所有者更改为 jim。作为所有者,jim 可以使用 chmod 命令允许或拒绝其他用户访问 program.c。 2. 更改目录的所有者:chown -R john:build /tmp/src 将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。 - v 显示chown命令所做的工作。  touch 相关概念: 1. modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。  2. status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。 3. access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。举例来说,使用cat去读取 ~/.bashrc,就会更新atime了。 举例来说,我们来看一看/etc/man.config文件的时间。 [root@linux ~]# ls -l /etc/man.config -rw-r--r--  1 root root 4506 Apr  8 19:11 /etc/man.config [root@linux ~]# ls -l --time=atime /etc/man.config -rw-r--r--  1 root root 4506 Jul 19 17:53 /etc/man.config [root@linux ~]# ls -l --time=ctime /etc/man.config -rw-r--r--  1 root root 4506 Jun 25 08:28 /etc/man.config 在默认的情况下,ls显示的是该文件的mtime,也就是这个文件的内容上次更改的时间。我的系统是在6/25安装的,因此,这个文件产 生但状态更改的时间就回溯到那个时间点。因为刚才的范例中使用到这个文件,所以,它的atime就会变成刚刚使用的时间了。 文件的时间很重要,因为如果误判文件时间,可能会造成某些程序无法顺利运行。那么,万一我发现了一个文件来自将来(很多时候会有这个问题的。我们在 安装的时候,提到的GMT时间就是那个意思),该如何让该文件的时间变成“现在”的时刻呢?很简单,用touch命令即可。 [root@linux ~]# touch [-acdmt] 文件 参数: -a : 仅修改access time。 -c : 仅修改时间,而不建立文件。 -d : 后面可以接日期,也可以使用 --date="日期或时间" -m : 仅修改mtime。 -t : 后面可以接时间,格式为 [YYMMDDhhmm] 范例: 范例一: 新建一个空的文件。 [root@linux ~]# cd /tmp [root@linux tmp]# touch testtouch [root@linux tmp]# ls -l testtouch -rw-r--r--  1 root root    0 Jul 19 20:49 testtouch # 注意,这个文件的大小是0。在默认的状态下,如果touch后面接文件, # 则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该文件不存在, # 则会主动建立一个新的空文件。例如上面这个例子。 范例二: 将 ~/.bashrc复制成为bashrc,假设复制完全的属性,检查其日期。 [root@linux tmp]# cp ~/.bashrc bashrc [root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rwxr-xr-x  1 root root 395 Jul  4 11:45 bashrc  <==这是mtime -rwxr-xr-x  1 root root 395 Jul 19 20:44 bashrc  <==这是atime -rwxr-xr-x  1 root root 395 Jul 19 20:53 bashrc  <==这是ctime # 在这个案例中,我们使用了 ; 命令分隔符,它的用法我们会在Bash shell中提到。 # 此外,ll是ls -l的命令别名,这个也会在bash shell中再次提及, # 当前可以简单地想成,ll就是ls -l的简写。至于 ; 则是同时发出两个命令, # 且让两个命令“按顺序”执行的意思。上面的结果中可以看到,该文件更改的日期 # Jul 4 11:45,但是atime与ctime不一样。 范例三: 修改案例二的bashrc文件,将日期调整为两天前。 [root@linux tmp]# touch -d "2 days ago" bashrc [root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rwxr-xr-x  1 root root 395 Jul 17 21:02 bashrc -rwxr-xr-x  1 root root 395 Jul 17 21:02 bashrc -rwxr-xr-x  1 root root 395 Jul 19 21:02 bashrc # 与上一个范例比较,本来是19日的变成了17日了(atime/mtime)。 # 不过,ctime并没有跟着改变。 范例四: 将上个范例的bashrc日期改为2005/07/15 2:02。 [root@linux tmp]# touch -t 0507150202 bashrc [root@linux tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rwxr-xr-x  1 root root 395 Jul 15 02:02 bashrc -rwxr-xr-x  1 root root 395 Jul 15 02:02 bashrc -rwxr-xr-x  1 root root 395 Jul 19 21:05 bashrc # 注意,日期在atime与mtime都改变了,但ctime则是记录当前的时间。 通过touch命令,可以轻松地修改文件的日期与时间。并且,也可以建立一个空文件。不过,要注意的是,即使复制一个文件,复制所有属性,但也没有办法复制 ctime属性。ctime可以记录文件最近改变状态(status)的时间。无论如何,还是要说明一下,我们平时看的文件属性中,比较重要的还是 mtime。我们关心的常常是这个文件的“内容”是什么时候更改的。 touch这个命令最常用的情况是: • 建立一个空文件。 • 将某个文件日期修改为当前日期(mtime与atime)。 Ln 相关概念: 在Unix世界里有两个'link'(连接),一般称之为硬连接和软连接。 一个硬连接仅仅是一个文件名。(一个文件可以有好几个文件名,只有将 最后一个文件名从磁盘上删除,才能把这个文件删掉。文件名的个数是由 ls(1)来确定的。所有的文件名都处于同一个状态,也就没有什么"源名字" 之说。 通常文件系统里的一个文件的所有名字包含着一样的数据信息,不过这样也不是必需的。)一个软连接(或符号连接)是完全不同的:它是 一个包含了路径信息的小小的指定文件。因此,软连接可以指向不同文件系统里的文件(比如由NFS装载的不同机器文件系统上的文件),甚至可以指向一个不一定确实存在的文件。在软连接文件被访问(系统调用open(2) 或stat(2))的时候,操作系统用该文件所包含的路径替换该文件的访问介入点,从而实现对所指文件的访问。(用命令rm(1)和unlink(2)可以删除 连接,但不是删除该文件所指向的文件。系统指定调用lstat(2)和readlink(2) 来读取连接文件与其所指文件的状态。到底是对软连接文件操作,还是对被 指向文件操作,由于不同操作系统件存在不同的系统调用,而存在着差异。) ln 在文件间产生连接。缺省时,产生硬连接,有-s选项,则产生符号(软)连接。 如果仅仅只给出一个文件名,那么ln将在当前目录里产生这个文件的连接, 也就是说,以该文件(的最后一个)名称等同的名字在当前目录里产生一个连接 (GNU范围内); 如果最后一个参数是一个已存在的目录名, ln 将在那个目录里给每一个源文件用以与源文件相同的文件名产生连接, (不同情况见以下--no-dereference的描述); 如果只给出两个文件名,ln将产生源文件的连接; 如果最后一个参数不是一个目录名或多于两个文件名,则报错。 缺省时,ln不删除已存在的文件或符号连接。 (因此,它可以被用来锁定目标文件,即当dest已经不存在时) 但选项-f可以强制执行。 在已存在的实现中,只有超级用户才能建立目录的硬连接。 POSIX 禁止系统调用link(2)和ln建立目录的硬连接 (但是允许在不同的文件系统间建立硬连接)。 范例: 1. 为了创建到一个文件的另一个链接(别名),请输入: ln    -f file1    file2 这会将 file1 链接到新的名称, file2。如果 file2 不存在,那么会创建该文件名。如果 file2 已经存在了,那么这个文件会被替换为指向 file1的一个链接。然后 file1 和 file2 文件名会指向同一个文件。对其中任何一个的更改都会出现在另一个中。如果一个文件名被 rm 命令删除,那么该文件并没有完全被删除,因为它仍然以其它的名字存在。 2. 为了将文件链接为另一个目录中的相同名字,请 输入: ln    index    dir1 这会将 index 链接到新的名称,dir1/index。 注意:在示例 1 中的 file2 是一个文件的名称;在示例 2 中的 dir1 是一个已经存在的目录。 3. 为了将几个文件链接为另一个目录中的名称,请输入: ln    file2    dir2/file3    /home/dir1 这会将 file2 链接到新的名称 /home/dir1/file2;将 dir2/file3 链接到新的名称 /home/dir1/file3。 4. 如果想要在 ln 命令中使用模式匹配字符,请输入: ln    dir1/* . 这会将 dir1 目录中的所有文件链接到当前目录中, . (点),给他们在 dir1 目录中同样的名称。 注意: 必须在星号和句点之间输入一个空格。 5. 为了创建一个符号链接,输入: ln -s /tmp/test test 这会在当前的目录中创建符号链接 test。 test 文件指向 /tmp/test 文件。如果 /tmp/test 文件已经存在了,那么 cat test 命令可以列出其内容。 6. 如果想要在不指明 TargetFile 参数的情况下得到相同的结果,请输入: ln -s /tmp/test watch 1. watch -n 修改时间 2. watch -d 高亮显示变化 Crontab 格式: * * * * * command 1. 字段含义: 第一到第五个“ *” 表示的内容: l 分(0-59) l 时(0-23) l 日(1-31) l 月(1-23,或者英文名) l 周(0-7,或者英文名,0和7均表示周日) “*” 引申含义: l 表示任意:* 号表示 “任意”(first-last)。 l 指定数字,表示指定的时间。 l 指定段,表示“开始-结束”内包含的数:比如3-6,表示3,4,5,6 l 指定列表:比如 “1,2,3,4″,”0-4,8-12″ l 指定“步长”:8-14/2 表示8,10,12,14 2. Command表示的内容: 1. 要执行的内容 范例: 1) 0 4  * * 0 root emerge --sync && emerge -uD world #每周日凌晨4点,更新系统 0 2 1 * * root   rm -f /tmp/*  #每月1号凌晨2点,清理/tmp下的文件 0 8 6 5 * root mail  robin</home/galeki/happy.txt #每年5月6日给robin发信祝他生日快乐 2) 假如,我想每隔2分钟就要执行某个命令,或者我想在每天的6点、12点、18点执行命令,诸如此类的周期,可以通过 “ / ” 和 “ , ” 来设置: */2   *   *   *   *           root      ...............      #每两分钟就执行........ 0 6,12,18   *   *   *    root      ...............      #每天6点、12点、18点执行........ 3) 每两个小时 0 */2 * * * echo "have a break now." >&gt; /tmp/test.txt 4) 晚上11点到早上8点之间每两个小时,早上八点 0 23-7/2,8 * * * echo "have a good dream:)" >> /tmp/test.txt 5) 每个月的4号与每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 command line 6) 1月1日早上4点 0 4 1 1 * command line Vi 范例 l $ vi +5 example1.c 光标到第5行 l $ vi +/int example1.c 光标就处于文件中第一个与指定模式串相匹配的那行上 1. 下面是自命令模式下执行的,在同一行上移动的自命令 n h 将光标左移一格。 n l 将光标右移一格。 n j 将光标下移一格。 n k 将光标上移一格。 n w 将光标移到下一个小字的前面。 n W 将光标移到下一个大字的前面。 n b 将光标移到前一个小字的前面。 n B 将光标移到前一个大字的前面。 n e 将光标移到下一个小字的后面。 n E 将光标移到前一个大字的后面。 n fc 把光标移到同一行的下一个c字符处。 n Fc 把光标移到同一行的前一个c字符处。 n tc 把光标移到同一行的下一个字符c的前一格。 n Tc 把光标移到同一行的前一个字符c的后一格。 n number| 把光标移到递number列上。 2. 下面是命令模式下在行间移动的子命令 n + 或Enter 把光标移至下一行第一个非空白字符。 n - 把光标移至上一行第一个非空白字符。 n 0 把光标移到当前行的第一个字符处。 n $ 把光标移到当前行的最后一个字符处。 n H 把光标移到屏幕最顶端一行。 n L 把光标移到屏幕最底端一行。 n M 把光标移到屏幕中间。 3. 下面是命令模式下改变屏幕显示的子命令 n z- 把当前行作为屏幕的最后一行,并重新显示屏幕。 n z. 把当前行作为屏幕的中间一行,并重新显示屏幕。 n Ctrl+l 重新显示屏幕当前内容。 n /pattern/z- 寻找pattern的下一个位置,并把所在行设为屏幕的最后一行。 4. 下面是在命令模式下用来显示页面的子命令 n Ctrl + f向后滚一页。 n Ctrl + d向后滚半页。 n Ctrl + b向前滚一页。 n Ctrl + u向前滚半页。 n Ctrl + e屏幕向下滚一行。 n Ctrl + y屏幕项上滚一行。 5. 下面是在命令模式下用来查找字符串所使用的子命令 n /pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。 n ?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。 n n 在上次指定的方向上,再次执行上次定义的查找。 n N 在上次指定的方向的相反方向上,再次执行上次定义的查找。 n /pattern/+number 将光标停在包含pattern的行后面第number行上。 n /pattern/-number 将光标停在包含pattern的行前面第number行上。 n % 移到匹配的”()”或”{}”上。 6. 下面是在文本输入模式下用来输入文本的子命令(用户可在任何时候按Escape返回到命令模式): n a 在光标之后开始输入文本。 n A在行尾开始输入文本。 n i在光标之前开始输入文本。 n I在行首第一个非空白字符前输入文本。 n o在光标所在行后插入一空行。 n O在光标所在行前插入一空行。 7. 下面是在命令模式下改变文本所使用的子命令(用户可在任何的时候按Escape键返回到命令模式): n cc或S 修改一整行。 n C 改变一行光标位置以后的部分。 n cw 改变光标所在单词。 n dd删除当前行。 n D 删除光标所在行光标后面的内容。 n dw删除光标所在的单词。 n J 把下一行内容加到本行行尾。 n rc把光符所在字符替换成c . n R 覆盖本行内容。 n u恢复上一次的修改。 n x删除光标所在的字符。 n ~ 改变光标所在出字符的大小写。 n . 重复上一个*作。 n <<把当前行移到左边。 n >>把当前行移到右边。 8. 下面是用于文件中拷贝文本的字命令 n p 将缓冲区内容取到光标所在行的下面一行。 n P 将缓冲区内容取到光标所在行的上面一行。 n ”bd 将文本删除至有名缓冲区b . n ”bp 张贴有名缓冲区b中内容。 n yy把当前行放入缓冲区。 n Y 把当前行放入缓冲区。 n Yw把光标所在的单词放入缓冲区。 9. 下面是用于保存文件的子命令 n :w 回写修改后的文件。 n :w filename 当filename不存在时,把修改后的文件存为文件filename ,当文件filename存在时,报错。 n !w filename 如果文件filename存在时,把修改后的文件保存为文件filename . 10. 下面列出了在vi编辑的多个文件之间切换所用的子命令 n :n开始编辑vi激活的文件列表中的下一个文件。 n :n filenames 指定将被编辑的新的文件列表。 11.下面列出了用于在当前文件和另外一个文件间切换的子命令: n :e filename 使用filename激活vi (在vi中装入另一个文件filename)。 n e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动。 n :e+filename 使用filename激活vi ,并从文件尾部开始编辑。 n :e+number filename 使用filename激活vi ,并在第number行开始编辑。 n :e# 开始编辑另外一个文件。 12. 下面是在本文件中加入其他文件代码所使用的子命令: n :r filename读取filename文件,并将其内容加到当前文件后。 n :r ! command执行command文件,并将其输出加到当前文件后。 13. 下面是vi中其他的子命令 n ctrl+g 取得正在编辑文件的有关信息。 n :sh启动sh ,从sh中返回可用exit或ctrl+d . n :! Command 执行命令command . n !!重新执行上次的:! Command子命令。 n :q退出vi ,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出。 n :q!退出vi而不管是否对文件有改动。 n ZZ或:wq 保存对文件的修改并退出vi .   用户可在一个特殊的文件.exrc中定义特殊的vi命令。在vi中使用这些命令时,必须在该 命令前加上一个冒号( :) 。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 职业教育

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服