Linux初识二

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)` ,如当我们要根据当前时间来创建出一个目录时:

    [[email protected] ~]# 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命令来查看文件或文件系统的状态。
示例

[[email protected] ~]# 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]

示例

[[email protected] ~]# ll functions
-rw-r--r--. 1 root root 13948 Nov 24 17:47 functions
[[email protected] ~]# touch functions
[[email protected] ~]# 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命令。

时间: 2024-10-13 20:09:10

Linux初识二的相关文章

Linux01 /Linux初识

Linux01 /Linux初识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Unix工具软件.应用程序和网络协议.它支持32位和64位硬件.Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 2.Linux的发行版本 其实啊Linux这个词并不能(代表)操作系统,Linux实际上只是定义了一个操作系统的内核,这个内核由kernel.or

攻城狮在路上(叁)Linux(二十九)--- 完整备份工具:dump以及restore

一.dump命令: 该命令既可以针对整个文件系统进行备份,也可以仅针对目录来备份.还可以指定不同的备份等级(-0~-9共10个等级). dump -W:列出在/etc/fstab中具有dump设置的分区是否备份过. 命令格式: dump [-Suvj] [-level] [-f 备份文件] 待备份数据 参数说明: -S:仅列出后面的待备份数据所需要的磁盘空间大小. -u:将这次dump的时间记录到/etc/dumpdates文件中. -v:将dump的文件过程显示出来. -j:加入bzip2的支

攻城狮在路上(叁)Linux(二十五)--- linux内存交换空间(swap)的构建

swap的功能是应付物理内存不足的状况,用硬盘来暂时放置内存中的信息. 对于一般主机,物理内存都差不多够用,所以也就不会用到swap,但是对于服务器而言,当遇到大量网络请求时或许就会用到. 当swap被使用的时候,主机的硬盘灯就会闪烁不停. 本篇介绍两种方式:1.设置一个swap分区   2.创建一个虚拟内存的文件. 一.使用物理分区构建swap: 1.首先是分区: A.fdisk /dev/sda; <== 根据后续提示创建一个分区. B.修改分区的ID,因为fdisk默认将分区的ID作为文件

攻城狮在路上(叁)Linux(二十六)--- linux文件系统的特殊查看与操作

一.boot sector 与 super block的关系: 1.boot sector用于存放引导装载程序,占用1024个字节. 2.super block的大小也为1024字节. 3.若block大小为1k,则boot sector和super block各占一个block. 4.若block大于1K(2K/4K)时,则两者都位于第一个block中. 二.磁盘空间的浪费问题:暂不考虑. 三.利用GUN的parted命令进行分区行为: 因为fdisk不支持高于2TB的分区. 命令格式: pa

攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件的配置来实现. fstab是开机时的设置,实际文件系统的挂载是记录到/etc/mtab和/proc/mounts这两个文件中. 1.系统挂载的限制: A.根目录/必须挂载,而且一定是最先挂载的,要先于其他mount point. B.其他挂载点必须为已新建的目录,可以任意指定. C.所有挂载点在同一

攻城狮在路上(叁)Linux(二十七)--- 压缩与打包之常见的压缩命令

前面讲到,linux中的后缀名没有特殊的意义,一般是作为不同文件类型的标识而已.下面是与打包.压缩相关的后缀名介绍: *.z:compress程序压缩文件 *.gz:gzip程序压缩文件 *.bz2:bzip2压缩文件 *.tar:tar打包,未压缩 *.tar.gz:tar打包,经过gzip压缩 *.tar.bz2:tar打包,经过bzip2压缩 一般经过打包或者压缩处理的文件通过后缀名来进行区别. 一.compress:该命令比较古老,centos默认未安装,可以使用gzip代替. 二.gz

攻城狮在路上(叁)Linux(二十三)--- linux磁盘参数修改(设备代码、设备名)

一.mknod:设置设备代码 linux中,所有的设备都是用文件来表示,文件通过major与minor数值来判断. major为主设备代码,minor为设备代码(需要查询),示例如下: /dev/hda ---------major:3------minor:0~63 /dev/hdb----------major:3------minor:64~127 /dev/sda----------major:8------minor:0~15 ... 命令格式:mknod 设备名 [bcp] [maj

攻城狮在路上(叁)Linux(二十二)--- linux磁盘挂载与卸载 mount umount

挂载就是将文件系统与目录结合的操作.挂载点就是目录,该目录就是进入分区或文件系统的入口. 一.挂载前的注意事项: 1.单一文件系统不应该被重复挂载在不同的挂载点中. 2.单一目录不应该重复挂载多个文件系统. 3.即将作为挂载点的目录理论上应该都是空目录才对. 注意:对应2和3,如果要挂载的目录不为空,那么挂载了新的文件系统之后,原来的目录会暂时消失(并非覆盖掉),系统会显示最新挂载的文件系统.新分区被卸载之后,原来的文件系统会重新显示出来. 二.命令介绍 mount [-t 文件系统] [-L

攻城狮在路上(叁)Linux(二十)--- Linux磁盘格式化

磁盘完成分区之后,进行格式化,生成文件系统. 命令格式: mkfs [-t 文件系统格式] 设备文件名  <== 使用 mkfs [Tab][Tab] 可以查看linux支持的文件系统格式 示例: mkfs -t ext3 /dev/sda6; 上述命令的不足是不能够指定文件系统的卷标label.block的大小以及inode的数量,因此系统还提供了mke2fs命令. 命令格式: mke2fs [-b block大小] [-i inode大小] [-L 卷标] [-cj] 设备名 参数说明: -