Linux第二次作业

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

文件管理类命令:cp,mv,rm

1)cp:复制文件或目录

用法:cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

注意事项:

SOURCE是文件:

如果目标文件不存在,新建目标文件,并将源文件中的内容填充到目标文件中

如果目标存在且为文件,将源文件中的内容覆盖至目标文件中

如果目标存在且为目录,在目标目录下建立与原文件同名的文件,并将源文件中内容填充到新的文件中去

SOURCE是多个文件,目标必须存在,且为目录,其它情况均会出错

SOURCE是目录:必须使用-r选项

如果目标目录不存在,则会创建指定目录,赋值源目录中所有文件至目标目录中

如果目标是目录,在源目录中的文件全部分复制到目标目录中

常用选项:

-a, --archive    等于-dR --preserve=all

-d                等于--no-dereference --preserve=links

-f, --force        如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)

-i, --interactive        覆盖前询问(使前面的 -n 选项失效)

-L, --dereference   总是跟随符号链接

-n, --no-clobber   不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference   不跟随源文件中的符号链接

-p                等于--preserve=模式,所有权,时间戳

--preserve[=属性列表]   保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

-R, -r, --recursive  复制目录及目录内的所有项目

实例

[[email protected] /]# cp etc/fstab /tmp/123//复制文件,123文件不存在测创建文件
[[email protected] /]# cat tmp/123 
[[email protected] /]# cp -a /etc/system-release /tmp/12/
#
# /etc/fstab
# Created by anaconda on Fri Aug 12 06:53:38 2016
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=ab5f2947-2e09-4c7d-9c36-80c29e6391a4 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
[[email protected] /]# cp /etc/host.conf /etc/fstab /tmp/mylinux///复制多个文件到mylinux中
[[email protected] /]# cp -a /etc/system-release /tmp/12///复制链接文件  -a选项复制文件的所有属性和链接符号,但是链接地址是相对路径,链接指向会出错
[[email protected] /]# ll /tmp/12/
总用量 0
lrwxrwxrwx. 1 root root 14 8月  13 19:49 123 -> centos-release
lrwxrwxrwx. 1 root root 14 8月  12 06:54 system-release -> centos-release

2)mv:移动文件或目录

用法:mv [选项]... [-T] 源文件 目标文件

   或:mv [选项]... 源文件... 目录

   或:mv [选项]... -t 目录 源文件...

常用选项:

-f, --force                  覆盖前不询问

-i, --interactive            覆盖前询问

-n, --no-clobber             不覆盖已存在文件

实例

[[email protected] 12]# ls
123  system-release
[[email protected] 12]# mv 123 ../a_c/ //将123文件复制到a_c目录下
[[email protected] 12]# mv system-release 321//将文件system-release重命名
[[email protected] 12]# ls
321
[[email protected] tmp]# mv 12/ b_c///复制目录
[[email protected] tmp]# cd b_c
[[email protected] b_c]# ls
12

3)rm:删除文件或目录

用法:rm [选项]... 文件...

常用选项:

-f 强制删除

-i 交互式

-r 删除目录

实例

[[email protected] b_c]# rm -rf 12
//强制删除12目录

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

1.命令历史:history

环境变量:

HISTSIZE:命令历史记录的条数

HISTFILE:~/.bash_history

HISTFILESIZE:命令历史文件记录历史的条数

调用历史命令的方式:

!#:重复执行第#条指令

!!:执行上一条命令

!string 调用最近以string开头的命令

!$:调用上一条命令的最后一个参数

ESC,.:调用上一条命令的最后一个参数

控制命令历史的记录方式:

环境变量:HISTCONTROL

ignoredups:忽略连续且重复的命令,系统默认

ignorespace:忽略所有以空白开头的命令;

ignoreboth:上述两个同时生效

修改环境变量的方式:export 变量名="值"

变量赋值:把赋值符号后面的数据存储与变量名指向内存空间,至对当前shell有限

2.命令补全:TAB键补全命令,

3.路径补全

4.命令展开

~:展开为用户的主目录

~USERNAME:展开为指定用户的主目录

