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  复制目录及目录内的所有项目

实例

[root@localhost /]# cp etc/fstab /tmp/123//复制文件,123文件不存在测创建文件
[root@localhost /]# cat tmp/123
[root@localhost /]# 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
[root@localhost /]# cp /etc/host.conf /etc/fstab /tmp/mylinux///复制多个文件到mylinux中
[root@localhost /]# cp -a /etc/system-release /tmp/12///复制链接文件  -a选项复制文件的所有属性和链接符号,但是链接地址是相对路径,链接指向会出错
[root@localhost /]# 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             不覆盖已存在文件

实例

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

3)rm:删除文件或目录

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

常用选项:

-f 强制删除

-i 交互式

-r 删除目录

实例

[root@localhost 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:展开为指定用户的主目录

[root@localhost /]# cd ~
[root@localhost ~]#
[root@localhost ~]# cd ~jun_shao/
[root@localhost jun_shao]# ~jun_shao/

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

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

获取方式 echo $?

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

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# 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

[jun_shao@localhost tmp]$ mkdir /tmp/{a,b}_{c,d}
[jun_shao@localhost 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

[root@localhost 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}
[root@localhost 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命令查询文件的元数据信息

[root@localhost /]# 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

[root@localhost /]# touch -t 1510101010.10 tmp/mylinux///修改时间戳为指定日期
[root@localhost /]# 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
创建时间:-
[root@localhost /]# touch -a tmp/mylinux/
[root@localhost /]# 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
创建时间:-
[root@localhost /]# 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

实例

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

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

[jun_shao@localhost ~]$ ls -d /var/l*[0-9]*[[:lower:]]
/var/l121231sdfasd  /var/l2dc

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

[jun_shao@localhost ~]$ ls -d /tmp/[0-9]*[^0-9]
/tmp/111223@  /tmp/111223b  /tmp/111223c

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

[jun_shao@localhost tmp]$ ls /etc/[^[:alpha:]][[:alpha:]]*

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

[root@localhost /]# touch /tmp/`echo tfile-$(date +%Y-%m-%d-%H-%M-%S)`
[root@localhost /]# ls /tmp/
111223@              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目录中。

[root@localhost /]# cp -an /etc/p[^0-9]* /tmp/mytest1/
[root@localhost /]# 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目录中。

[root@localhost /]# cp -an /etc/*.d /tmp/mytest2/
[root@localhost /]# 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目录中。

[root@localhost /]# cp -an /etc/[lmn]*.conf /tmp/mytest3
[root@localhost /]# 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

转载于:https://blog.51cto.com/june1015/1837641

Linux第二次作业相关推荐

  1. 厚基础Linux——第二周作业

    文章目录 厚基础Linux--第二周作业 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. SlackWare SUSE DeBian Ubuntu RedHat RedHat Lin ...

  2. 学习linux第二周作业

    第二周作业: 本周作业内容: 1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. touch,rm,mv,cp,file,ls,chmod,chown,ln,rename, ...

  3. 2017-2018-1 20179215《Linux内核原理与分析》第二周作业

    20179215<Linux内核原理与分析>第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型.X86汇编指令包括几种内存地址的寻址方式和push.pop.c ...

  4. 20189317 《网络攻防技术》 第二周作业

    一.黑客信息 (1)国外黑客 1971年,卡普尔从耶鲁大学毕业.在校期间,他专修心理学.语言学以及计算机学科.也就是在这时他开始对计算机萌生兴趣.他继续到研究生院深造.20世纪60年代,退学是许多人的 ...

  5. 第二周作业-影评、靶机和攻击机的安装与配置、kali的配置、DNS解析

    教材作业 第一章作业一 <黑客军团>第2季第1集影评 本文只分析与黑客攻击有关的情节,不谈其他. 开头,男主通过ssh以root身份远程连接到了一台服务器,并在其上执行了名为fuxsocy ...

  6. 20189200余超 2018-2019-2 移动平台应用开发实践第二周作业

    2018-2019-2 移动平台应用开发实践第二周作业 实验部分,在linux中用git命令将代码传到码云上 成功上传的截图 码云上的截图 遇到如下的问题 解决方法 我发现在进行第一步git clon ...

  7. 17秋 软件工程 结对项目 第二次作业

    作业地址 结对第二次作业 结对成员 陈翔, 031502209; 李鸣, 031502316. Github Deputy: Department-to-Student bidirectional s ...

  8. 20189312任方园 网络攻防第二次作业

    <网络攻防>第二次作业 作业一:学习windows(BAT).Linux(shell)编程,并分别写一个脚本文件解决自己的一个问题 1.用windows(BAT)写一个简单的程序,如下: ...

  9. 丁贵才130702010042第二次作业

    第二次作业 2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来: (1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花有喜欢梅花. 解:定义谓词 P(x):x是人 L(x,y):x喜欢y y ...

最新文章

  1. 原创 | 浅议个人数据开发利用新范式
  2. 人工神经网络能否驾驭生物神经元的“浓稠”程度?5到8层可能并非极限
  3. IBM informix .net provider
  4. Windows 软件授权管理工具检验Windows7激活状态和许可证详细信息
  5. python项目开发案例集锦_在线分享 | 在 VS Code 中一站式完成 Python 项目开发
  6. extjs中为什么使用“var me = this”?
  7. Linux下创建指定路径下的文件夹/文件,通过get_option()传递路径
  8. mysql 5.5.32备份数据库_十六、mysql的备份与恢复(二)--mysqldump
  9. 51Nod 1182
  10. java判断对象无数据_Java 判断实体对象及所有属性是否为空的操作
  11. 服务器30hz显示器240hz,显示器刷新率上不去,这锅到底让谁背
  12. oracle10非正常删除卸载干净,Oracle 10g卸载干净
  13. 中国公用计算机互联网网络简称为什么,中国公用计算机互联网国际联网管理办法...
  14. 对于接口得容错性测试
  15. 显示一个立方体的斜二测图(用数组存放正方体的各顶点坐标)
  16. 你不能错过的超赞色彩组合
  17. 微信集成(帆软报表)
  18. 计算机械结构变形,机械结构设计-力学原理设计准则
  19. 电脑使用技巧(Win10修改窗口背景颜色)
  20. 还我血汗钱!趣店怎么了?关店130家、裁员200人、市值缩水85%!僵尸讲师、假学生......

热门文章

  1. ubuntu系统debootstrap的使用(构建一套基本的系统)
  2. 0.IDA的反汇编算法方式
  3. 汇编语言:实验10 根据材料编程—1.显示字符串
  4. Collections和Collection的区别:
  5. 进程与multiprocessing模块
  6. redis的使用场景和基本数据类型
  7. 说一下安卓的touch事件分发机制
  8. codeforces#239_div2_B Garland 简单模拟
  9. 开关电源之PCB安规设计规范
  10. Altium Designer之Preferences