linux基础--shell命令

文件和目录操作

ls 显示内容

ls #列出当前目录内容
ls -l #显示详细信息(权限、大小、修改时间..)
ls -a #显示隐藏文件(以"."开头的文件)
ls -al #(常用)

cd 切换目录

cd  #切换到主目录 也可以写成 cd ~
cd /path #跳转到指定目录
cd .. #返回上一级

touch 创建文件

touch filename #创建一个名为 filename 的空文件
touch file1.txt file2.txt file3.txt # 同时创建多个文件
touch file{1..10}.txt # 创建 file1.txt 到 file10.txt
touch existingfile.txt # 如果文件已经存在,touch 会更新文件的访问时间和修改时间。

pwd 显示目录

pwd  #显示当前工作目录

cp 复制

cp file1.txt file2.txt #如果file2不存在则创建,如果存在,则覆盖原内容
cp -ri dir1/ dir2/ #递归复制,-r表示递归,-i表示交互,如果出现重名文件则让用户选择是否覆盖。

mv 移动

mv clod.txt new.txtx #重命名文件
mv -i 1.txt /path/to/dir -i # 移动文件 -i交互
mv -ri dir1/ dir2/  #移动文件夹 -r递归 -i交互

rm 删除

rm file.txt #删除文件,不会提示确认,如果文件不存在会报错
rm -i file.txt # 删除文件+询问
rm -r dirextory/ #递归删除,谨慎使用
rm -f file.txt #强制删除文件,不会提示确认,如果文件不存在不会报错,会静默忽略。

mkdir 创建文件夹

mkdir  new_directory # 创建新目录
rmdir empty_directory # 删除空目录

文件查看与编辑

cat

cat file.txt #显示文件内容 cat命令是整个文件的内容从上到下显示在屏幕上
cat file1.txt file2.txt # 拼接多个文件并显示

在这里插入图片描述

more 分页查看

more file.txt # 分页显示文件内容(适用于长文件)

less 分页查看

less file.txt # 分页显示文件内容(比more更强大,支持向前翻页等功能)

head

head file.txt # 默认显示文件前10行
head -n 20 file.txt # 显示文件前20行

tail

tail file.txt # 默认显示文件最后10行
tail -n 20 file.txt # 显示文件最后20行
tail -f file.txt # 实时查看文件内容(例如日志文件)

grep 搜索内容

grep "pattern" filename # 在文件 filename 中搜索包含字符串 pattern 的行,并输出这些行
grep "warning" file1.txt file2.txt file3.txt # 分别在 file1.txt、file2.txt 和 file3.txt 中搜索包含字符串 warning 的行
grep "[0-9]" filename # 这条命令会输出 data.txt 中所有包含数字的行
grep -r "pattern" directory/ # 在指定目录及其子目录中递归搜索匹配的行
grep -n "pattern" filename # 这条命令会输出 logfile.txt 中所有包含字符串 error 的行,并显示每行的行号
grep -v "pattern" filename # 输出不包含指定模式的行

vim 编辑文件

vim file.txt #使用vim编辑文件
vim基础操作

三种模式

  • 命令模式:默认模式,输入命令。
  • 插入模式:输入文本,按 i 进入,Esc 返回命令模式。
  • 底行模式:执行特殊命令,按 : 进入。

保存和退出

  • 保存并退出:Esc:wq → 回车
  • 不保存退出:Esc:q! → 回车

重定向

( > 和 >> )输出重定向

>:将命令的输出重定向到文件中,如果文件已存在,则覆盖文件内容  
command > file.txt # 将字符串 Hello, world! 写入到 output.txt 文件中,如果文件已存在,则覆盖原有内容
>>:将命令的输出追加到文件中,如果文件已存在,则在文件末尾添加内容 
echo "Hello again!" >> output.txt # 将字符串 Hello again! 追加到 output.txt 文件的末尾,不会覆盖原有内容

( < )输入重定向

<:将文件的内容作为命令的输入
 sort < input.txt # 将 input.txt 文件的内容作为 sort 命令的输入,并将排序结果输出到屏幕

( | ) 管道

虽然管道不是严格意义上的重定向,但它与重定向密切相关。管道的作用是将一个命令的输出作为另一个命令的输入

command1 | command2
ps aux | grep "ssh"
# 将 ps aux 命令的输出作为 grep 命令的输入,从而过滤出包含 ssh 的进程信息。

文件权限与所有权 3个

chmod 改变文件或目录的权限

chmod 755 file.txt #设置RWX(r读=4,w写=2,x执行=1)
chmod u+x file.txt #给文件所有者添加执行权限
chmod g-w file.txt #移除文件所在组的写权限

chown 改变文件或目录的所有者或用户组

一个文件只能有一个所有者、一个所有组

chown #改变文件或目录的所有者或用户组,一个文件只能有一个所有者、一个所有组
chown user file.txt #改变文件所有者
chown :group file.txt #改变文件所有组
chown user:group file.txt #改变文件所有者和用户组(这两个操作是独立的,不需要所有者必须是所属组的成员,但是一般会有从属关系)
chown -R user:group directory/ #递归改变目录及其内容的所有者 

chgrp 改变文件或目录的用户组

chgrp group file.txt #改变文件的用户组

进程管理

ps 显示当前系统的进程

ps # 显示当前系统的进程
ps aux # 查看所有进程,包括其他用户的(适合快速查看进程的状态,输出格式更直观)
ps -ef # 查看所有进程,包括其他用户的(适合需要查看进程的完整命令行参数和父进程ID等详细信息的场景)

top 显示当前系统资源使用情况

