2 Linux终端命令职场中 , 大部分都是通过 SSH客户端 远程操作,实现磁盘读取,文件读?。?目录操作,进程管理等等
打开终端3种方式 , 收藏夹黑色屏幕图标点击,右键打开终端,Ctrl Alt t组合键
command[-options] [parameters]
command即终端命令,options为选项一般前面有横杠 , 后面是参数,选项和参数有中括号表示可选项
man command (man表示手册缩写,查看命令帮助文档)出现文档,按回车下滚一行 , 按空格(或f)下翻一页,按b上翻一页 , 输入横杠加上对应的option可实现对应部分高亮
command --help也可以实现帮助文档 , 页面和上面不太一样,部分还出现了中文
pwd 命令 显示当前路径
tree [path] 命令(默认没有,需要安装 , sudo apt install tree)可以将你当前(或指定)路径下的文件以树状遍历(所有文件 , 递归)显示出来
ls命令 以列表显示当前目录文件,(不再深层挖掘)ls显示出来白色是文件,蓝色是文件夹 , 绿色是可执行文件,红色一般是压缩包
ls -a 显示所有的文件包括隐藏文件 , 显示结果以. 点开头的就是隐藏文件
ls -l 用较长方式显示文件
前面10个字母(分成第一个和后9个,第一个横杠表示一个文件,d表示一个目录,l表示是个链接(类似快捷方式) , 后九个,rwx表示跟读写等操作有关 , 后面讲),硬链接数,文件所属用户(第一个demo),文件所属组(第二个demo),文件大?。˙为单位),最后修改时间 , 文件
ls -h以人性化显示文件(一般和-l一起),可看出加了-h后,文件显示的单位方便阅读
cd 可以跟相对路径和绝对路径 , 路径大小写敏感
当前路径用“.”表示 , 上级路径“..”
cd 什么都不加或者cd ~可以直接回家目录/home
cd /去根目录
cd -返回上次的目录
mkdir创建目录
mkdir 目录名不可以一次创建多级目录(文件夹不存在情况下如mkdir a/b/c , a,b都不存在情况下,创建不了)
如果我们就是想创建多级目录呢 , 使用递归创建目录,会把没有的目录创建出来
mkdir a/b/c -p
touch创建文件
touch文件名(建议加后缀名) , 可以一次创建多个文件用空格隔开
touch a.txt
touch a.txt b.txt
gedit打开文件
gedit 文件相对路径或绝对路径,(如果未成功打开需要加上sudo gedit)
同上个命令可以同时打开多个,打开的编辑器编辑内容点击保存完成文件编辑
打开文件后终端进入等待状态
rm删除文件和文件夹
文件删除不能恢复
rm -i 文件这种会出现是否提示 , 给自己个提醒机会(centos没有-i就有提示)
rm -f 文件强制删除(不提示,和上个相反)
rm -r 目录删除目录(多级递归删除)
cp拷贝文件和文件夹
cp a.txt b.txt 当前路径下的a.txt拷贝一个b.txt到当前路径,如果已经存在b.txt直接覆盖掉
加上-i模式可以给与提示(不是同名文件不会出现)
-f强制复制不提示
-v 显示一行拷贝的过程
如果是复制文件夹要加上-r递归拷贝
-a 把文件或文件夹(是递归拷贝)的权限也一起复制过去
mv移动文件文件夹,重命名
mv 原路径 目标路径
如果存在同名文件 , 默认会覆盖,还是加-i提示,如果选择n , 不会移动成功
-f 强制移动不提示
-v 显示移动过程
移动文件夹不用加-r(删除和拷贝不一样)
clear清除终端显示内容(类似DOS cls)快捷键,Ctrl L
实际效果只是往下滚动 , 当前输入为第一行 , 拖动滚动条还是能看见之前的内容= =
tab自动补全(有时多个可能要再按下tab出现候选提示)
which查看命令位置
光标↑↓ 查看翻查之前调用过的命令
Ctrl C 终止程序运行
终端字体大小调整Ctrl Shift(放大)
Ctrl - (缩?。?注意无shift)
cal显示日历,当日高亮
cal -3显示当前月及上下月的日历(没有-别的数字)
cal -y 显示一年的日历
cal -j 日历显示是当年第几天
cal 年份4位数(获得年份日历)
date显示日期
date 加双引号字符串格式化显示,注意对应大小写
%F,%T同样实现类似效果,分别格式化日期和时间
history 获得所有的历史指令
history 数字 显示最近的数字条指令
如果我看到对应指令,然后根据指令编号,直接输入
! 指令编号即可执行对应指令,这些历史指令都存在于家目录隐藏文件 .bash_history 中
cat 直接在命令行显示文件内容,和gedit不一样
-n 查看文件同时显示行号
-b 文件空行不编号,但是给空出位置,显示非空行编号
-s 两行以上的空行只显示一行(可以和前面的组合 -sb)
同时打开多个文件效果
more
more 文件路径
分屏查看,会显示已经显示部分的百分比,
按回车滚一行,
按空格或Ctrl F或F向下翻一屏,
Ctrl B或B回滚一屏
q退出
morenum 表示从第num行开始查看,文件默认第一行为1
-p 选项 清屏 置顶显示内容
-s 连续2行以上的空行显示一个空行
more 也可以加多个文件,显示不同文件有专门的分割,这是与cat的区别
Linux 终端起始命令行最后一个#表示超级用户linux安装终端命令行,$表示普通用户
直接输入su回车并输入root用户密码就可以变成#了
若想打开就是这个符号,首先要开启root用户,并在登录linux安装终端命令行的时候使用root用户登录 。
Linux终端命令快捷键 Linux终端命令快捷键汇总
相信很多Linux桌面用户都对使用Linux终端感到反感,其实它没大家想的那么复杂,很多常见操作都可以直接在终端中进行 。特为大家汇总了提升终端命令执行效率的快捷操作,希望能帮助你学习和提升效率 。
移动定位光标
在终端中移动光标和定位似乎非常不便,其实不是你想的那样,有很多种方式可以让键盘成为你的好朋友 , 只是需要掌握正确的方法而已 。
定位单词
在长段的命令中,使用 Ctrl← 和 Ctrl→ 可快速将光标定位到命令中单词的首字母或末尾,实现在各单词之间的快速跳动定位 。
你可以试着在终端中输入 apt-get install build-essential 命令后,按 Ctrl左键或 Ctrl右键来试试效果 。
定位行首和行尾
定位到命令行首可以使用 CtrlA , 行尾则使用 CtrlE 快捷键 。
清除部分、全部或整行
使用 CtrlK 快捷键可以将当前光标位置之后的所有部分快速清除 , CtrlW 可以清除当前光标位置之前的一个单词 , 而 CtrlU 则可以直接刚整行命令直接清除 。
自动补全命令或路径
tab 键可以直接补全命令和路径,让我们免去很多输入错误的可能 。当然,在命令记不全时 , 只需输入几个首字母即可用 tab 键来补,还是十分方便的' 。
例如:要在 Ubuntu 安装软件,只需输入 apt-get ins 按 tab 之后即可被补全成 apt-get install 。
切换最近使用的命令
在Linux 的终端历史记录中会记下用户执行过的命令,用户只需按键盘的 ↓、↑ 上下箭头即可快速切换执行过的命令 。
复制前行
!! 双惊叹号直接表示上一行命令,例如要用 sudo 重复执行上一条命令,无需再输一遍 , 只需执行如下命令即可:
1. sudo !!
执行指定历史命令
若你想重复执行的命令不是「上一条」,则不能再使用 !! 了 。此时使用 ! 跟上要重复执行的前述命令开头即可 。
复制前一个参数
将文件夹复制并粘贴到新路径后,你可能还要在目录中进行其它操作,此时可以这样切换:
1. cd !$
其中的 !$ 表示上次使用的参数,通常只用于目录 。
目录导航
在Linux 终端中进行目录导航和切换还是使用 cd 命令 , 下面介绍一些 cd命令的常见操作 。
导航到特殊文件夹
在Linux 中操作文件夹时输入路径就是一个苦差事,但若你是通过桌面登录系统的话,可以直接将要指定的文件夹拖入终端窗口,而不必手动输入路径 。
回到上级目录
与Windows 一样,使用 cd.. 即可 。如果要在父目录的各文件夹之间进行切换,使用 ../文件夹名即可 。
回到上个目录
如果你操作到一半时,需要返回上个进入过的目录,可以使用 – 破折号:
1. cd -
其它目录导航操作
cd 返回家目录
pwd 查看当前目录
cd / 回到根目录(需要有权限)
多任务
执行多条命令
要在 Linux 终端中同时执行多个任务,只需用符号将多条命令串连起来即可 , 例如:
1. apt-get updateapt-get upgrade
命令失败备用
只会在前面一条命令执行成功时才会继续执行后续命令,如果你想在首条命令执行失败时提供备用命令 , 只需将 替换为 || 即可 。
后台执行任务
在任意 Linux 命令最后加上 符号即可将此任务丢到后台去执行,比较适合运行时间较长的任务 。对于后台执行的任务可以使用jobs 命令进行显示查看,也可以用 kill 将其干掉或用fg 命令将其挪到前台.
;
命令行/终端下载指令大全(winlinux)在我们渗透测试的过程中,通常会需要向目标主机传送一些文件,来达到提权,维持控制等目的 。因此当不方便进行直接传输时,同时目标主机是能有网络连接的 , 那么此时就可以通过本地下载这种方法来达到文件传输的目的 。此篇文章,我会对互联网上针对win与linux大部分的下载指令来做一个汇总 , 可能会有疏漏 , 但汇总的都是经常会用的 。
这款工具功能很丰富 , 可以充当某种功能完备的GUI下载管理器,它拥有一款理想的下载管理器所需要的所有功能,比如它可以恢复下载,可以下载多个文件 , 出现某个连接问题后,可以重新尝试下载 , 你甚至可以管理最大的下载带宽 。
直接下载:
后台下载:
如果互联网连接出现中断,恢复下载:
从某个密码保护的ftp软件库下载文件:
Curl是另一种高效的下载工具,它可以用来上传或下载文件,只要使用一个简单的命令 。它支持暂停和恢复下载程序包,并支持数量最多的Web协议,可预测下载完成还剩余多少时间,可通过进度条来显示下载进度 。它是所有Linux发行版的内置工具 。
直接下载:
借助-o选项,提供名称,下载文件会以该名称保存;如使用-O选项 , 文件就会以原始名称保存 。
这是wget的出色替代者,是一款轻量级下载实用工具 。它实际上是个加速器,因为它打开了多路http连接,可下载独立文件片段,因而文件下载起来更快速 。
直接下载:
这是一种开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具 。
直接下载:
Perl是一门很吊的语言,使用它基本可以实现任何事情,用它实现文件下载也很简单 。
执行脚本文件是这样:
Python也是很受欢迎的主流脚本语言,代码清晰且简洁:
Ruby是一个面对对象的语言,Metasploit框架就是用它来实现的,当然他也可以实现像下载文件这样的小任务 。
执行脚本文件是这样;
PHP作为一种服务端脚本 , 也可以实现下载文件这种功能 。
执行脚本文件是这样:
一般情况下攻击者使用FTP上传文件需要很多交互的步骤,下面这个 bash 脚本,考虑到了交互的情况 , 可以直接执行并不会产生交互动作 。
当然根据实际情况也可以进入交互终端:
攻击者的电脑上输入:
这个命令会将file的内容输出到本地的1234端口中 , 然后不论谁连接此端口,file的内容将会发送到连接过来的IP 。
目标电脑上的命令:
这条命令将连接攻击者的电脑,接受file内容保存 。
PowerShell 是一种winodws原生的脚本语言,对于熟练使用它的人来说,可以实现很多复杂的功能 。
下面这两条指令实现了从Internet网络下载一个文件 。
可以应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
文件下载并执行如下:
在1998年Visual Basic最终标准在windows上确定 。下面的代码可以实现下载文件,虽然它的长度比Powershell长多了 。
在windows中Cscript指令可以允许你执行VBS脚本文件或者对script脚本做一些设置 。在windows 7中这个指令并不是必须要用到 。但是在windows XP中需要使用这条指令,如下所示:
在Windows Vista以及以后的版本中默认有FTP,可以使用以下命令运行:
上传:
下载:
Bitsadmin是Windows命令行工具,用户可以使用它来创建下载或上传的任务 。只能命令下载到指定路径上,win7以上:
mshta内容如下:
依赖于WScript.shell这个组件:
Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行 。
WinXP及以上系统的regsvr32.exe在windowssystem32文件夹下;2000系统的regsvr32.exe在winntsystem32文件夹下 。
test.data内容:
还可以利用生成sct文件:
Windows shares可以加载一个驱动器,然后用命令来复制文件 。
加载远程驱动:
当需要把一个exe文件放到目标计算机上时,Nishang可以使用PowerShell允许你把一个exe转换成hex,然后把hex再转换成原来的exe文件:
把exe转成hex文件输入:
打开evil.txt文件,复制内容,然后通过RDP的剪贴板复制进目标计算机 , 把hex文件还原成exe文件输入:
1.MSXSL.EXE
msxsl.exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令 。
2.pubprn.vbs在Windows 7以上版本存在一个名为PubPrn.vbs的微软已签名WSH脚本,其位于
3.esentutl.exe/extrac32.exe
4.desktopimgdownldr.exedesktopimgdownldr.exe 位于 Win10 的 system32 文件夹中 , 原本用于设置锁定屏幕或桌面背景图像的 。
普通用户可以用:
这样来下载文件 。
可以把C:ProgramData来改成一个普通用户可写的目录 。
下载的文件存放于:
管理员用户会多写一个注册表项 , 所以管理员最好的命令是:
作者:肖洋肖恩、
原文链接:
在 LINUX命令行下 怎样下载一个网络上的文件?1、我们需要更新源 , 使用命令sudo apt-get update,使用旧linux安装终端命令行的源可能不会安装新版本的a软件 , 也可能直接报错误提示 。
2、使用命令在终端安装a,sudo apt-get install a,在下面输入y进行安装 。
3、会有一些安装包的提示,不过不需要管它很快就能够安装好,安装好后终端会处于默认界面 。
4、使用a -v可以查看软件的版本 , 使用a -h可以查看帮助信息 。
5、我们需要下载时使用命令a 地址就可以linux安装终端命令行了,它支持多种协议的下载方式 。
Linux 从 0 到 1(一) - 终端简介,文件与目录以及相关操作,常用命令 模式linux安装终端命令行:
当打开终端 , 第一行所见的就叫命令行提示符 。我的是这样的linux安装终端命令行:
命令行提示符,顾名思义就是提示在其后面输入命令 。在你输入新的一行命令前 , 这个命令提示符都会出现 。分别解析一下上边代表什么意思:
oscar这是当前用户的名字 。Linux是一个多用户的操作系统,Windows也可以 。不过Linux的多用户管理更方便 。我们一般建议每个使用Linux系统的用户都创建一个属于自己的账户,便于隐私管理 。
@这个符号我们应该不陌生,我们的电子邮件一般都是name@domain.com这样的不是吗 。这个@就表示英语里的at , 是“在...里面,落户在...的,在其中”的意思 。@前面是用户名,后面是所在的域 。
oscar-laptop这是当前电脑/操作系统的名字 。上面说linux安装终端命令行了在@后面的是一个域,所以 oscar@oscar-laptop 就表示oscar-laptop这台电脑的oscar这个用户 。oscar-laptop这个名称在安装此Linux系统时可以任意指定 。
:这是分隔符,没有什么特别的涵义 。
~ 这是当前所在目录的名字 , 会随着用户进入不同目录而改变 。~表示当前用户的家目录,有点类似Windows系统的“我的文档”这个目录 。
$指示你所具有的权限的字符 。在Linux系统中有两种可能:
因此,oscar@oscar-laptop:~$ 的意思就是:
你目前是以oscar这个用户登录;你的电脑名称为oscar-laptop;你目前位于 ~ 目录下,就是你的用户家目录 。你是普通用户,拥有有限的权限 。
参数里可以包含多个参数,由空格隔开,也可以包含数字,字母,等等 。可以说,参数没有固定的格式,但是一般来说还是遵循一定的规范的 。
如果我们要一次加好几个短参数 , 可以用空格隔开,例如:
多个短参数也可以合并在一起,例如上面的命令等价于:
请注意:参数的字母的大小写是有区别的,大写的T和小写的t通常表示不同意思 。
如果有多个长参数 , 是不能像多个短参数那样合并写的 。而是只能以空格隔开 , 例如:
当然我们也可以组合使用短参数和长参数,例如:
有时候 , 同一个意义的参数有短参数和长参数两种形式,效果是一样的,可以任选哪一种 。
有一些参数你还需要给它赋一个值才行 。而且短参数和长参数的赋值的方式不尽相同 。
例如,短参数赋值,通常是这样的:
表示把10赋值给p参数 。
如果是长参数,则一般是这样赋值:
长参数的方式更加容易理解,但是不如短参数那么简洁 。
正如我们说过的,参数的形式没有绝对的准则 。我们上面给出的规则是一般的,有些命令的参数格式可能是我们没怎么见过的 。
有些参数就不一样,而且取决于命令 。例如对于 ls 这个命令,假如后面带了一个参数,这个参数是一个目录的路径名的话,那么就会列出此目录下的文件 。
两种类型的文件
简单起见 , 我们把Linux下的文件分为两大类:
在一个文件系统中,我们总有一个被称为根目录的东西 , 这个根目录里包含了所有其他目录和文件 。Linux中有且只有一个根目录 , 就是
是的 , 就是用一个斜杠表示 。没有比根目录再高一阶的目录了,因为没有目录包含根目录,根目录就是Linux最顶层的目录 。
Linux系统安装后,包含了很多的文件和目录(虽然其实都是文件),我们很容易迷失在“茫茫文海”中 。
当然我们不可能一下子列出Linux中的所有文件 , 那不现实 。但是我们可以向你展示如何在Linux的目录树中来回穿梭,你可以知道此刻你位于哪个目录下 。就好比能看懂Linux这个很大的“地图” 。
pwd 是英语Print Working Directory的缩写,表示“打印当前工作目录” 。
which 命令:获取命令的可执行文件的位置,which命令用于显示一个命令的对应的可执行程序的位置 。可能听起来有点拗口 。
在Linux下,每一条命令其实对应了一个可执行程序 。我们在终端中输入命令,再按回车的时候 , 其实就是执行了对应的那个程序 。比如说 , pwd命令对应的pwd程序就是存在于Linux中的 。
which命令接受一个参数 , 也就是你想要知道其可执行程序位于哪里的那个命令 。
我们来测试一下,就拿pwd命令来测试好了:
得到:
因此,pwd命令对应的pwd这个可执行程序位于/bin目录中 。
我们也可以注意到Linux中的可执行程序和Windows中不太一样,在Windows中可执行程序一般以.exe结尾,而Linux中一般是没有后缀名的 。
Linux中的可执行程序也不是都位于相同目录的 。我们可以来测试一下which命令本身对应的可执行程序位于哪里:
我们可以看到,which命令对应的可执行程序which并不位于/bin中,而是在/usr/bin中 。
Ubuntu的终端默认是有颜色标注的,一般来说:
如果在你的终端里没有标明颜色,那么你可以加上参数 --color=auto来开启颜色标注 。如下:
如果你不需要颜色标注,那么可以用 --color=none来关闭颜色标注 。如下:
当然,为了避免每次都输入这么一串额外的参数,其实我们可以在一个配置文件里修改,使得永久显示颜色或不显示颜色 。
在Linux,以点( . )开头的文件是隐藏文件,不过这里不包括开头的两个. 和..,这两个的含义如下:
- . (一个点)表示当前目录 。在当前情况下,就是 /home/oscar。
- .. (两个点)表示上一级目录 。因为当前目录是/home/oscar,所以上一级目录就是 /home。
我们有一个大写的参数 -A,它的作用和小写的-a几乎一样 , 唯一不同就是-A不列出 . 和 .. 这两个文件 。
-l 这个参数算是ls命令最常用的了 。加上-l参数使得ls命令列出一个显示文件和目录的详细信息的列表 。
当我们仅用ls -l时,列出的文件详细信息中,文件的大小是以字节为单位的 。有时这不是太直观 。我们可以再加一个参数-h,h是humain readable的缩写 , 表示“适合人类阅读的” 。所以我们的命令变成了:
t是time的缩写 。
du命令也是很有用的,因为它可以让我们知道文件和目录所占的空间大小 。
虽然ls -l命令也可以显示文件和目录的大?。?但是du命令统计的才是真正的文件大小 。du命令会深入遍历每个目录的子目录,把所有文件的大小都做一个统计 。
du是英语disk usage的缩写,表示“磁盘使用/占用” 。
我们的du命令也可以使用参数 。
cat命令和less命令:显示文件内容 , 这两个命令只能显示文件内容 , 并不能对文件内容进行修改 。
一次性显示文件的所有内容 , 如果你想要在显示的文件内容上加上行号,那么你可以加上 -n 这个参数 。
分页显示文件内容
head命令和tail命令:显示文件的开头和结尾 。
显示文件开头,默认情况下,head会显示文件的头10行 。我们也可以指定显示的行数,用 -n 这个参数:
就会显示文件的头5行 。
显示文件结尾 。默认情况下,tail会显示文件的尾10行 。
我们也可以指定显示的行数,用 -n 这个参数:
就会显示文件的尾5行 。
tail命令还可以配合 -f 参数来实时追踪文件的更新:
这样,就会检查文件是否有追加内容 , 如果有,就显示新增内容 。
默认地,tail -f会每过1秒检查一下文件是否有新内容 。你也可以指定间隔检查的秒数,用 -s 参数:
可以用快捷键 Ctrlc 来终止tail -f 命令 。
touch命令和mkdir命令:创建文件和目录
创建一个空白文件 。事实上,Linux没有一个命令是专门用来创建一个空白文件的 。touch命令其实一开始的设计初衷是修改文件的时间戳,就是可以修改文件的创建时间或修改时间 , 让电脑以为文件是在那个时候被修改或创建的 。但是touch命令如果后面跟着的文件名是不存在的,那么它就会新建一个 。
事实上,我们可以用touch命令同时创建多个文件:
如果我所要创建的文件的名字里有空格怎么办呢?
很简单,加上双引号:
创建一个目录 。
mkdir也可以同时创建好几个目录:
如果我所要创建的目录的名字里有空格怎么办呢?
很简单,加上双引号:
我们还可以用 -p 参数来递归创建目录结构 。
比如:
cp命令和mv命令:拷贝文件和移动文件
拷贝文件或目录
cp是英语copy的缩写,表示“拷贝” 。所以,顾名思义,此命令用于拷贝 。cp命令不仅可以拷贝单个文件,还可以拷贝多个文件 , 也可以拷贝目录 。
复制文件到另一个目录只需要把cp命令的第二个参数换成目录名 。
拷贝目录
要拷贝目录 , 只要在cp命令之后加上-R参数(注意是大写的R) 。拷贝的时候,目录中的所有内容(子目录和文件)都会被拷贝 。
使用通配符*
*号(星号)是很常用的正则表达式的符号,被称为“通配符”,
所以如果我们用如下命令:
那么就会把当前目录下所有txt文件拷贝到folder这个子目录当中 。
又如:
那么就会把当前目录下凡是以ha开头的文件都拷贝到folder目录中 。
移动文件
mv是英语move的缩写,表示“移动” 。mv命令有两个功能:
用mv命令来移动目录很简单,不需要额外的参数 , 就跟移动文件一样:
当然,我们也可以使用通配符 。
除了移动文件,mv命令还可以用于重命名文件 。
事实上 , Linux中没有一个专门的命令用于重命名文件 。之所以mv命令可以重命名文件,其实还是归因于它的机制:移动文件 。经过mv移动之后,原始文件变成了新的名字的文件,文件内容是不变的,这不就相当于重命名了吗?
以上命令会将new_file重命名为renamed_file 。
删除文件和目录
rm命令可以删除一个文件 , 多个文件,目录,甚至你的整个Linux系统(如果你愿意的话) 。
以上命令删除当前目录下的new_file_copy这个文件 。
我们也可以同时删除多个文件,只要用空格隔开每个文件即可 。例如:
保险起见,用rm命令删除文件时,可以加上 -i 参数,这样对于每一个要删除的文件 , 终端都会询问我们是否确定删除 。i是英语inform的缩写,表示“告知,通知” 。
有两种回答:
y:是英语yes的缩写,表示“是” 。那么回车确认后 , 文件就删除了 。
n:是英语no的缩写,表示“否” 。那么回车确认后,文件不会删除 。
如果在rm命令后加上-f参数 , 那么终端不会询问用户是否确定删除文件,不论如何 , 文件会立刻被强制删除 。
f是英语force的缩写 。
以上命令会强制删除file文件 。
r是英语recursive的缩写,表示“递归的” 。所以使用-r参数,可以使rm命令删除目录,并且递归删除其包含的子目录和文件 。
这个命令也挺危险的,用得不好可能你的子目录和文件都没了 。
以上命令会删除one这个目录,包括其子目录和文件 。
其实,也存在一个命令
看着和 rm -r 挺像的 。但是这个命令有个局限性:只能删除空的目录 。
创建链接
事实上,Linux下有两种链接类型:
为了区分这两种链接类型的不同,我们首先来谈一谈如Linux这样的操作系统中文件在硬盘上的存放 。
文件在硬盘上存储时,大致来说(请注意我用了“大致来说”),每个文件有两部分:
文件名的列表是储存在硬盘的其他地方的 , 和文件内容分开存放,这样方便Linux管理 。
注意:为什么我上面要用“大致说来”呢?因为此处我们简化了描述,其实每个文件有三部分:
我们这里简化地将文件分为两部分:文件名和文件内容 。因为我们不想把事情复杂化,我们想要理解两种链接类型的区别 , 暂时只要知道这些就够了 。
每个文件的文件内容被分配到一个标示号码,就是inode 。因此每个文件名都绑定到它的文件内容(用inode标识) 。原理如下图:
下面我们学习如何创建硬链接和软连接 。
比之软链接,硬链接的使用几率小很多 。但是我们还是要学习一下,毕竟可能会用到 。
硬链接的原理:使链接的两个文件共享同样的文件内容,也就是同样的inode 。
所以一旦文件1和文件2之间有了硬链接 , 那么你修改文件1或文件2,其实修改的是相同的一块内容 。只不过我们可以用两个文件名来取到文件内容 。
硬链接有一个缺陷:只能创建指向文件的硬链接,不能创建指向目录的硬链接 。但是软链接可以指向文件或目录 。当然了,事实上,通过一些参数的修改,也可以创建指向目录的硬链接,但是比较复杂,这里不再详述 。所以对于目录的链接,我们一般都是用软链接 。
硬链接原理图:
要创建硬链接,直接用ln命令,不加任何参数:
我们可以用ls -i命令查看一下(-i参数可以显示文件的inode) 。对于硬链接来说 , 删除任意一方的文件,共同指向的文件内容并不会从硬盘上被删除 。
我们用ls -l命令查看文件信息的时候,第二列的那个2,其实是表示拥有相同inode号的文件数 。不难理解,因为它们指向相同的文件内容 , 所以共享一个inode 。
这个第二列的数字,一般来说对于普通文件,都是1 , 因为不同文件inode不同嘛 。对于目录来说,这第二列的数字标明目录内所含文件数目 。
其实,软链接才是真正像我们在Windows下的快捷方式的,其原理很相似 。
创建硬链接是ln不带任何参数,但是要创建软链接需要加上-s参数 。s是symbolic(符号的)的缩写 。
file2指向的不再是file1的文件内容(和硬链接不同),而是指向file1的文件名 。
软链接原理图:
用ls -l命令查看一下,会发现形式和之前的硬链接不一样噢 , file2的信息是这样的: file2-file1,表示file2指向file1 。
而且file2前面的权限那里的第一个字母变成了l , 表示link(链接) 。之前硬链接的时候是没有l的,硬链接外表看起来就和普通文件类似 。
我们用ls -l命令查看文件信息的时候,第二列的那个1,表示拥有相同inode号的文件数 。不难理解,因为file2指向file1,它们并没有指向同一块文件内容,所以它们的inode号不相同 。
软链接的特点:
【linux安装终端命令行 linux中安装命令】关于linux安装终端命令行和linux中安装命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 泉州无人带货直播,无人直播带货效果怎么样
- 烟台教育局抖音公众号关注的简单介绍
- 阿里服务器免费好吗,阿里服务器免费好吗安全吗
- python数组排序函数 python3 数组排序
- js函数与作用域知识,js中函数的作用域
- ug10虚拟机怎么装,如何装ug100
- Python代码这样渲染,python三维图形渲染
- oracle端口怎么修改 oracle11g修改端口号
- 小企业用erp系统,小企业用erp系统需要多少钱