• pwd

    print working directory的缩写,作用是显示当前工作目录的绝对路径,一般进行频繁切换路径时使用。

    -L  显示逻辑路径(或略软链接文件),不常用。

    -P  显示物理路径,不常用。

    环境变量:PWD  功能等价于 pwd -L

[root@mysql- etc]# cd /root
[root@mysql- ~]# echo $PWD
/root
  • cd

    change directory的缩写,作用是进行目录之间的切换。

    - (我是减号)    会调用环境变量OLDPWD的值,作用是切换到上一次所在的目录路径。

    ~(我是波浪线)    会调用环境标量HOME的值,用户家目录。作用是切换到用户家目录。

    ..  (我是两个小数点)  作用是切换到当前目录的上一级目录

    示例如下:

[root@mysql- ~]# pwd               # 当前路径为家目录
/root
[root@mysql- ~]# cd /server/          # 切换到/server/目录下
[root@mysql- server]# pwd
/server
[root@mysql- server]# cd ~           # 切换回家目录
[root@mysql- ~]# pwd
/root
[root@mysql- ~]# cd -              # 切换到最近一次操作的文件路径
/server
[root@mysql- server]# pwd
/server
[root@mysql- server]# cd ..           # 切换到上一级目录,还一种是上N级目录,如cd ../../../../../..N/
[root@mysql- /]# pwd
/
[root@mysql- /]# echo $HOME        # 输出环境变量家目录的路径     
/root
[root@mysql- /]# echo $OLDPWD # 输出环境变量最近一次操作的文件路径
/server

    相对路径:不是从根目录开始的路径,如,data/,tools/等。

    绝对路径:从根目录开始的文件路径,如,/root,/etc等,另,这个符号  "  /  "表示根。

    PS:这个命令熟悉了之后,可以在任意目录之间穿梭。

  • tree

    以树形结构列出指定目录下所有文件,子目录和子目录中的文件。

    -a      # all显示所有文件,包括隐藏文件(以“.”开头的文件)。

    -d      # directory,只显示目录。

    -L level   # 显示目录的最大层数,level为大于0的正整数。

    -f      # 显示文件的全路径。统计系统内软件包,可能会用到。          

    -i      # 不显示树枝,常与-f参数配合使用。

  # 先确认系统是否已经安装了此命令

[root@mysql- ~]# rpm -qa tree  # 查询tree命令是否安装
  tree-1.5.-.el6.x86_64

 [root@mysql-141 ~]# yum -y install tree  # 如果上一条没有结果显示,使用此条命令进行安装

  # 字符集乱码问题解决

    1.命令行操作

      LANG=en_US.UTF-8

    2.编辑字符集文件

      vim /etc/sysconfig/i18n

[root@mysql-141 ~]# cd ~      # 切换到家目录下
[root@mysql-141 ~]# tree      # 不加参数情况下,会列出当前目录下的所有文件(除了隐藏文件)
├── anaconda-ks.cfg
├── install.log
├── install.log.syslog
└── youhua.sh directories, files

[root@mysql- ~]# tree -a    # 列出所有目录和文件,包括隐藏文件
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
....省略好几行...
├── .viminfo
└── youhua.sh directories, files

[root@mysql- ~]# tree -L 1 / # 在根目录下的一级子目录
/
├── application
├── backup
...省略好几行...
├── usr
└── var directories, files

[root@mysql- ~]# tree -d /etc/  # /etc/目录下所有子目录
/etc/
├── dbus-
│   ├── session.d
│   └── system.d
├── default
├── hal
│   └── fdi
│   ├── information
│   ├── policy
│   └── preprobe
...省略好几行...
   ├── ca-trust
│   │   ├── extracted
│   │   │   ├── java
│   │   │   ├── openssl
│   │   │   └── pem
│   │   └── source
│   │   ├── anchors
│   │   └── blacklist
└── yum.repos.d directories

[root@mysql- ~]# tree -L 1 -f /boot/    # 显示内容的完整路径
/boot
├── /boot/config-2.6.-.el6.x86_64
├── /boot/efi
├── /boot/grub
├── /boot/initramfs-2.6.-.el6.x86_64.img
├── /boot/lost+found
├── /boot/symvers-2.6.-.el6.x86_64.gz
├── /boot/System.map-2.6.-.el6.x86_64
└── /boot/vmlinuz-2.6.-.el6.x86_64 directories, files

[root@mysql- ~]# tree -L 1 -fi /boot/   # 不显示枝杆信息
/boot
/boot/config-2.6.-.el6.x86_64
/boot/efi
/boot/grub
/boot/initramfs-2.6.-.el6.x86_64.img
/boot/lost+found
/boot/symvers-2.6.-.el6.x86_64.gz
/boot/System.map-2.6.-.el6.x86_64
/boot/vmlinuz-2.6.-.el6.x86_64 directories, files
  • mkdir

    make directory的缩写,作用是创建目录,若要创建的目录已经存在,则会提示,不会继续创建。同时还可以创建多级目录。

    -p  # 递归创建目录,就是一级一级的去创建需要的目录。如果目录已经存在了,也不会进行告知。比较常用

    -m  # 设置新创建目录的默认目录对应的权限。

    -v  # 显示创建目录的过程

[root@mysql- ~]# ls
anaconda-ks.cfg install.log install.log.syslog youhua.sh
[root@mysql- ~]# mkdir data                        # 此时目录已经创建
[root@mysql- ~]# mkdir data                        # 重新执行一遍,在不加参数p的情况下会报错
mkdir: cannot create directory `data': File exists

[ root@mysql- ~]# mkdir oldboy///                    # 不加参数p的情况下,创建多级目录会报错
mkdir: cannot create directory `oldboy///': No such file or directory
[root@mysql- ~]# mkdir oldboy/// -p                  # 创建多级目录
[root@mysql- ~]# tree oldboy/                       # 查看下目录结构
oldboy/
└──
└──
└── directories, files [root@mysql- ~]# mkdir -pv test              # 显示目录文件创建过程
mkdir: created directory `test'
[root@mysql- ~]# mkdir -pv test///3           # 显示多级目录创建过程,你会发现,目录是一级一级向下创建的
mkdir: created directory `test/'
mkdir: created directory `test//'
mkdir: created directory `test///' [root@mysql- ~]# mkdir lipeng              # 创建一个目录
[root@mysql- ~]# ll
drwxr-xr-x root root Apr : lipeng    # 目录权限为755 [root@mysql- ~]# mkdir -m 333 lipeng2          # 重新创建一个新目录,并制定目录权限为333
[root@mysql- ~]# ll drwxr-xr-x root root Apr : lipeng
d-wx-wx-wx root root Apr : lipeng2    #创建出来的目录是333

[root@mysql-141 ~]# mkdir /test/{A,B,C}/{1,2,3} -pv    # 创建多个目录,及其子目录。创建规则想象下数学中的乘法【 a*(1,2),a*( ,3) 】
mkdir: created directory `/test'
mkdir: created directory `/test/A'
mkdir: created directory `/test/A/1'
mkdir: created directory `/test/A/2'
mkdir: created directory `/test/A/3'
mkdir: created directory `/test/B'
mkdir: created directory `/test/B/1'
mkdir: created directory `/test/B/2'
mkdir: created directory `/test/B/3'
mkdir: created directory `/test/C'
mkdir: created directory `/test/C/1'
mkdir: created directory `/test/C/2'
mkdir: created directory `/test/C/3'
[root@mysql-141 ~]# tree /test/
/test/
├── A
│   ├── 1
│   ├── 2
│   └── 3
├── B
│   ├── 1
│   ├── 2
│   └── 3
└── C
├── 1
├── 2

# 如果我们需要克隆上面的多级目录,假设一个测试环境,目录层级比上面的更多,该如何操作呢?

[root@mysql-141 tmp]# cd /    # 切换到根目录下,使用相对路径
[root@mysql-141 /]# tree -fid --noreport test>/tmp/test_directory.txt     # 将tree命令得到的内容重定向到临时文件/tmp/test_directory.txt中
[root@mysql-141 /]# cat /tmp/test_directory.txt                  # 查看文件内容
test
test/A
test/A/1
...省略好几行...
test/C/3  
[root@mysql-141 /]# cd tmp/                              # 切换到临时目录下
[root@mysql-141 tmp]# mkdir -p `cat test_directory.txt`             # 将文件中的内容交给mkdir -p 这个命令来执行
[root@mysql-141 tmp]# tree test                            # 查看执行结果 ,原来还可以这么玩。。  
test
├── A
│   ├── 1
│   ├── 2
│   └── 3
├── B
│   ├── 1
│   ├── 2
│   └── 3
└── C
├── 1
├── 2
└── 3

  • touch

    主要有两个功能:

          一:创建新的内容为空的文件

          二:改变已有文件的时间戳属性

    -a        # 更改指定文件的最后访问时间

    -m         # 更改指定文件的最后修改时间

    -r  file       # 将指定文件的时间属性设置为与模板文件file的时间属性相同

    -t  STAMP     # 使用特定格式的时间设置文件的时间属性

              【[CC]YY】MMDDhhmm[.ss],世纪,年,月,日,时,分,秒

[root@mysql-141 test]# touch stu{01..05}
[root@mysql- test]# ll
total
-rw-r--r-- root root Apr : stu01
-rw-r--r-- root root Apr : stu02
-rw-r--r-- root root Apr : stu03
-rw-r--r-- root root Apr : stu04
-rw-r--r-- root root Apr : stu05
[root@mysql- test]# stat stu01        # stat命令用于查看文件状态信息
File: `stu01'
Size: Blocks: IO Block: regular empty file
Device: 803h/2051d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::02.334941194 +
Modify: -- ::02.334941194 +
Change: -- ::02.334941194 + [root@mysql- test]# touch -a stu01      # 修改用户访问时间,注意“ACCESS”行的时间变化 [root@mysql- test]# stat stu01
File: `stu01'
Size: Blocks: IO Block: regular empty file
Device: 803h/2051d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::14.349937753 +
Modify: -- ::02.334941194 +
Change: -- ::14.349937753 +

[root@mysql- test]# touch -m stu01      # 更改最后修改的时间,注意“modify”行的时间变化
[root@mysql- test]# stat stu01
File: `stu01'
Size: Blocks: IO Block: regular empty file
Device: 803h/2051d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::14.349937753 +
Modify: -- ::53.427947885 +
Change: -- ::53.427947885 +
[root@mysql- test]# ls -lh stu01
-rw-r--r-- root root Apr : stu01
[root@mysql- test]# touch -d 20200101 stu01  # 更改文件被创建的时间
[root@mysql- test]# ls -lh stu01
-rw-r--r-- root root Jan stu01
 
[root@mysql- test]# touch -r stu02 stu01    # 使得stu01的时间属性与stu02保持一致
[root@mysql- test]# ll
total
-rw-r--r-- root root Apr : stu01
-rw-r--r-- root root Apr : stu02

  PS:Linux中三种时间戳类型

      Acess    # 最后访问文件的时间  atime  查看文件内容时悔改属性

      Modify    # 最后修改文件的时间  mtime 编辑文件内容时会改变属性

      Change   # 最后改变文件状态的时间  ctime  编辑文件,移动文件,改变文件属性

  • ls

    list directory contents,作用是列出目录或者文件的属性信息。与DOS系统和Linux系统中的dir命令类似。

    -l  # 长格式列出文件目录信息

    -a  # 显示目录下的所有文件,包括隐藏文件

    -t  # 根据最后修改时间mtime排序,默认是以文件名排序

    -r  # 倒序排列

    -d  # 列出目录本身,遇到符号链接,只显示目录

    -h  # 列出的信息可读性高

    -i  # 显示inode节点信息

    -A  # 列出除了隐藏文件.和.. 这两个目录之外的所有文件

    -F  # 查看文件结尾信息  / 目录结尾  @ 链接文件结尾  * 命令结尾,可执行的普通文件 = 套接字文件

ps:通过ls命令可以查看文件的属性及权限,这里不进行一一列举,可以自行了解每一列的含义

  • cp

    copy缩写,作用是复制或覆盖文件或目录

    -a  # 等同于pdr这三个参数功能的总和

    -r  # 递归复制目录

    -p  # 复制文件时保持源文件的属性信息不变

    -d  # 若复制的源文件是符号链接,那仅复制符号链接本身,并保留指向的目标文件或目录

    -i  # 覆盖已有文件前提示用户确认

    -t  # 复制格式为 “cp 源文件 目标文件”,加上此参数后,“cp -t 目标文件,源文件”,此种用法,一般结合find命令+管道使用

  ps:针对cp命令的系统别名问题,可在命令行中开头采用转译符号(\),来屏蔽系统别名。或者直接unalias取消别名功能

    快速备份备件:  cp a.txt{,.bak}

    # 此类命令慎用

  • mv

    move缩写,移动或重命名文件

    -f  # 若目标文件已存在,直接覆盖

    -i  # 若目标文件已存在,询问是否覆盖

    -n  # 不覆盖已经存在的文件

    -t  # 与cp命令功能一致

    # 此类命令慎用

    

  • rename

    

  • rm

    remove缩写,删除文件或目录

    -f  # 强制删除

    -i  # 删除前需要确认

    -r  # 递归删除目录及内容

    -I  # 在删除超过3个文件或者递归删除前要求确认请求

  ps:此条命令也是有别名的,并且是危险命令。尽量使用mv代替rm,不着急删除,先移动到/tmp目录下。

    删库命令:rm -rf /.* 或者 rm -rf /etc/* # 请忘掉此命令。。尽量不用通配符。

    文件被删除后,也会有恢复工具,前提是要学会未雨绸缪。

  • rmdir

    remove empty directory缩写,删除空目录,不为空时,命令不起作用。工作中用的极少

    -p  # 递归删除空目录

    -v  # 查看执行过程

  

  • ln

    make links between files,作用是创建文件的软硬连接

    格式:

      ln 选项 源文件或目录 目标文件或目录

      -s # 创建软连接

    软硬连接的区别及含义可自行了解。一般在发版时会采用符号连接进行秒级切换

    例如:

       ln -s /etc/hosts soft_link  # 为/etc/hosts创建soft_link.注意,soft_link这个文件不能事先存在。

  

Linux基础命令之文件和目录操作(一)的更多相关文章

  1. Linux基础命令之文件和目录操作(二)

    . find 用于查找目录下的文件,也可以调用其他命令使用 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression] fi ...

  2. Linux基础命令和文件权限

    Linux命令与文件权限 Linux基础命令   reboot  重启   cd         切换目录   cd ..     回到上一级目录   cd ~      回到主目录   cd /  ...

  3. Linux常用命令之文件和目录处理命令

    目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...

  4. Linux系列教程(四)——Linux常用命令之文件和目录处理命令

    这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...

  5. Linux常用命令之文件和目录操作命令

    以下是linux操作系统常用的文件和目录操作命令: cd /home 进入 '/ home' 目录'  cd .. 返回上一级目录  cd ../.. 返回上两级目录  cd 进入个人的主目录  cd ...

  6. Linux基础知识之文件和目录的权限机制

    Linux中的用户 Linux中的用户有三类,分别是: 所有者(u) 同组用户(g) 其他人(o) 如下图所示,假设存在两个组:groupA和groupB,rachel和ross属于组groupA,m ...

  7. Linux基础学习:文件与目录管理

    目录与路径 目录的相关操作 几个特殊的目录: . :表示当前目录 .. :表示上一层目录 - :表示前一个工作目录 ~ :表示当前用户所在的主文件夹 ~account :表示account用户所在的主 ...

  8. Linux常用命令:文件与目录

    目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹  cd ~或者cd,则表示回到自己的的主文件夹  cd -,则表示回到上个目录 pwd:显示目前所在目录 ...

  9. Linux基础命令之文件过滤及内容编辑处理(二)

    . wc 用于统计文件的行数,单词,或字节数 -l # 统计行数 -L # 打印最长行的长度,一般脚本中判断字符长度 -c # 统计字节数 -w # 统计单词数 -m 统计字符数 . iconv 转换 ...

随机推荐

  1. WEB 基础知识(一)

    1. 系统架构 1.1 B/S系统架构 1.2 C/S系统架构 1.3 对比与区别 1.3.1 概述 C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过 ...

  2. 局域网ping Linux主机名

    1.Windows ping Linux主机名 #ubuntu 下 sudo apt-get install winbind #centos 下 yum install samba service n ...

  3. python time相关操作

    1.获取当前时间的两种方法: 代码如下: import datetime,timenow = time.strftime("%Y-%m-%d %H:%M:%S")print now ...

  4. tomcat maxConnections和maxThreads区别

    maxConnections:与tomcat建立的最大socket连接数,默认10000(很多网上说200,实际上通过tomcat7.0.55源码查看可以知道是10000),AbstractEndpo ...

  5. JDK1.5新特性随手记

    1.静态导入 import static 静态导入前写法: public class TestStatic { public static void main(String[] args) { Sys ...

  6. Hive笔记--sql语法详解及JavaAPI

    Hive SQL 语法详解:http://blog.csdn.net/hguisu/article/details/7256833Hive SQL 学习笔记(常用):http://blog.sina. ...

  7. mysql安装及使用语句

    http://www.mysql.com/downloads/ ubuntu安装sqlite http://www.cnblogs.com/zhuyp1015/p/3561470.html http: ...

  8. scrapy 避免被ban

    1.settings.pyCOOKIES_ENABLED = False DOWNLOAD_DELAY = 3 ROBOTSTXT_OBEY = Falseip代理池设置 IPPOOL = [{'ip ...

  9. Android使用Glide加载https链接的图片不显示的原因

    平时我们使用Glide加载http网址的图片的时候,图片可以正常加载出来,但是如果服务器端加上了安全认证,当加载自签名的https图片的时候就会报如下错误(证书路径验证异常). 我们如果不修改Glid ...

  10. 分布式ID生成系统 UUID与雪花(snowflake)算法

    Leaf——美团点评分布式ID生成系统 -https://tech.meituan.com/MT_Leaf.html 网游服务器中的GUID(唯一标识码)实现-基于snowflake算法-云栖社区-阿 ...