[[email protected] /]# cd ~
[[email protected] ~]# 
[[email protected] ~]# cd ~jun_shao/
[[email protected] jun_shao]# ~jun_shao/

5.命令的执行结果状态:成功和失败,0表示成功,1-255表示失败

bash使用特殊变量$?保存最近一条命令的执行状态结果

获取方式 echo $?

程序执行的有两类结果:程序的返回值和程序的执行状态结果

[[email protected] /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[[email protected] /]# echo $?
0

6.bash的快捷操作

ctrl+L:清屏,相当于clear

ctrl+i:跳转值命令首部

ctrl+e:跳转至命令尾部

ctrl+c:取消命令执行

ctrl+U:删除命令首至光标所在处的内容

ctrl+K:删除光标所在处至命令行尾部的所有内容

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

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

[[email protected] tmp]$ mkdir /tmp/{a,b}_{c,d}
[[email protected] tmp]$ ls
a_c                  sensitive-info.log
a_d                  ssh-jCe06sIOI6xg
anaconda.log         ssh-UauJ16N50KP7
b_c                  storage.log
b_d                  systemd-private-6d69e0cd5d82468ab85eff756bc26a69-colord.service-cH1SDQ
hogsuspend           systemd-private-6d69e0cd5d82468ab85eff756bc26a69-cups.service-dE9Cpn
hsperfdata_jun_shao  systemd-private-6d69e0cd5d82468ab85eff756bc26a69-rtkit-daemon.service-RjUF2H
hsperfdata_root      systemd-private-6d69e0cd5d82468ab85eff756bc26a69-systemd-hostnamed.service-LisN5B
ifcfg.log            systemd-private-af9b870d5246476e8ba1feb08891b3d0-colord.service-RDVwUr
june                 systemd-private-af9b870d5246476e8ba1feb08891b3d0-cups.service-vUZ9Sj
ks-script-ZiDgee     systemd-private-af9b870d5246476e8ba1feb08891b3d0-rtkit-daemon.service-UT40FH
packaging.log        tracker-extract-files.1000
program.log          yum.log

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

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

[[email protected] mylinux]# mkdir -p /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}
[[email protected] mylinux]# tree 
.
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── lock
├── log
├── proc
├── run
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var

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

1)文件的元数据信息:

文件的大小

文件的所有者

文件的权限

access time:访问时间,atime

modify time:修改时间,mtime

change time:改变时间,ctime

2)使用stat命令查询文件的元数据信息

[[email protected] /]# stat /tmp/mylinux/
  文件:"/tmp/mylinux/"
  大小:4096      块:8          IO 块:4096   目录
设备:fd00h/64768dInode:206503646   硬链接:17
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-08-13 02:40:09.054684514 +0800
最近更改:2016-08-13 02:40:02.371740577 +0800
最近改动:2016-08-13 02:40:02.371740577 +0800
创建时间:-

3)修改文件的时间戳信息:touch命令

用法:touch [选项]... 文件...

常用选项:

-a,只更改访问时间

-c, --no-create 不创建任何文件

-d, --date=字符串 使用指定字符串表示时间而非当前时间

-m 只更改修改时间

-t STAMP,[[cc]YY]MMDDhhmm[.ss]修改时间戳为指定时间

access time:访问时间,atime

modify time:修改时间,mtime

change time:改变时间,ctime

[[email protected] /]# touch -t 1510101010.10 tmp/mylinux///修改时间戳为指定日期
[[email protected] /]# stat /tmp/mylinux/
  文件:"/tmp/mylinux/"
  大小:4096      块:8          IO 块:4096   目录
设备:fd00h/64768dInode:206503646   硬链接:17
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2015-10-10 10:10:10.000000000 +0800
最近更改:2015-10-10 10:10:10.000000000 +0800
最近改动:2016-08-13 15:27:55.012235506 +0800
创建时间:-
[[email protected] /]# touch -a tmp/mylinux/
[[email protected] /]# stat /tmp/mylinux/
  文件:"/tmp/mylinux/"
  大小:4096      块:8          IO 块:4096   目录
