马哥linux第二周作业---基本班

1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

文件管理命令常用有:cp mv rm

(1)    cp命令:

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

语法:cp (选项) (参数)

选项:-a:此参数的效果和同时指定"-dpR"参数相同;

-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;

-f:强行复制文件或目录,不论目标文件或目录是否已存在;

-i:覆盖既有文件之前先询问用户;

-l:对源文件建立硬连接,而非复制文件;

-p:保留源文件或目录的属性;

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;

-s:对源文件建立符号连接,而非复制文件;

-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;

-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;

-b:覆盖已存在的文件目标前将目标文件备份;

-v:详细显示命令执行的操作。
      参数:

源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;

目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
   实例:

如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:

cp../mary/homework/assign .
所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。

将文件file复制到目录/usr/men/tmp下,并改名为file1:

cpfile /usr/men/tmp/file1

将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中:

cp -r/usr/men /usr/zh

交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中:

cp -i/usr/men m*.c /usr/zh

我们在Linux下使用cp命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,总结了一个方法:

cp aaa/*/bbb 复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。

cp -raaa/* /bbb 这次依然需要按Y来确认操作,但是没有忽略子目录。

cp -r-a aaa/* /bbb 依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。

cp -r-a aaa/* /bbb 成功,没有提示按Y、传递了目录属性、没有略过目录。

(2)mv命令

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。 mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果: 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
语法:

mv (选项) (参数)

选项:

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;

-b:当文件存在时,覆盖前,为其创建一个备份;

-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;

-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。

--strip-trailing-slashes:删除源文件中的斜杠“/”;

-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;

--target-directory=<目录>:指定源文件要移动到目标目录;

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

参数:

源文件:源文件列表。

目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

实例:

将文件ex3改名为new1:mv ex3 new1
    将目录/usr/men中的所有文件移到当前目录(用.表示)中:
    mv /usr/men/* .

(3)rm命令:

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

语法:

rm (选项) (参数)

选项:

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

-f:强制删除文件或目录;

-i:删除已有文件或目录之前先询问用户;

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;

--preserve-root:不对根目录进行递归操作;

-v:显示指令的详细执行过程。

参数:

文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。
实例:

交互式删除当前目录下的文件test和example
rm -i test example

Remove test ?n(不删除文件test)

Remove example ?y(删除文件example)

删除当前目录下除隐含文件外的所有文件和子目录:
# rm -r *
应注意,这样做是非常危险的!

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示

(1)    bash命令执行状态返回值:

Bash 命令执行后,会对执行状态返回一个值。 如果命令执行成功则返回0,如果执行不成功,就会返回一个1—255的数字。

Bash使用特殊变量$?保存最近一条命令的执行状态结果:($? 在Bash中是特殊变量)

命令的执行结果状态(状态只有2种,要么成功要么失败)0:成功,1-255:失败。

[[email protected] ~]# ll /etc/passwd

-rw-r--r--. 1 root root 1438 Jul 26 05:35 /etc/passwd

[[email protected] ~]# echo $?

0

[[email protected] ~]# ll /etc/passwdd

ls: cannot access /etc/passwdd: No such file or directory

[[email protected] ~]# echo $?

2

(2)    命令行展开特性:

“~” 展开为用户的家目录。使用方法:~username       // 展开为指定的用户的主目录

[[email protected] ~]# cd ~gentoo

[[email protected] gentoo]# pwd

/home/gentoo

使用花括号,里面用逗号分隔的列表,并将其展开为多个路径

例如:/tmp/{a,b} =/tmp/a, /tmp/b

[[email protected] ~]# mkdir -p /tmp/{a,b}

[[email protected] ~]# tree /tmp/

/tmp/

├── a

└── b

2directories, 0 files

3、请使用命令行展开功能完成以下练习:

(1)、创建/tmp目录下的:a_c,a_d,b_c, b_d

Mkdir –v {a,b}_{c,d}

(2)、创建/tmp/mylinux目录下的:

Mkdir -pv/tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run},}

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

文件的元数据包含文件本身的一些属性信息,如:文件名、文件的各类权限、各类时间戳、链接次数等。 文件包括三个时间戳:atime,mtime,ctime,可以使用touch命令来修改时间戳,用法如下:

文件时间戳管理工具:touch

文件:metadata, data

三个时间戳:

access time:访问时间--->简写为atime,读取文件内容

modify time: 修改时间--->简写为mtime,改变文件内容(数据)

change time: 改变时间--->简写为ctime,元数据发生改变

查看时间戳命令:stat

[[email protected]~]# stat /etc/passwd

File: `/etc/passwd‘

Size: 1438            Blocks: 8          IO Block: 4096   regular file

Device:805h/2053d      Inode: 262888      Links: 1

Access:(0644/-rw-r--r--)  Uid: (    0/   root)   Gid: (    0/   root)

Access:2016-07-28 18:40:01.824678351 -0400

Modify:2016-07-26 05:35:32.110304187 -0400

Change:2016-07-26 05:35:32.111304187 -0400

手动指定修改时间戳命令:touch

touch[OPTION]... FILE...

-a: only atime (指定修改访问时间)

-m: only mtime (指定修改修改时间)

-t STAMP:(自己指明时间戳)

[[CC]YY]MMDDhhmm[.ss]

-c: 如果文件不存在,则不予创建

5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

(1)定义一个命令的别名

[[email protected]~]# alias cdnet=‘cd /etc/sysconfig/network-scripts‘

(2)在命令中引用另一命令的执行结果

[[email protected]~]# alias cdnet=‘cd /etc/sysconfig/network-scripts‘

[[email protected]~]# cdnet

[[email protected]]#

6、显示/var目录下所有开头以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录。

ls/var/l*[0-9]*[[:lower:]]

7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录

ls/etc/[0-9]*[^[:alpha:]]

8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录。

ls /etc/[^[:alpha:]][[:alpha:]]*

9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22.

touchfile-`date "+%Y-%m-%d-%H-%M-%S"`

10、    复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中

Cp –rf /etc/p*[^[:alpha:]] /tmp/mytest1

11、    复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

Cp –rf/etc/*.d /tmp/mytest2

12、    复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中

Cp/etc/[1mn]*.conf

时间: 2024-08-04 03:38:13

马哥linux第二周作业---基本班的相关文章

马哥linux第二周作业

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 详见: http://lijl2k3.blog.51cto.com/3303549/1837787 2.bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示. bash 的命令执行结果状态有两种:成功/失败, bash使用特殊变量$?来保存最近一条命令的执行状态结果.0为成功,1-255代表各种失败. bash的命令行展开:用{}表示可承载一个以逗号分隔的列表,并将其展开为多个路径 如:/tmp/

马哥linux第一周作业---基本班

问题一:描述计算机的组成及其功能. 计算机的组成分为两大部分,分别是硬件组成部分和软件组成部分 硬件组成分为五个部分:运算器,控制器,存储器,输入设备,输出设备 1.运算器(datapath):运算器的功能是对数据进行各种算数运算和逻辑运算,即对数据进行加工处理 2.控制器(control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序.数据.地址,协调计算机各个部分工作及内存与 外设的访问等. 3.存储器(Memory):存储器的功能是存储程序.数

学习linux第二周作业

第二周作业: 本周作业内容: 1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. touch,rm,mv,cp,file,ls,chmod,chown,ln,rename, touch 修改文件atime,如果文件不存在,那么创建该文件. rm:删除文件. -r:循环删除,包含文件和目录 -f:强制删除,布询问. -i:询问是否删除. 默认情况下,系统自带别名,rm=rm -i mv:移动文件,可以在移动的过程中重命名文件或文件夹. 例如:移动重命名mytest1目录为

Linux第二周作业

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. (1)Linux上的文件管理类命令有:cd.pwd.mkdir.rmdir.tree等等. (2)Linux上的文件管理类命令使用方法及其相关示例: cd:使用格式  cd DIRECTORY... [[email protected] ~]# cd /etc [[email protected] etc]# pwd:使用格式 pwd [OPTION]... [[email protected] ~]# pwd 输出:

马哥培训——第二次作业

列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.who | cut -d' ' -f1 | sort -u 取出当前系统上被用户当作其默认shell的最多的那个shell.cat /etc/passwd | cut -d':' -f7 | uniq -c | sort -n | tail -1 | cut -d' ' -f4 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中.sor

马哥linux 培训第二周作业

注意:第二周作业,请将以下题目整理在51cto博客当中,完成后请将对应的博文链接地址提交在答案栏中,提交格式如下:学号+姓名+博文链接地址eg:1+张三+http://mageedu.blog.51cto.com/4265610/1794420 本周作业内容:1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 文件管理的命令有cp.mv.rm 复制命令:cp 用法: cp [-adfilprsu] 来源文件(source) 目标文件(destination) cp [o

马哥linux作业第五周&#39;

1.显示当前系统上root.fedora或user1用户的默认shell: egrep "^(root|fedora|user1)\>" /etc/passwd |cut -d: -f1,7 root|fedora|user1表示三者符合其一的选择条件 ()使其归组 ^表示以后面归组的条件开头 \>表示以空字符截断此前的条件字符,即后跟其它字符的单词将不匹配 2.找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello():

马哥linux作业第三周&#39;

1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. who | cut -d' ' -f1 | sort -u 2.取出最后登录到当前系统的用户的相关信息. last | head -1 3.取出当前系统上被用户当作其默认shell的最多的那个shell. cat /etc/passwd | cut -d ':' -f7 |sort | uniq -c | sort |head -1 4.将/etc/passw d 中的第三个字段数值最大的后10个用户的信

2016最新马哥Linux就业班+架构师班视频教程全套含随堂笔记PPT 全套资料免费分享

有朋友咨询问我是不是做营销的? 不是,不是,不是!!! 这么认为的话,干嘛还来咨询呢? 直接发我个邮件,附上你手里的最新教程分享链接,我一定回复. 不相信,解释再多也没用... 本人是一名运维工程师,主要做Linux和数据库运维工作.非常喜欢收集.整理.分享一些质量优质的IT技术教程.马哥Linux在业界可谓是名气响当当的,很多做系统运维的朋友或是刚入行的菜鸟视之为Linux教育界的教父,都趋之若鹜. 本人也不例外,我就是在2013.2014年平靠学习马哥那个套经典的运维教程走上linux运维之