首先,建立空文件一样会在磁盘上占空间。文件=内容+属性,操作文件要么对内容操作,要么对属性操作。
常用选项:
ls:默认显示当前目录内容
ls -l:显示文件名与详细信息(默认当前目录,也可以指定)
ls -a:显示所有文件(包括隐藏文件)
ls -al 或 ls -la:显示所有文件的详细信息
注意:

ls -a会显示.和..两个隐藏文件
.代表当前目录
..代表上级目录
ls -l:查看目录本身信息
显示用户所在的当前目录。
注意:Windows的路径由\隔开,而Linux由/隔开。
Linux文件结构为一棵从根目录开始的多叉树:
路径类型:
常用用法:
cd ~:转到用户的家目录
/home/......
/root
cd -:回到上一次的目录
Windows桌面本质:家目录下的桌面文件夹。哪个用户登录就将那个用户对应的文件夹放到屏幕上。
创建文件(不可创建目录)。
相关指令:
stat:查看文件时间信息

创建目录。
选项:
mkdir -p:创建一串路径(包括中间不存在的目录)
查看方式:
tree:输出"图形化"目录结构
tree a*:输出a开头的目录结构
相关指令:
which:查看指令在系统中的安装位置(指令的本质为可执行文件)
alias:给指令取别名(暂时别名,关机失效)
alias a='ls -la'(记得加引号)
ll即是ls -l的别名
nano:简易文本编辑器
yum install nano
rmdir:默认删除空目录
rm:删除文件
rm -r:删除目录及其内容
rm -f:强制删除,不提示
*:通配符,表示当前目录下所有文件
rm -rf *:删除当前目录下所有文件(谨慎使用!)
查看指令的帮助文档。
man man:查看man指令本身的用法
基本用法:
cp test.cpp a:将test.cpp拷贝到a目录里
cp test.cpp a/test2.cpp:将test.cpp拷贝到a目录里,并改名为test2.cpp
目录拷贝:
cp -r:拷贝目录
cp -r a nn:将a目录拷贝并命名为nn

在Linux中,一切皆文件,包括键盘、显示器等。使用时文件必须被打开,printf、cin等本质为对文件操作,这些必备的文件通常系统默认打开(有stdin、stdout、stderr)。
echo "内容" > 文件:将文字输入到文件中
>特点:后续文件不存在会新建,先清空再写入
> 文件:直接清空文件
echo "hello" >> test.txt:追加重定向,不会清空原内容
cat:查看文件内容
输入重定向:
cat < 文件:将文件内容输入到屏幕
cat直接回车:命令行阻塞,从键盘直接读取内容到屏幕显示(Ctrl+C结束)
用多终端实验验证Linux屏幕本质上是文件:
ls /dev/pts # 查看当前终端数量
echo "hello world" > /dev/pts/0 # 向自己的终端输出
echo "hello world" > /dev/pts/1 # 向另一个终端输出结论:Linux的显示器等本质上是文件,且系统可以说是由文件构成的。
Linux文件类型不看后缀,要看ll命令第一列:
-:普通文件
d:目录文件
c:字符设备文件
b:块设备文件
l:链接文件
p:管道文件
虽然-文件统称为普通文件,但细分为代码、文本等。如果直接编译txt文件是编不过去的。

剪切或文件重命名:
cat:将文件内容顺序打印出来
tac:倒序打印文件内容
应用:查看系统日志。系统的日志可能会有几万甚至几十万行,如果我们要查看最开始的日志,可以用tac倒序打印。
more:仅打印满屏幕,按回车继续打印
less:可以上下翻动查看内容
打印指定头/尾行数。
案例:要打印文件的第100到110行:

方法一:使用临时文件
head -110 file > tmp1
tail -10 tmp1 > tmp2
cat tmp2方法二:使用管道
cat /var/log/messages | head -110 | tail -10 | tac步骤解析:
cat /var/log/messages:读取路径的文件到管道
| head -110:读取管道前110行
| tail -10:读取后10行(即第100-110行)
| tac:反向输出
date:显示当前时间
date +%s:显示时间戳
时间戳用处:
转换标准时间:
date -d @1766151715cal指令:
cal 2022:打印2022年日历
在树形目录里查找文件。
与which区别:which只在指定目录查找。
常用用法:
find -name 文件名:查找对应名称的文件
find ~ -name *.cpp:在~目录(家目录)找.cpp结尾的文件
过滤信息,用于查找日志、进程等。
cat /var/log/messages | grep "Reached" # 查找日志里包含Reached的行选项:
-i:忽略大小写
-v:打印不匹配的行
复杂示例:
cat /var/log/messages | grep "Reached" -vi | tail -10
# 打印日志里没有Reached的记录的后10条简易计算器。
echo "1+3*4" | bc # 计算字符串的结果查询系统相关信息。
选项:
-a:打印全部信息
-r:内核版本+芯片架构
压缩:
zip -r 压缩完文件名 要压缩的文件
# 示例:zip -r 25-12-21.zip 25-12-21解压:
unzip 25-12-21.zip -d /root # 解压到指定目录压缩:
tar czf 1.tar 25-12-21 # 将25-12-21压缩成1.tar解压:
tar xzf 1.tar -C /root # 将1.tar解压到/root(注意C要大写)Linux包括系统内核和外壳程序(命令行)。
Shell可以简单理解为命令行解释器。
外壳程序作用: