1. Linux上常用的文件管理命令及使用

  • (1) CP命令:复制文件或文件夹
    语法格式

           cp [OPTION]... [-T] SOURCE DEST            // 单源复制
    cp [OPTION]... SOURCE... DIRECTORY //多源复制

    常用选项

           -i,--interactive:交互式复制,如果要复制的目标文件存在,在覆盖之前提醒用户确认;
    -f,--force:强制覆盖目标文件;
    -r,-R,--recursive:递归复制,复制目录中的子目录;
    -d:复制符号连接本身,而不是其指向的源文件;
    -a,-dR --preserve=all:archive,用于实现归档;
    --preserve=[ARRT_LIST]:复制文件时保留源文件的一些属性
    如:mode,ownership, timestamps,context,links,xattr,all

    注意
       在复制文件时,如果目标是文件,若文件存在则提示用户是否覆盖目标,若目标不存在则创建一个与源文件同名的文件,并将内容复制进去;如果目标是目录,若目标目录不存在则会提示错误,若目标目录存在,则在目标目录下先创建一个与源文件同名的文件,并将文件内容复制进去。
    示例

    [root@localhost ~]# cp /etc/fstab /tmp/fstab.bak              //单源复制
    [root@localhost ~]# cp /etc/fstab /etc/passwd /tmp/test/ //多源复制
  • (2) mv命令:移动或重命名文件
    语法格式
            mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...

    常用选项

            -f,--force:强制移动,在覆盖时不提示;
    -i,--interactive:覆盖时提示;

    示例

    [root@localhost ~]# mv fstab fstab.bak            //重命名
    [root@localhost ~]# mv fstab.bak ./test/ //移动
  • (3) rm命令:删除文件或目录
    语法格式
           rm [OPTION]... FILE...

    常用选项

           -f,--force:强制删除,不管文件存不存在都不提示;
    -i,每删除一个文件都询问是否删除;
    -r,-R,--recursive:递归删除,删除目录及子目录;

    示例

    [root@localhost ~]# rm  -r ./test/             //删除目录

2. bash工作特性

  • (1) 命令执行状态返回值
      shell程序会将上一次运行的命令是否成功以及函数的返回值保存在$?这个特殊的变量中,我们可以通过查看$?的值来确认上一次的命令是否执行成功。执行成功则返回0,失败则返回1~255之间的一个数。
    <br/>
    注意:命令的执行状态结果与命令的执行结果是两个不同的概念,比如说,ls命令,当我们执行它时,它的状态结果可能是1,而它的执行结果则是列出当前目录中的文件。
    示例

    [root@localhost tmp]# ls
    init.d mylinux scripts
    [root@localhost tmp]# echo $?
    0
    [root@localhost tmp]# lss
    -bash: lss: command not found
    [root@localhost tmp]# echo $?
    2

      另外,我们还可以引用命令的执行结果,使用$(command)或 `(command)` ,如当我们要根据当前时间来创建出一个目录时:

    [root@localhost ~]# mkdir $(date +H%-%M-%s)
  • (2) 命令行展开
      bash中可以使用某些特殊的字符来表示命令中的参数字符串。

           ~ :用户的家目录;
    ~USERNAME:指定用户USERNAME的家目录;
    {} :可以指定一个以逗号分隔的路径列表。

    示例

    [root@localhost ~]# cd  ~                        //切换至当前用户的家目录
    [root@localhost ~]# cd ~Syuan //切换至Syuan的家目录
    [root@localhost ~]# rm /tmp/{a,b} //删除tmp目录下的a和b文件

    应用

    Ⅰ 在/tmp目录下创建 a_c,a_d,b_c,b_d文件;

    [root@localhost ~]# touch /tmp/{a,b}_{c,d}

    Ⅱ 创建/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 ~]# 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}}
    [root@localhost ~]# tree /tmp/mylinux

3. 文件的元数据信息

  文件的数据可以分为两类,一种是元数据(matedata),用于记录文件的属性信息,如:大小、类型、权限、属主属组、时间戳等。另一种就是数据(data),记录文件的内容。在linux系统上,我们可以通过stat命令来查看文件或文件系统的状态。
示例

[root@localhost ~]# stat functions
File: ‘functions’
Size: 13948 Blocks: 32 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 202424773 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 17:48:04.752152528 +0800
Modify: 2016-11-24 17:47:23.900148636 +0800
Change: 2016-11-24 17:47:23.900148636 +0800
Birth: -

  我们也可以使用命令来改变文件的一些元数据信息,如权限、属主属组、时间戳等。下面介绍一下改变文件时间戳的命令touch。
touch 命令:修改文件的时间戳,当文件不存在时会创建一个空文件。

语法格式

            touch [OPTION]... FILE...

常用选项

            -a:仅修改访问时间;
-c:文件不存在是不创建;
-m:仅修改修改时间;
-t STAMP:指定时间而不是使用当前的时间,格式[[CC]YY]MMDDhhmm[.ss]

示例

[root@localhost ~]# ll functions
-rw-r--r--. 1 root root 13948 Nov 24 17:47 functions
[root@localhost ~]# touch functions
[root@localhost ~]# ll functions
-rw-r--r--. 1 root root 13948 Dec 11 05:27 functions

4. 命令的别名

  在linux系统上我们可以给命令的常用选项定义一个别名,使用别名就相当于使用这个命令的特定选项。这对于这个命令特别常用选项很长或者很多时,通过别名来使用就非常方便。在linux系统上通过alias命令来定义别名,它是shell的内嵌命令。
alias命令:定义或显示别名
语法格式

            alias [name[=value] ... ]

