ctrl+c --- 终止当前进程。
tree --- 将当前目录下的文件以树状的形式显示出来。
tree 绝对路径 --- 将该路径下的文件以树状的形式显示出来。
stat 当前目录的文件名--- 显示文件的详细属性信息包括文件系统状态。
stat 某目录的绝对路径 --- 显示该目录的详细属性信息包括文件系统状态。
注:stat命令比ls命令输出的信息更详细。
Inode:
(1)符号链接又叫软链接,和源文件不是一个文件。例如Windows的快捷方式。
作用特点:在指定路径查找某个文件访问时快速便捷,删除源文件后快捷方式就不能访问了。
创建对象:文本文件目录文件都可以创建,并且可以跨文件系统。
创建链接文件:ln -s 原文件 链接文件
(2)硬链接。
概念:多个文件名指向同一个Inode。
作用特点:防止用户误删除,备份(仅对文件名备份,可以节省磁盘空间)。
创建对象:对目录文件不能创建,并且不可以跨文件系统。
创建硬链接: ln 原文件 新文件
注:创建链接时源文件和链接文件都可以以绝对路径的形式创建在不同的目录中。例如:ln -s /home/aaa /a.txt 。注意当源文件和链接文件在不同目录时,两者都得写出绝对路径。
touch 文件名 --- 在当前目录创建文本文件。
tuoch /root/kun(绝对路径)--- 在root下创建kun文本文件。
touch 文件名1 文件名2 文件名3 --- 创建多个文件,可以在当前目录,也可使用绝对路径。
touch /root/{文件名1,文件名2,文件名3} --- 在/root下创建三个文件。
touch {1,2}{a,b} --- 创建1a 1b 2a 2b 4个文件。
touch {1,2}{a,b}{A,B} --- 创建1aA到2bB等8个文件。
touch “a b” --- 创建一个叫做a b的文件。
此时,单引号和双引号作用一致。
注:
1.tuoch在同一个目录创建文件时,如果存在同名的文件,则不会再创建一个同名文件,而是改变该文件的时间信息,同一个目录中不能存在两个名字相同的文件,哪怕是不同类型的文件也不能同名,同时命名时严格区分大小写。
2.文件名不可以含有/。
3.文件名不能超过255个字符。
echo 内容 >> 文本文件 --- 将内容写进文本文件中。
cat 文本文件 --- 将文本文件中的内容输出在终端中。
rm 文件名 --- 在确认后,删除所处目录中的文件。
rm 绝对路径 --- 删除该路径所指的文件。
rm -r 目录名 --- 删除所处目录中的目录文件。
*统配符 --- 任意长度的字符。
rm -f 文件名 --- 直接删除文件,不需要确认。
rm -f 2* --- 删除所有第一个字符为2的所有文件。
rm -rf --- 删除所处目录中所有文件。
注:要彻底删除一个文件,要将所有的硬链接全部删除。
mkdir 目录名 --- 创建目录文件。
mkdir 绝对路径 --- 在目标路径创建目录。
mkdir创建目录时,不能一次性创造出一整条未知的路径,比如/root/5/6/7中,5与6与7都是不存在的时候,就不能成功,这是需要加上-p。
如:mkdir -p /root/5/6/7,此时就会同时创建号5,6,7三个目录文件。
同时创建多个目录可以通过mkdir /root/{a,b,c}来同时创建a,b,c三个目录文件。
或者通过mkdir /root/a{1..100}来创造a1到a100总共100个目录文件。
创建目录时可以通过-v来显示创建目录的详细过程。
如:[root@Cxkun test]# mkdir -v kun
mkdir: created directory 'kun'
注:默认目录的硬链接次数为2,因为一个是它本身,一个是 “.”。
FHS:filesystem hierarchy standard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。
Linux目录结构的特点:
分区‘加载’于目录结构:
使用树形目录结构来组织和管理文件。
整个系统只有一个位于根分区的一个根目录(树根)、一棵树,其他所有分区、目录、文件以及外部设备(如硬盘、光驱等)都是以根目录为起点,挂接在目录树的某个目录中的。
/ --- Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录。
/sbin --- 存放管理员可执行的命令文件。
/bin --- Binary的缩写,存放系统所有用户可执行的程序或命令文件。
/boot --- 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动。
/dev --- dev 是设备(device)的英文缩写。包含所有的设备文件。
/etc --- 存放了系统管理时要用到的各种配置文件和子目录。
/home --- 存放一般用户的个人目录。
/lib --- 是库(library)英文缩写,存放系统的各种库文件(32位)。
/lib64 --- 存放系统本身需要用到64位程序的共享函数库(library)
/mnt 和/media --- 可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点。
/opt --- 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel 、WordPerfect,这可避免将文件分散至整个文件系统。
/proc --- 可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的(内核)。
/root --- 超级用户的个人目录,普通用户没有权限访问。
/run --- 保存自系统启动以来描述系统信息的文件(应用层的进程信息)。
/srv --- srv 是服务(server)的简写,服务启动之后需要访问的数据目录。
/sys --- 本目录是将内核的一些信息映射文件,以供应用程序所用 系统文件。
/tmp --- 用来存放不同程序执行时产生的临时文件。
/home --- 存放一般用户的个人目录。
/usr --- 一般用户程序安装所在的目录,用于安装各种应用程序。
/var --- 通常各种系统日志文件放在这里以及动态变化的数据文件。
date:
参数:
%S --- 秒(00~59)
%M --- 分钟(00~59)
%H --- 小时(00~23)
%I --- 小时(00~12)
%m --- 月份(1~12)
%p --- 显示出AM或PM
%a --- 缩写的工作日名称(例如:Sun)
%A --- 完整的工作日名称(例如:Sunday)
%b --- 缩写的月份名称(例如:Jan)
%B --- 完整的月份名称(例如:January)
%q --- 季度(1~4)
%y --- 简写年份(例如:20)
%Y --- 完整年份(例如:2020)
%d --- 本月中的第几天
%j --- 今年中的第几天
%n --- 换行符(相当于按下回车键)
%t --- 跳格(相当于按下Tab键)
date --- 按照默认形式显示当前时间:
[root@Cxkun /]# date
Sun Oct 23 15:03:05 CST 2022
按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令如下所示:
[root@Cxkun /]# date "+%Y-%m-%d %H:%M:%S"
2022-10-23 15:05:31
将系统的当前时间设置为2020年11月1日8点30分的date命令如下所示:
1.[root@Cxkun /]#date 110108302020.10
注:格式应该按照月日时分年点秒的规则。
2.[root@Cxkun /]# date -s "2020-11-01 8:30:00"
Sun Nov 1 08:30:00 CST 2020
date命令中的参数%j可用来查看今天是当年中的第几天。这个参数能够很好地区分备份时间的新旧,即数字越大,越靠近当前时间。该参数的使用方式以及显示结果如下所示:
[root@Cxkun /]# date "+%j"
296
timedatectl status--- 显示状态信息。
timedatectl list-timezones --- 列出已知时区。
timedatectl set-time --- 设置系统时间。
timedatectl set-timezone --- 设置生效时区。
例:
timedatectl set-timezone Asia/Shanghai --- 将时区改为上海。
timedatectl set-time 2021-05-18 --- 将时间改为2021年5月18日。
timedatectl set-time 9:30 --- 将时间改为9点30分。
在ll命令中,得到的目录大小只是目录名的大小,与Windows中不同。
统计目录及文件的空间占用情况——du命令。
功能:查看某个目录中的各级子目录所占用的磁盘空间数。
命令格式: du [选项] [目录名] KB
如果不跟目录名,则缺省为当前目录。
-a --- 显示指定目录下占用磁盘空间包括所有的文件,而不仅仅只统计目录。
-s --- 只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小。
-h --- 以K,M,G为单位显示磁盘使用情况,以提高信息的可读性。
cp命令:
cp /root/ikun /kun --- 将/root下的ikun文件复制到/下并改名为kun。
cp /root/ikun /root --- 将/root下的ikun文件复制到/root路径下。
注:如果路径存在,就是将文件复制到路径下面,如果路径不存在,就是复制并改名的操作。
cp -r 目录文件名 目的地 --- 复制目录文件及其下的所有文件到目的地,用来复制目录文件。
cp -i 与cp的效果一致。
如果复制文件的时候目的地处有与复制文件相同名字的文件,会提醒是否要覆盖该文件。
cp -f --- 在覆盖文件时,不提醒是否覆盖。
cp -d --- 在复制链接文件的时候,如果不加-d就会失去链接属性,加上-d才能保留链接属性。
cp -a --- 通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录。
mv命令:
mv /root/ikun / --- 将/root下的ikun文件移动到/下,并且原来的/root下不再存在ikun。
mv /root/ikun /kun --- 将/root下的ikun文件移动到/下,并且改名为kun。
mv /root/ikun /root/kun --- 相当于将ikun改名为kun。
mv命令移动目录文件的时候,不需要加选项,直接移动即可,操作与文本文件一致。
wget 下载链接 --- 下载到当前目录。
wget 下载链接 -P / --- 下载到/目录。
wget 下载链接 -t3 --- 尝试三次下载,最多断开三次下载,三次后还未下载成功就不再下载。
wget 下载链接 -c --- 下载断开后,下次仍会从上次下载到的地方继续下载,不会从头开始。
wget 下载链接 -p --- 下载页面内所有的资源,包括图片,视频等。
- 命令格式:cat [选项] 文件名列表
说明:文件名可使用通配符
常用选项:
-n --- 对输出内容中的所有行标注行号。
-b --- 对输出内容中的非空行标注行号。
tac与cat相反,将内容反过来输出。
2.分页查看文件内容--- more和less命令
命令格式: more | less [选项] 文件名
常用选项:
-数字 --- 仅适用于more命令,用来指定分页显示时每页的行数。
+num --- 指定从文件的第num行开始显示。
-c --- 从顶部清屏然后显示文件内容。
-N --- 仅适用于less命令,其作用是在每行前添加输出行号。
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
文件末尾时more会自动退出,less 按q键退出
⒊查看文件开头或末尾的部分内容 --- head和tail命令
命令:head | tail [选项] 文件名
常用选项有:
-num ---指定需要显示文件多少行的内容,若不指定,默认只显示十行。
-f --- 使tail不停地去读取和显示文件最新的内容, 以监视文件内容的变化,这样有实时监视的效果。
tail命令更多的用于查看系统日志文件,以便于观察重要的系统消息,特别是结合使用-f选项,tail会自动实时地把打开文件中的新消息显示到屏幕上,从而跟踪日志文件末尾的内容变化,直至按【Ctrl+C】键终止显示和跟踪。
纯命令行系统中一般没有vim,但所有系统中肯定存在vi。
vim 文件名 --- 存在该文件则进入文件中编辑文件,如果不存在,则创建该文件,再进入。
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
注:初次进入vim时为命令模式,在命令模式可以通过按a、A、I、i、o、O、s、S进入输入模式,也可以通过:进入末行模式。
在输入模式和末行模式可以通过Esc回到命令模式,但两者之间不能相互进入。
在末行模式按q可以退出vim,通过q!强制退出末行模式。
注:在当前文件中通过vim的操作,像复制剪切等,一旦离开结束该vim进程就会失效,不能将内容再复制到其他文件里。
命令模式下的操作:
d+Enter --- 删除光标所在行和光标所在下一行。
dd --- 删除光标所在行。
Ndd --- 删除包括光标所在行以及以下的总共N行。
dG --- 删除光标所在行以及光标之后的所有内容。
dgg --- 删除光标所在行以及光标之前的所有内容。
d^ --- 删除光标所在字符之前的所有本行内容。
d$ --- 删除光标所在字符以及光标之后所有的本行内容。
x --- 删除光标所在字符。
S --- 删除光标所在行并进入插入模式。
yy --- 复制光标所在行。
Nyy --- 从光标所在行开始复制N行。
cc --- 剪切光标所在行并进入插入模式。
Ncc --- 从光标所在行还是剪切N行并进入插入模式。
G --- 跳转到文档尾的行首。
gg --- 跳转到文档首的行首。
^ --- 跳转到光标所在行的行首。
$ --- 跳转到光标所在行的行尾。
u --- 向前撤回。
Ctrl+r --- 向后撤回。
进入插入模式:
a --- 插入光标所在位的后面。
A --- 插入光标所在行的末尾。
o --- 插入光标所在行的下一行,新建一行。
O --- 插入光标所在行的上一行,新建一行。
s --- 删除光标所在字符,进入插入模式。
S --- 删除光标所在行,进入插入模式。
i --- 光标不发生移动,进入插入模式。
I --- 插入到光标所在行的行首。
末行模式(输入后按Enter进行操作):
:q --- 退出。
:q!--- 强制退出。
:w --- 写入(保存)。
:w 文件名 --- 可以将文件内容写入另一个文件中,文件名必须不存在,必须时现创的文件。
:wq --- 保存并退出。
:wq! --- 强制保存并退出。
:N --- 跳转到N行。
:set nu --- 显示行号。
:set nonu --- 关闭显示行号。
:/ 关键字 --- 从上而下匹配关键字(高亮显示)。
:?关键字 --- 从下而上匹配关键字(高亮显示)。
:set noh --- 结束高亮显示。
:s /old/new --- 将当前行找到的第一个old字符串修改为new字符串。
:s /old/new/g --- 将当前行找到的所有old字符串修改为new字符串。
:*,* s /old/new/g --- 将行号*,*中所有行中的old字符串修改为new字符串。
:% s /old/new/g --- 将文件内所有的old字符串修改为new字符串。
:r 文件名 --- 将新的文件的内容读取到光标所在行的下一行,也可输入绝对路径。
注:在替换命令末尾加上c,将对每个替换动作进行确定提问。
echo 内容 --- 将内容输出。
注:内容中不能有空格。
echo $变量 --- 提取变量的实际值。
‘’ --- 强引用,里面的变量不会被提取,而是直接输出。
如:
[root@Cxkun ~]# echo ‘$SHELL’
$SHELL
“” --- 比较人性化,能识别变量等等。
如:
[root@Cxkun ~]# echo ”$SHELL“
/bin/bash
注:单引号和双引号不能嵌套,最多两个一起使用一次。
在Linux中更改变量值直接更改即可。
如:更改变量kun --- kun=a。即可。
管道符 --- |
前面命令的输出作为后面命令的输入。
echo 123456 |passwd --stdin root --- 将root用户的密码改为123456。
注:--stdin表示标准输入。
读取标准输入的数据,并将其内容输出到文件的同时输出到屏幕(即想把输出保存到文件中,又想在屏幕上看到内容)的时候可以用到tee指令。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
输出指令 |tee 文件名 --- 即输出前面的输出指令,又将内容保存到后面的文件名所指的文件中,如果文件不存在,则创建该文件。
注:如果第tee指令所指文件存在,且里面存在内容,则内容会被覆盖。
输出指令 |tee -a 文件名 --- 不会覆盖文件内容了,而是在文件的最后一行添加内容。