Linux文件与目录管理核心命令:看这篇就够了
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文件与目录管理核心命令:看这篇就够了的更多相关文章
- Linux文件与目录管理常用命令
Linux文件与目录常用命令管理: 文件权限/目录权限: -rwxr-xr-x. root root Mar : zeng.txt r():可读 w():可写 x():可执行 drwxr-xr-x. ...
- Linux文件与目录管理,常用命令总结
绝对路径: 以根目录 / 开始的相对路径: 相对于当前路径的写法 $PATH: 可执行文件路径的变量(出现在该变量下的文件可以在系统的任何目录下都可以执行) 获取路径的文件名: basen ...
- CentOS(十)--与Linux文件和目录管理相关的一些重要命令②
在结束了第二期的广交会实习之后,又迎来了几天休闲的日子,继续学习Linux.在上一篇随笔 Linux学习之CentOS(十七)--与Linux文件和目录管理相关的一些重要命令① 中,详细记录了与Lin ...
- CentOS(九)--与Linux文件和目录管理相关的一些重要命令①
接上一篇文章,实际生产过程中的目录管理一定要注意用户是root 还是其他用户. 一.目录与路径 1.相对路径与绝对路径 因为我们在Linux系统中,常常要涉及到目录的切换,所以我们必须要了解 & ...
- 【转】第七章、Linux 文件与目录管理
原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager.php 第七章.Linux 文件与目录管理 最近升级日期:2009/08/26 ...
- Linux 文件与目录管理
Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...
- linux文件与目录管理笔记
### Linux文件与目录管理 ---------- 绝对路径: / 相对路径:不以/开头的 当前目录 . 上一个工作目录 - 用户主目录 ~ root账户的主目录是/root 其他用户是/home ...
- Linux文件与目录管理(一)
一.Linux文件与目录管理 1.Linux的目录结构是树状结构,最顶级的目录是根目录/(用"/"表示) 2.Linux目录结构图: /bin:bin是Binary的缩写,这个目录 ...
- 第七章、Linux 文件与目录管理
第七章.Linux 文件与目录管理 1. 目录与路径 1.1 相对路径与绝对路径 1.2 目录的相关操作: cd, pwd, mkdir, rmdir 1.3 关於运行档路径的变量: $PATH ...
- Linux 文件与目录管理,Linux系统用户组的管理
一.Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什 ...
随机推荐
- 自创简易CSS Tab 选项卡
前段时间我注册了 w3c.run域名,打算做一个W3C相关技术在线试验工具.没错,就是在线编写html.css.js代码然后在线运行,查看效果. 在设计首页时,我打算首页提供三个代码编辑器,介于界面大 ...
- 2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少? 中位数的定义为上中位数, [1,
2023-03-02:给定一个数组arr,长度为n, 任意相邻的两个数里面至少要有一个被选出来,组成子序列,才是合法的! 求所有可能的合法子序列中,最大中位数是多少? 中位数的定义为上中位数, [1, ...
- 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的放置方法,也认为是 ...
- 2022-03-23:在k进制下,最小多小的num,可以让1~num范围的数拥有1的个数不少于n个? 腾讯音乐2022校园招聘。
2022-03-23:在k进制下,最小多小的num,可以让1~num范围的数拥有1的个数不少于n个? 腾讯音乐2022校园招聘. 答案2022-03-23: 二分法. 代码用golang编写.代码如下 ...
- vue全家桶进阶之路31:Vue3 数据和方法的双向绑定ref、reactive、toRefs
ref 在 Vue 3 中,你可以使用 setup 函数来定义组件的数据和方法.在 setup 函数中,你可以使用 ref.reactive 和 computed 等 Vue 3 的响应式 API 来 ...
- Python encode()方法和decode()方法
Python encode()方法 encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为"编码".encode() ...
- 2014年蓝桥杯C/C++大学B组省赛真题(六角填数)
题目描述: 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 分析:先将a数组初始化为1-12 ...
- ArcMap手动新建矢量要素的方式
本文介绍在ArcGIS下属ArcMap软件中,新建点.线.面等矢量要素图层,并对新建图层的空间范围加以划定的方法. 首先,在右侧"Catalog"栏中选择需要存放新建立矢量 ...
- Java 网络编程 —— 创建非阻塞的 HTTP 服务器
HTTP 概述 HTTP 客户程序必须先发出一个 HTTP 请求,然后才能接收到来自 HTTP 服器的响应,浏览器就是最常见的 HTTP 客户程序.HTTP 客户程序和 HTTP 服务器分别由不同的软 ...
- 图扑虚拟现实 VR 智慧办公室可视化
前言 "虚拟现实"是来自英文"Virtual Reality",简称 VR 技术,其是通过利用计算机仿真系统模拟外界环境,主要模拟对象有环境.技能.传感设备和感 ...