设备:fd00h/64768dInode:206503646   硬链接:17
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-08-13 15:28:31.722939290 +0800
最近更改:2015-10-10 10:10:10.000000000 +0800
最近改动:2016-08-13 15:28:31.722939290 +0800
创建时间:-
[[email protected] /]# stat /tmp/mylinux/
  文件:"/tmp/mylinux/"
  大小:4096      块:8          IO 块:4096   目录
设备:fd00h/64768dInode:206503646   硬链接:17
权限:(0755/drwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-08-13 15:28:31.722939290 +0800
最近更改:2016-08-13 15:39:49.605469563 +0800
最近改动:2016-08-13 15:39:49.605469563 +0800
创建时间:-

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

命令别名(alias):通过alias命令实现:shell的内嵌命令

1)alias:显示当前shell进程中所有可用的命令别名

2)alias NAME=‘VALUE‘:定义别名NAME,其相当于执行命令VALUE

注意:在明行中定义的别名,仅对当前shell进程有效,如果想永久有效,要定义在配置文件中

仅对当前用户:~/.bashrc

对所有用户有效:/etc/bashrc

注意:编辑配置给出的新配置不会立即生效

bash进程重新读取配置文件:source /path/to/config_file 或 ./ path/to/config_file

3)撤销别名:unalias [-a] name [name...]

注意:如果别名和原命令想同,则执行原命令,如:\COMMAND

实例

[[email protected] ~]# alias net=‘cd /etc/sysconfig/network-scripts/‘//定义别名,仅对当前shell有效
[[email protected] ~]# net
[[email protected] network-scripts]# 
[[email protected] ~]# nano .bashrc //编辑配置文件,对当前用户有效
[[email protected] ~]# source .bashrc //重新读取配置文件,是新建的别有有效
[[email protected] ~]# alias cp="cp -r"//定义与系统自带的相同的命令
[[email protected] ~]# cp /etc/sysconfig/ /tmp/b_c/
[[email protected] ~]# \cp /etc/fstab /tmp/b_c///使用\cp执行原来的命令
[[email protected] ~]# unalias -a cp//撤销别名

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

[[email protected] ~]$ ls -d /var/l*[0-9]*[[:lower:]]
/var/l121231sdfasd  /var/l2dc

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

[[email protected] ~]$ ls -d /tmp/[0-9]*[^0-9]
/tmp/[email protected]  /tmp/111223b  /tmp/111223c

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

[[email protected] tmp]$ ls /etc/[^[:alpha:]][[:alpha:]]*

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

[[email protected] /]# touch /tmp/`echo tfile-$(date +%Y-%m-%d-%H-%M-%S)`
[[email protected] /]# ls /tmp/
[email protected]              mytest3
111223b              packaging.log
111223c              program.log
11c                  sensitive-info.log
1c2                  ssh-jCe06sIOI6xg
20160813_141413.txt  ssh-UauJ16N50KP7
a_c                  storage.log
a_d                  systemd-private-6d69e0cd5d82468ab85eff756bc26a69-colord.service-cH1SDQ
anaconda.log         systemd-private-6d69e0cd5d82468ab85eff756bc26a69-cups.service-dE9Cpn
b_c                  systemd-private-6d69e0cd5d82468ab85eff756bc26a69-rtkit-daemon.service-RjUF2H
b_d                  systemd-private-6d69e0cd5d82468ab85eff756bc26a69-systemd-hostnamed.service-LisN5B
hogsuspend           systemd-private-af9b870d5246476e8ba1feb08891b3d0-colord.service-RDVwUr
hsperfdata_jun_shao  systemd-private-af9b870d5246476e8ba1feb08891b3d0-cups.service-vUZ9Sj
hsperfdata_root      systemd-private-af9b870d5246476e8ba1feb08891b3d0-rtkit-daemon.service-UT40FH
ifcfg.log            tfile-2016-08-13-16-47-00
june                 tfile-2016-08-13-16-47-12
ks-script-ZiDgee     tfile-date
l121231sdfasd        tfile-date +%Y-%m-%d-%H-%M-%S
l2dc                 tracker-extract-files.1000
mylinux              +%Y-%m-%d-%H-%M-%S
mytest1              yum.log
mytest2              yum_save_tx.2016-08-13.14-01.B9WFE2.yumtx

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

