Linux文件与目录核心命令

Linux命令操作语法示例

#命令     选项        参数
command [-options] [arguments] [root@localhost ~]# ls //命令
anaconda-ks.cfg
[root@localhost ~]# ls -l //命令+选项
total 4
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# ls -l /root/ //命令+选项+参数
total 4
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg #命令:整条shell命令的主体
#选项:用于调节命令的具体功能
以'-'引导段个事选项(单个字符),例如”-a“
以'--'引导长格式选项(多个字符),例如”--all“
多个短格式选项可以放一起,只用一个”-“引导,例如”-la“
#参数:参数是命令的操作对象。一般文件、目录、用户和进程等可以作为参数被命令操作。 但是为什么一开始 ls 命令可以省略参数?那是因为有默认参数。命令一般都需要加入参数,用于指定命令操作的对象是谁。如果可以省略参数,则一般都有默认参数。例如:
[root@localhost ~]# ls
anaconda-ks.cfg 注意:命令必须开头,选项和参数位置可以发生变化

操作Linux 命令行,最基本的对象就是目录和文件,因此本节开始为大家讲解一些基础且核心的操作 Linux 的基本命令,读者需要重点掌握。

1、pwd:显示当前所在位置绝对路径

pwd命令是print working directory中每个单词的首字母缩写,其功能是显示当前工作目录的绝对路径。在实际工作中,我们在命令行操作命令时,经常会在各个目录切换,此时可用pwd快速查看当前所在路径。


[root@localhost ~]# cd /etc/init.d
[root@localhost init.d]# ll /etc/init.d
lrwxrwxrwx. 1 root root 11 Jul 14 17:03 /etc/init.d -> rc.d/init.d #// 可以看到/etc/init.d是/etc/rc.d/init.d目录的软链接(快捷方式)
[root@localhost init.d]# pwd //最常用,不加任何选项执行。
/etc/init.d
[root@localhost init.d]# pwd -L //L=logical,显示逻辑路径(忽略软链接),=取PWD环境变量的值
/etc/init.d
[root@localhost init.d]# echo $PWD
/etc/init.d [root@localhost init.d]# pwd -P //直接显示物理路径(源文件路径)
/etc/rc.d/init.d

2、切换目录cd change directory

cd      切换目录         change directory

cd     切换到当前用户的家目录
cd - 去上一次所在的目录
cd ~ 去当前用户的家目录(=cd)
cd . 去当前目录
cd .. 去上一级目录
补充命令:
rz
sz:linux内容下载到本地 例:
[root@web02 /code]# ll
total 23068
drwxr-xr-x 5 www www 4096 Nov 14 14:42 wordpress
-rw-r--r-- 1 root root 23616326 Nov 14 15:34 wp.tar.gz
[root@web02 /code]# sz wp.tar.gz

3、tree

tree  以树形结构显示
tree [选项] 目录
不加选项默认以树形结构显示当前目录下所有内容,包括所有文件、子目录、以及子目录下的目录和文件。
-L 指定查看层数 例如 tree -L 1 /
-d 只显示目录
-a 显示所有文件
-F 区分显示目录和文件 如:只列出根目录下第一层目录结构
[root@localhost ~]# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

4、创建空目录mkdir make directory


DESCRIPTION
Create the DIRECTORY(ies), if they do not already exist. mkdir make directories 相当于windows创建文件夹 # 语法
mkdir [选项] xxx(目录名) # 选项
-p 递归创建多级目录 (根据需要创建父目录)
-v 显示创建的过程(没啥用)
-m 创建目录并指定权限 比如 mkdir -m 333 dir1
# 例子:
比如我想创建一个 xxx/xxx1/xxx2 直接创建不了,用 # mkdir -p /xxx/xxx1/xxx2 即可
用tree看下有没有:
root@sky,10.0.0.201:~/xxx # tree /xxx
/xxx
└── xxx1
└── xxx2 在/abc下创建1000个目录
mkdir -p /abc/yyy{1..1000}
rm -fr /abc*