top # 显示当前系统资源使用情况

kill 结束进程

kill PID # 结束指定进程 (ps、top等命令都可以展示出进程的PID)
kill -9 PID # 强制结束进程

系统信息与监控

df 查看磁盘空间

df # 查看磁盘空间
df -h # 以人类可读的格式显示(如GB)

du 显示当前目录的大小

du # 显示当前目录的大小
du -sh drectory # 显示指定目录的总大小 
# -s:汇总指定目录的总大小,不显示子目录的详细信息;
# -h:以易读的格式显示大小(如 KB、MB、GB)。

free 查看内存使用情况

free # 查看内存使用情况
free -h 

uptime 查看时间

uptime # 查看系统的运行时间、当前时间、系统负载等

hostname 主机名

hostname # 显示当前主机名
sudo hostname newhostname # 临时设置主机名
hostnamectl # 查看系统的主机名以及相关信息
sudo hostnamectl set-hostname newhostname # 修改主机名

sudo 是一个非常重要的命令,用于在 LinuxUnix 系统中以超级用户(root)或其他用户的身份执行命令。它的全称是 “superuser
do
”,意思是“以超级用户的身份执行某个操作”。使用 sudo,普通用户可以执行需要管理员权限的命令,而无需切换到 root 用户。

网络管理与诊断 6个

ping

ping google.com # 向指定网站发送ping请求
### ip
```powershell
ip # 查看和配置网络接口,比ifconfig更强大
ip addr # 查看网络层配置
ip link # 查看链路层配置
ip route # 查看路由表
### curl 
```powershell
curl #命令行工具,用于与URL交互
curl http://baidu.com #获取网页内容
curl -O http//xxxx.txt #下载文件
#-o:将输出保存到指定文件。
#-O:下载文件时,使用远程文件名保存。
#-d:发送 POST 数据。
#-F:发送表单数据。
#-H:添加自定义 HTTP 头。
#-u:提供用户名和密码,用于 HTTP 基本认证。
#-L:跟随重定向。
#-v:显示详细的请求和响应信息。

打包与压缩 3个

tar 打包

保留文件权限和属性

# tar:用于创建、提取归档文件
tar -cvf archive.tar file1.txt file2.txt directory/#创建归档
tar -xvf a.tar  #解压归档到当前目录
tar -czvf a.tar dirctort/ #创建归档
tar -xzvf a.tar  #解压归档到当前目录
#-c:创建一个新的归档文件
#-v:在归档过程中显示详细信息(verbose mode)
#-f:指定归档文件的名称
#-x:解压归档文件
#-z:使用 gzip 压缩归档文件
#-j:使用 bzip2 压缩归档文件
#-J:使用 xz 压缩归档文件
#-t:列出归档文件中的内容,不进行解压
#-C:指定解压到指定目录。

配合压缩算法

tar -czvf backup.tar.gz /home/user/documents  # 使用 gzip 压缩
tar -cjvf backup.tar.bz2 /home/user/documents  # 使用 bzip2 压缩
tar -cJvf backup.tar.xz /home/user/documents  # 使用 xz 压缩

zip 压缩

不保留文件权限和属性

zip a.zip file1.txt fil2.txt #创建zip文件
unzip a.zip 解压zip文件

文件查找

find 查找文件或目录

find /path -name "file.txt" #从/path目录开始查找名为file.txt的文件
find . -type f -name "*.txt" #从当前目录及其所有子目录开始查找所有.txt的文件
# -type f 只查找文件

locate

#locate:快速查找文件(基于数据库,需要先更新数据库)
locate file.txt #查找file.txt文件

which

# which:查找命令的路径,需要该路径已经在环境变量中了
which python3

补充

通配符(* ?[] {})

* 多字符匹配 eg:rm file*.tmp #删除当前目录下所有以 file 开头,扩展名为 .tmp 的文件。
? 单字符匹配
[ ] 匹配括号内指定的任意单个字符 ls [a-z]*.log #列出当前目录下所有以小写字母开头,扩展名为 .log 的文件。
# [az]匹配a开头或者z开头,[a-z]匹配a-z之间的任意字符
[! ] 匹配不在方括号内的字符
{ } 用于生成多个指定的模式 eg:touch file{a,b,c}.txt #生成 filea.txt、fileb.txt 和 filec.txt
{ } 生成多个值,扩展文件名或字符串
[ ] 匹配单个字符,用于条件表达式

链接

ln 硬链接

硬链接是指向文件系统中 inode(索引节点) 的直接链接。它与原始文件共享同一个
inode,因此对硬链接的修改会直接反映到原始文件上。
硬链接和原始文件是平等的,删除原始文件后,硬链接仍然可以访问文件内容。只有当所有指向文件数据的硬链接都被删除后,文件数据才会被真正删除。
硬链接不能跨文件系统

ln [原始文件] [硬链接名]
ln file.txt link.txt # 在当前目录下创建一个名为 link.txt 的硬链接,指向 file.txt
ln file1.txt link1.txt link2.txt # 创建多个硬链接,link1.txt 和 link2.txt 都指向 file1.txt
ln -sf /path/to/newfile.txt existinglink.txt

ln -s 软链接

软链接类似于 Windows 中的快捷方式,它是一个独立的文件,指向另一个文件或目录
软链接可以跨文件系统

ln -s [目标文件或目录] [软链接名]
eg:ln -s /path/to/file.txt link.txt # 在当前目录下创建一个名为 link.txt 的软链接,指向 /path/to/file.txt
ls -l # 可以使用 ls -l 命令查看链接的类型
rm link.txt # 删除链接

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值