[[email protected] /]# cp -an /etc/p[^0-9]* /tmp/mytest1/
[[email protected] /]# ls /tmp/mytest1/
pam.d       passwd-       pkcs11    pm            popt.d   prelink.conf.d  profile.d  purple
pam_pkcs11  pbm2ppa.conf  pki       pnm2ppa.conf  postfix  printcap        protocols  python
passwd      pinforc       plymouth  polkit-1      ppp      profile         pulse

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

[[email protected] /]# cp -an /etc/*.d /tmp/mytest2/
[[email protected] /]# ls /tmp/mytest2
auto.master.d      dracut.conf.d  logrotate.d     profile.d  rc.d           sudoers.d
bash_completion.d  exports.d      modprobe.d      rc0.d      reader.conf.d  sysctl.d
binfmt.d           gdbinit.d      modules-load.d  rc1.d      request-key.d  tmpfiles.d
cgconfig.d         grub.d         my.cnf.d        rc2.d      rsyslog.d      usb_modeswitch.d
chkconfig.d        init.d         oddjobd.conf.d  rc3.d      rwtab.d        xinetd.d
cron.d             ipsec.d        pam.d           rc4.d      sane.d         yum.repos.d
depmod.d           ld.so.conf.d   popt.d          rc5.d      setuptool.d
dnsmasq.d          libibverbs.d   prelink.conf.d  rc6.d      statetab.d

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

[[email protected] /]# cp -an /etc/[lmn]*.conf /tmp/mytest3
[[email protected] /]# tree /tmp/mytest3
/tmp/mytest3
├── ld.so.conf
├── libaudit.conf
├── libuser.conf
├── locale.conf
├── logrotate.conf
├── man_db.conf
├── mke2fs.conf
├── mtools.conf
├── nfsmount.conf
├── nsswitch.conf
├── ntp.conf
└── numad.conf
时间: 2024-10-13 07:59:42

Linux第二次作业的相关文章

学习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 输出:

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

1.linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示 文件管理命令常用有:cp mv rm (1)    cp命令: cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误. 语法:cp (选项) (参数) 选项:-a:此参数的效果和同时指定"-dpR"参数相同: -d:当复

马哥linux第二周作业

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

马哥linux 培训第二周作业

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

Linux+Python高端运维班第二次作业

Linux+Python高端运维班第二次作业 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [[email protected] ~]# who |cut -d" " -f1|uniq (unknown) root test1 [[email protected] ~]# who |cut -d" " -f1|sort -u root (unknown) wangyanglin 2.取出当前系统上被用户当作其默认shel

魏昊卿——《Linux内核分析》第二周作业:了解操作系统是怎样工作的

魏昊卿——<Linux内核分析>第二周作业:了解操作系统是怎样工作的 一.实验部分 使用实验楼的虚拟机打开shell cd LinuxKernel/linux-3.9.4 qemu -kernel arch/x86/boot/bzImage 然后cd mykernel 您可以看到qemu窗口输出的内容的代码mymain.c和myinterrupt.c 使用自己的Linux系统环境搭建过程参见mykernel,其中也可以找到一个简单的时间片轮转多道程序内核代码 mymain.c myinterr

从零开始的linux 第二章

从零开始的linux 第二章 呼~~,大家早上好~(伸懒腰) 又到了一周一次的写博客时间了,不知不觉又过去一周了呢~小编也越来越懒了(超级害羞脸)~~唉??怎么办呢??(小编勉为其难的说)要不....要不再水一帖吧.... ←老师和(超)善(凶)的眼神 不不不不...不要激动...小编...小编我..开...开玩笑的...开玩笑的... 唉~~小编上一次写的文章被批评了,因为排版一塌糊涂..QAQ...小编为了让大家学的开心并且学的轻松,图片太乱了...缺点被指出之后,小编是要去改的说...可是

解题报告——2018级2016第二学期第二周作业

解题报告——2018级2016第二学期第二周作业 D:迷宫问题 题目描述: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. 输入 一个5 × 5的二维数组,表示一个迷宫.数据保证有唯一解. 输出 左上角到右