5、创建空文件touch


touch [] 文件名
touch 的功能有两个:一是创建新的空文件;一是修改已有文件的时间戳属性(-a -m)(可以用stat命令查看) 选项可有可无
可以同时创建多个文件 比win方便的多
touch{1..100}.txt 等价于 touch 1.txt 2.txt...... # 注意:
1.创建文件,必须要创建在一个存在的目录中
2.和创建目录不同的是,创建相同的文件不会报错,会覆盖原来的
3.在Linux当中一切皆文件,不能建和文件名重名的目录 # 例
[root@localhost ~]# touch 1
[root@localhost ~]# mkdir 1
mkdir: cannot create directory ‘1’: File exists -d 指定时间做指定文件的时间属性
[root@localhost ~]# ll 1
-rw-r--r-- 1 root root 0 Jul 17 11:15 1
[root@localhost ~]# touch -d 20200101 1
[root@localhost ~]# ll 1
-rw-r--r-- 1 root root 0 Jan 1 2020 1

补充:时间戳知识与stat命令

# GNU/Linux 的文件共包含3种类型的时间戳属性:
[root@localhost ~]# stat 1.txt
File: ‘1.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 33645016 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2023-07-17 11:34:24.574906515 +0800 #// 文件最后被访问的时间。
Modify: 2023-07-17 11:34:24.574906515 +0800 #// 文件最后被修改的时间。
Change: 2023-07-17 11:34:24.574906515 +0800 #// 文件状态最后被改变的时间。
Birth: - # 对应 ls 命令,查看上述时间戳的选项如下:
mtime:最后修改时间(ls -lt) #// 修改文件内容,文件的修改时间(modify time)会改交
ctime:状态改交时间(ls -lc) #// 修改文件内容、移动文件或改变文件属性等,文件的ctime会改变
atime:最后访问时间 (ls -lu) #// 查看文件内容时,文件的访问时间 (access time)会改变

stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

6、ls 显示目录下内容及属性信息

ls 选项 文件或目录
显示默认以文件名进行排序(a到z)
-l 长格式
-a 显示所有,包括隐藏文件
-r 反过来,z到a
-F 加上文件类型指示符号(*、/、@等),比如目录是/ # 例
[root@localhost ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@sky /]# ls -F
bin@ boot/ dev/ ... -d 查看目录本身
-i 显示inode
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
--full-time(等同于--time-style=full-iso)
--timestyle={full-iso,long-iso,iso,locale} 以不同时间格式输出,默认是locale,long-iso效果最好
# 例
[root@localhost ~]# ll
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 1.txt
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# ls -l --time-style=locale
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 1.txt
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# ls -l --time-style=long-iso //推荐格式
total 4
-rw-r--r-- 1 root root 0 2023-07-17 11:34 1.txt
-rw-------. 1 root root 1310 2023-07-14 17:14 anaconda-ks.cfg -t 根据文件最后修改时间排序 #//执行ls时的默认显示(mtime)
-u 根据文件最后访问时间排序
-c 根据文件最后改变时间排序 # 例
[root@localhost ~]# ls -l --time=atime //--time=atime指定显示atime,--time=ctime指定显示ctime
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 1.txt
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# cat 1.txt
[root@localhost ~]# ls -l --time=atime
total 4
-rw-r--r-- 1 root root 0 Jul 17 13:42 1.txt #//atime变化了
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# ls -lu
total 4
-rw-r--r-- 1 root root 0 Jul 17 13:42 1.txt
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# ls -lt
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 1.txt
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg

5、cp复制 copy

