linux:shell终端操作
1 文件操作
linux的命令是在终端窗口中执行的,这些在终端中执行的命令被称之为shell命令,将多个shell命令按照一定的格式放入文本中被称之为shell脚本;
1.1 查看当前目录的文件:ls
# 格式:ls -[参数] # 作用:list,列出当前目录的所有文件,按照参数的格式; ls -l #-list:附带文件的详细信息; ls -t #-time:按照时间顺序列出,但是不会显示时间; ls -i #-inode:列出当前文件的节点信息; ls -R #-recursion:递归列出当前目录的所有文件; ls -a #-all:包括以“.”开头的隐藏文件;
1.1.1 文件信息的详细说明
d rwx r-x r-x 2 cae cae 4096 3月19 14:16 桌面 #d:表示"桌面"的文件类型为目录文件; #rwx:表示文件用户的权限;read write execute;进制表示为0b111,即0x7; #r-x:表示所在用户组其他用户的权限;read - execute;进制表示为0b101,0x6; #r-x:表示其他用户组用户的权限;read - execute;进制表示为0b101,0x6; #cae:表示文件用户; #cae:表示所在用户组; # x: 可执行权限,可以看做一个软件
1.1.2 文件类型的说明
ls -l #返回列表的第一个字符表示文件类型; #- :普通文件,一些应用程序创建的,比如文档、图片、音乐等; #d : directory 目录文件 #c : char device字符设备文件 #b : block device块设备文件 #l : link 符号连接文件,相当于 Windwos 下的快捷方式 #s : 套接字文件 #p : pipe 管道文件,主要指 FIFO 文件
1.1.3 查看文件属性
file filename #显示文件filename的文件属性;
1.2 更改当前目录
# 格式:cd [路径] # 作用:change directory,改变当前目录; cd .. #改变目录为父目录; cd ~ #改变目录为当前用户目录; cd /usr #改变目录为/usr目录;
pwd #print work directory,打印当前工作目录的绝对路径;
1.3 查找文件
find -name vim* #查找当前目录下以vim开头的文件 find -name vim* /etc/ #查找/etc/目录下以vim开头的文件
grep -r "ubuntu" /usr #递归查找/usr目录下文本内容包含"ubuntu"的文件;global regular expresstion print;
1.4 创建文件
touch test #创建文本文件test mkdir dirtest #创建文件夹dirtest
1.5 打开文件
# 格式:cat -[参数] [路径] # 作用:catenate,打开路径位置所在的文本文档 cat -n test #打开当前目录下的test文本,并对文本行数进行标号
1.6 复制文件(copy from...to...)
cp test1.c test2.c #复制test1.c的内容到test2.c中; cp *.c ../dirtest #复制当前目录下的所有.c文件到../dirtest文件夹下;
1.7 移动文件(move from...to...)
mv test1.c test2.c #将test1.c移动到test2.c,相当于重命名成test2.c; mv test.c ../dirtest #将test.c移动到../dirtest文件夹下;
1.8 删除文件
rm test #删除文本文件test rm -r dirtest #递归删除文本文件test rmdir dirtest #删除文件夹dirtest
1.9 修改文件权限
#格式: sudo chown [用户名.组名] [文件] #作用:change owner 修改文件的所属用户,所属用户组; sudo chown root.root hello #修改hello文件的用户为root,用户组为root;
#格式:sudo chmod [权限] [文件] #作用:change mode;修改文件的创建用户、所在用户组的用户、其他用户组的用户、的权限; sudo chmod 666 test #修改当前路径的test文件的权限为所有用户都可读写;
#格式:sudo [shell命令] #作用:super user do,以root用户的权限来执行命名; sudo adduser usertest #以root用户的权限来创建新的用户usertest; sudo su cae #super user do switch user ,切换root用户为cae用户; sudo -l #list , 列出当前用户可执行与不可执行的命令; sudo -h #help ,显示帮助信息;
#创建新用户时,linux会默认为新用户在/home/下创建一个用户目录,该用户只拥有当前目录的所有权限;
1.10 开关机
man cd #查看终端命令手册man,关于cd的用法部分;man [命令]:查看[命令]的使用说明 poweroff #关闭系统 reboot #重启系统 uname -rso #查看当前系统的内核信息;
1.11 连接文件:(link from...to...)
1.11.1 硬连接:hard link,具有相同inode的多个文件互为硬连接文件;文件类型不是连接文件;
#格式:ln [原文件] [硬连接文件] #作用:硬连接修改后将会同步到其他硬连接文件中,可用来作为备份文件; #特点:硬连接文件不能连接到目录,也不能连接到ubuntu之外的设备上; ln hello hello1 #为可执行文件创建一个硬连接hello1;
1.11.2 软连接:symbolic link,类似于快捷方式的连接文件,文件类型是连接文件;
#格式: ln -s [被连接文件的绝对路径] [软连接文件] #作用:创建一个快捷方式,连接到原文件; #特点:如果原文件不使用绝对路径,那么拷贝连接文件到其他目录下,连接文件会链接不到原文件; ln -s /home/cae/Program/hello hellolink #为hello文件创建了一个快捷方式hellolink; cp -d hellolink /home/cae/dirtest #如果不用-d拷贝link文件,则拷贝的将不是link文件,而是hellolink的硬连接;
1.12 退出
# ctrl+z 表示退出当前命令 # ctrl+d 表示退出git账户
2 shell脚本
将shell命令依次执行的文本文档称之为shell脚本,后缀名为.sh
#!/bin/bash #shell脚本的第一行固定如上所示,#!是固定的用法 echo "please enter one fruit : " #echo用来输出"..."字符串 read fruit #read将键盘端输入的字符串读取至后面的变量名内 echo "the fruit you enter is $fruit " #$变量名,用来输出$后面变量名的值;
ps 零散补充
绝对路径:从盘符开始直到所需文件目录的路径;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?