alias不带参数时显示系统上定义的所有别名。
示例

[root@localhost ~]# alias clear='clr'

注意:使用alias命令所定义的别名只对当前shell进程有效,当系统重启后所定义的别名变不起作用了,若要使定义的别名永久有效,则可以编辑~/.bashrc文件。另外,撤销别名的定义可以使用unalias命令。

Linux初识二的更多相关文章

  1. Linux(二)—— Unix&Linux 的基本概念

    Linux(二)-- Unix&Linux 的基本概念 计算机 = 主机(host)+ 终端(terminal) 主机 = 内核 + 实用工具 内核(kernel) 当计算机启动时,计算机要经 ...

  2. 一、Linux概述 二、Linux的安装 三、Linux的常用命令(重点)

    一.Linux概述###<1>操作系统 OS,管理和控制 计算机的 硬件和软件资源的 计算机程序. 最基本的系统软件. 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 操作系统:she ...

  3. 服务器初识、linux安装、linux初识

    电脑硬件 电源 既然是人体的心脏,保障电源供应,就需要质量好的电源,生产环境中单个核心服务器最好是双电源AB线路. 一个接220V电路,一个可能接蓄电池UPS(不间断电源) cpu 常见品牌:Inte ...

  4. Linux初识(命令, 文件, 系统管理)

    Linux初识(命令, 文件) 文件系统 在Linux系统下,没有驱动器磁盘,只有一个根目录 / ,所有的文件都在根目录下面. 相关文件夹介绍 bin : 程序相关 boot : 开机启动相关 cdr ...

  5. Linux(二):VMware虚拟机中Ubuntu安装详细过程

    Linux(二):VMware虚拟机中Ubuntu安装详细过程 目录 1 准备 2 安装 2.1 虚拟机的建立 2.2 虚拟机安装Ubuntu系统 2.3 虚拟机设置 3 完成 1 准备 1.操作系统 ...

  6. Linux01 /Linux初识

    Linux01 /Linux初识 目录 Linux01 /Linux初识 1. 服务器 2. Linux系统介绍 3. linux简单介绍 4. VMware与Centos系统安装 5. 各个连接协议 ...

  7. Linux基础二:初识linux命令

    一.UNIX和Linux操作系统概述 1.UNIX是什么 1)UNIX的定义: UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 2)UNIX操作系统的特点:多用 ...

  8. 初识Linux(二)--命令行基本操作

    安装完Ubuntu后,进入系统,呈现在眼前的是Ubuntu的界面,跟windows的差不太多.一般操作系统包含GUI和CLI.GUI就是我们现在看到的,也是windows常用的直接用拖拽,点击等操作对 ...

  9. Linux初识

    在这篇文章中你讲看到如下内容: 计算机的组成及功能: Linux发行版之间的区别和联系: Linux发行版的基础目录及功用规定: Linux系统设计的哲学思想: Linux系统上获取命令帮助,及man ...

随机推荐

  1. Bootstrap3系列:导航

    1. 标签页 .nav添加.nav-tabs设计标签页,.nav-tabs 依赖 .nav 基类. 1.1 示例代码 <ul class="nav nav-tabs"> ...

  2. 【.net深呼吸】动态类型(高级篇)

    前面老周给大家介绍了动态类型使用的娱乐级别用法,其实,在很多情景下,娱乐级别的用法已经满足需求了. 如果,你想自己来控制动态类型的行为和数据的存取,那么,就可以考虑用今天所说的高大上技术了.比如,你希 ...

  3. 基本数据结构(2)——算法导论(12)

    1. 引言     这一篇博文主要介绍链表(linked list),指针和对象的实现,以及有根树的表示. 2. 链表(linked list) (1) 链表介绍      我们在上一篇中提过,栈与队 ...

  4. Android Tint

    Android Tint 如果要实现下图效果,第一时间想到的是让 UI 切图,第二时间想到的是自己会被 UI 打死,第三时间想到的是自己会被命名累死.  那么,这该如何快速高效的实现呢? 其实 An ...

  5. RMAN异机恢复快速参考

    应用场景:服务器A为正常运行的生产环境,需要在服务器B上部署一套相同环境做测试. 数据库环境:RHEL6.4 + Oracle 11.2.0.4.7 一. 服务器A备份数据库 1.1 在线备份(数据库 ...

  6. Vertica 业务用户指定资源池加载数据

    之前在"Vertica 安装,建库,新建测试用户并授予权限,建表,入库"这篇文章也简单介绍过入库部分的内容. 但之前测试用例若用于生产环境有明显的局限性: 1.是用dbadmin管 ...

  7. 初谈SQL Server逻辑读、物理读、预读

    前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...

  8. [C1] 优化 C1FlexGrid 单元格边框

    一  优化理由 如下图所示,如果按照 C1FlexGrid 自带的单元格边框设置,即对每个单元格的 CellStyle 的 BorderThickness 进行设置,会得到如下图的效果: 其中,明显可 ...

  9. 学习Redis你必须了解的数据结构——JS实现集合和ECMA6集合

    集合类似于数组,但是集合中的元素是唯一的,没有重复值的.就像你学高中数学的概念一样,集合还可以做很多比如,并集,交集,差集的计算.在ECMA6之前,JavaScript没有提供原生的Set类,所以只能 ...

  10. MySQL: Table 'mysql.plugin' doesn't exist的解决

    安装解压版MySQL以后,不能启动,日志里面出现了这个错误: MySQL: Table 'mysql.plugin' doesn't exist 这是因为mysql服务启动时候找不到内置数据库&quo ...