# 语法
cp [选项] 源文件的路径 目标路径 新的文件名(想改名的话) 选项:
-r 递归复制 #//将目录和目录下子目录和文件全部复制。直接复制无法复制目录
-p 保持文件所有属性 比如 如果不加-p 时间会修改 用户和用户组会变回去
-i 覆盖时提示
-a = -r+-p
-v 显示复制过程 # 例
[root@localhost ~]# cp 1.txt 2.txt
[root@localhost ~]# ll
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 1.txt
-rw-r--r-- 1 root root 0 Jul 17 14:01 2.txt
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg
[root@localhost ~]# cp -a 1.txt 3.txt
[root@localhost ~]# ll
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 1.txt
-rw-r--r-- 1 root root 0 Jul 17 14:01 2.txt
-rw-r--r-- 1 root root 0 Jul 17 11:34 3.txt #//复制后属性不变
-rw-------. 1 root root 1310 Jul 14 17:14 anaconda-ks.cfg # 备份文件例子
cp /etc/sudoers /etc/sudoers.ori //备份了一份.ori结尾的文件。简写:
cp /etc/sudoers {,.ori}

6、mv 移动或重命名文件


mv [选项] 源文件 目标文件 新的文件名(想改名的话)
移动之后,源文件会被删除,类似剪切。如果使用不当,很可能给系统带来灾难性的后果。
# mv也可以移动目录。和 rm、cp 不同的是,mv 移动目录不需要加入 "-r" 选项 选项:
-f:如果目标文件已经存在,则不询问直接覆盖
-i:如果目标文件已经存在,则询问直接覆盖(默认选项)
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户
-v:显示文件或目录的移动过程
-u:在源文件比目标文件新,或者目标文件不存在时才进行移动
-t:指定mv的日标日录,适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后,与cp命令的-t选项功能一致 # 例
[root@localhost ~]# mv 3.txt /tmp
[root@localhost ~]# ll /tmp
total 4
-rw-r--r-- 1 root root 0 Jul 17 11:34 3.txt

7、rm 删除 remove

rm [OPTION]... FILE...(默认会有提示确认)
-f, --force 强制删除。忽略不存在的文件,不提示确认
-r, -R, --recursive 递归删除目录和其中的文件 # 例如
-fr /test* *是匹配所有,就把里面的内容删了。 # 企业生产环境中注意
1.尽量不用rm,用mv移到/tmp
2.删前务必做好备份,最好是异机备份
3.如一定要删除,用find代替rm,包括系统定时任务等清除文件方法如:
find . -type f -name "*.txt" -mtime +7|xargs rm -f #<== 与xargs 搭配使用,具体用法见 find 命令的详纽讲解
find . -type f -mtime +7 -exec rm {} \; #<==使用 find 的exec。 4.如一定用rm命令,尽量先切目录再删
5.禁止使用 rm -fr 文件名 删文件,以防误删目录!! 最多rm -f删文件,推荐 rm文件名
6.谨慎用通配符
禁止使用rm -fr /tmp/* #//*前多个空格可能会造成灾难
用也是切进去再删 rm -f ./*

补充:别名alias知识

# 查看所有定义的别名
[root@db04 ~]# alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
... # 定义临时别名,查看网络是否可以通,ping 百度,只对当前shell生效
[root@db04 ~]# alias tong="ping baidu.com"
[root@db04 ~]# tong
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms # 取消别名
[root@db04 ~]# unalias
光敲命令是临时设置别名,如果重启或者关机,设置的别名会失效 如何设置永久的别名
vi /root/.bashrc # 如何跳过别名执行命令
[root@web01 ~]# which cp
alias cp='cp -i'
/usr/bin/cp
使用命令绝对路径可屏蔽别名。
开头加反斜线\也可屏蔽别名。 # 总结:别名的作用
1、简化经常使用的复杂命令
2、保护危险命令,如rm

Linux文件与目录管理核心命令:看这篇就够了的更多相关文章

  1. Linux文件与目录管理常用命令

    Linux文件与目录常用命令管理: 文件权限/目录权限: -rwxr-xr-x. root root Mar : zeng.txt r():可读 w():可写 x():可执行 drwxr-xr-x. ...

  2. Linux文件与目录管理,常用命令总结

    绝对路径:  以根目录 / 开始的相对路径:  相对于当前路径的写法 $PATH:  可执行文件路径的变量(出现在该变量下的文件可以在系统的任何目录下都可以执行) 获取路径的文件名:    basen ...

  3. CentOS(十)--与Linux文件和目录管理相关的一些重要命令②

    在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...

  4. CentOS(九)--与Linux文件和目录管理相关的一些重要命令①

       接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...

  5. 【转】第七章、Linux 文件与目录管理

    原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php 第七章.Linux 文件与目录管理 最近升级日期:2009/08/26 ...

  6. Linux 文件与目录管理

    Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...

  7. linux文件与目录管理笔记

    ### Linux文件与目录管理 ---------- 绝对路径: / 相对路径:不以/开头的 当前目录 . 上一个工作目录 - 用户主目录 ~ root账户的主目录是/root 其他用户是/home ...

  8. Linux文件与目录管理(一)

    一.Linux文件与目录管理 1.Linux的目录结构是树状结构,最顶级的目录是根目录/(用"/"表示) 2.Linux目录结构图: /bin:bin是Binary的缩写,这个目录 ...

  9. 第七章、Linux 文件与目录管理

    第七章.Linux 文件与目录管理   1. 目录与路径 1.1 相对路径与绝对路径 1.2 目录的相关操作: cd, pwd, mkdir, rmdir 1.3 关於运行档路径的变量: $PATH ...

  10. Linux 文件与目录管理,Linux系统用户组的管理

      一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...

随机推荐

  1. 自创简易CSS Tab 选项卡

    前段时间我注册了 w3c.run域名,打算做一个W3C相关技术在线试验工具.没错,就是在线编写html.css.js代码然后在线运行,查看效果. 在设计首页时,我打算首页提供三个代码编辑器,介于界面大 ...

  2. 2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少? 中位数的定义为上中位数, [1,

    2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少? 中位数的定义为上中位数, [1, ...

  3. 2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么1、3、1和1、1、3和3、1、1的放置方法,也认为是

    2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么1.3.1和1.1.3和3.1.1的放置方法,也认为是 ...

  4. 2022-03-23:在k进制下,最小多小的num,可以让1~num范围的数拥有1的个数不少于n个? 腾讯音乐2022校园招聘。

    2022-03-23:在k进制下,最小多小的num,可以让1~num范围的数拥有1的个数不少于n个? 腾讯音乐2022校园招聘. 答案2022-03-23: 二分法. 代码用golang编写.代码如下 ...

  5. vue全家桶进阶之路31:Vue3 数据和方法的双向绑定ref、reactive、toRefs

    ref 在 Vue 3 中,你可以使用 setup 函数来定义组件的数据和方法.在 setup 函数中,你可以使用 ref.reactive 和 computed 等 Vue 3 的响应式 API 来 ...

  6. Python encode()方法和decode()方法

    Python encode()方法 encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为"编码".encode() ...

  7. 2014年蓝桥杯C/C++大学B组省赛真题(六角填数)

    题目描述: 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 分析:先将a数组初始化为1-12 ...

  8. ArcMap手动新建矢量要素的方式

      本文介绍在ArcGIS下属ArcMap软件中,新建点.线.面等矢量要素图层,并对新建图层的空间范围加以划定的方法.   首先,在右侧"Catalog"栏中选择需要存放新建立矢量 ...

  9. Java 网络编程 —— 创建非阻塞的 HTTP 服务器

    HTTP 概述 HTTP 客户程序必须先发出一个 HTTP 请求,然后才能接收到来自 HTTP 服器的响应,浏览器就是最常见的 HTTP 客户程序.HTTP 客户程序和 HTTP 服务器分别由不同的软 ...

  10. 图扑虚拟现实 VR 智慧办公室可视化

    前言 "虚拟现实"是来自英文"Virtual Reality",简称 VR 技术,其是通过利用计算机仿真系统模拟外界环境,主要模拟对象有环境.技能.传感设备和感 ...