Linux常用命令
Linux常用命令
一、Linux文件系统
-
文件系统是操作系统用于明确存储设备(如磁盘)上的文件的方法和数据结构;即在存储设备上组织文件的方法。
-
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
-
文件系统的结构通常叫做目录树结构,从/根目录开始。
-
Linux号称“万物皆文件”,意味着针对Linux的操作,大多数时间是在针对Linux文件系统操作。
-
文件系统都是从/根目录开始的,windows文件系统会以盘符来区分不同文件系统;
-
目录树中节点分为两个种类:目录(directory)、文件(file);
-
从根目录开始,路径具有唯一性;
-
只有在目录下才可以继续创建下一级目录,换句话说目录树到文件终止蔓延。
特殊符号
-
. 目录或者文件以.开始表示隐藏文件
-
.. 当前目录的上一级目录
-
~ 当前用户的home目录,比如root用户home目录是/root
-
/ 根目录
# 进入当前目录下的a
cd ./a
# 进入根目录下的a
cd /a
# 进入当前目录上一级下的a
cd ../a
# 进入当前操作用户home目录下的a
cd ~/a
# 进入当前目录下的a a是隐藏的
cd .a
混淆概念
-
当前路径:也叫当前工作目录,当下用户所属的位置;
-
相对路径:相对当前工作目录开始的路径,会随当前路径变化而变化;
-
绝对路径:不管工作目录在哪,绝对路径都是从/根目录开始,唯一不重复。
二、Linux常见的操作命令
便捷使用:
- Tab可以使用自动补全和提示
- history命令可以显示历史执行记录,或者使用方向键来切换前后执行过的命令
文件系统相关的命令
显示目录内容:
ls(list files)命令:用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
- -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 注意 ls -l = ll
- -a 显示所有文件及目录 (.开头的隐藏文件也会列出)
ls path
ls -a path # 查看所有文件 包括隐藏文件
ls -l =ll # 查看文件详细信息 包括权限 类型 时间 大小等
ll -h path # 表示以人性化的显示内容
ll * # *通配符表示任意字符 ?表示有且只有一个字符
切换目录:
cd(change directory)命令:用于切换当前工作目录。切换的路径可为绝对路径或相对路径。若路径省略,则变换至使用者的home目录 。
-
~ 也表示为home目录的意思
-
. 则是表示目前所在的目录
-
.. 则表示目前目录位置的上一层目录
pwd #查看自己当前所在目录
cd path #注意自己写的是相对还是绝对的 还可以结合特殊符号使用
cd ./
cd /
cd ../
cd ~
创建、删除:
mkdir(make directory)命令:用于创建目录。
-p 确保父目录名称存在,不存在的就建一个。
rm(remove)命令:用于删除一个文件或者目录。
-f 强制直接删除,无需用户确认。
-r 将目录及以下所有递归逐一删除。
[root@node1 ~]# mkdir /a/b/c
mkdir: cannot create directory ‘/a/b/c’: No such file or directory
[root@node1 ~]# mkdir -p /a/b/c
[root@node1 ~]# rm -rf /a/b/c
[root@node1 ~]# rm -rf /a
-f #强制删除 不给与提示
-r #递归删除 针对文件夹
-rf #杀伤力极大 问问自己在干什么
坐牢眼:rm -rf /*
复制、移动:
cp(copy file)命令:用于复制文件或目录。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
cp -r 1.txt aaa/ # -r 表示递归复制
# 表示将1.txt文件复制到 aaa文件夹中
mv(move file)命令:用来为文件或目录改名、或将文件或目录移入其它位置。
cp [options] source... directory
mv source_file(文件) dest_file(文件) #将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录) #将文件 source_file 移动到目标目录 dest_directory中
mv source_directory(目录) dest_directory(目录) #目录名 dest_directory 已存在,将source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件) #出错
文件内容查看:
cat(concatenate)命令:用于连接文件并打印到标准输出设备如console控制台上。适合小文件内容查看。
more 命令:类似cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,翻页结束自动退出。适合大文件查看。
- 按space键翻下一页,按b往回(back)上一页
less 命令:与more类似,less可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。结束不会自动退出。
-
按space键翻下一页,按enter键翻下一行
-
按b向上翻一页
-
按q退出
head 命令:用于查看文件的开头部分的内容。
- -n 用于显示行数,默认为10,即显示 10 行的内容。
tail 命令:用于查看文件的结尾部分的内容。
-
-n 用于显示行数,默认为10,即显示 10 行的内容。
-
-f 用于实时显示文件动态追加的内容。会把文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 文件有更新,就可以看到最新的文件内容。
其他:
| 管道命令:将前一个命令执行的结果作为内容交给下一个命令处理。
- 命令1|命令2 可以将命令1的结果通过命令2作进一步的处理
echo 命令:用于字符串的输出,属于shell命令。
- echo string
[root@node1 ~]# ls
1.txt anaconda-ks.cfg hello lrzsz-0.12.20.tar.gz test test.file
[root@node1 ~]# ls | grep ^t
test
test.file
#相当于print 将内容输出console控制台
[root@node1 test]# echo 111
111
[root@node1 test]# echo "hello "
hello
> 输出重定向(覆盖)命令
- command > file 执行command然后将输出的内容存入file,file内已经存在的内容将被新内容替代。
echo "hello" > 1.txt
# 覆盖当前文件夹下1.txt中的内容
>> 输出重定向(追加)命令
command >> file 执行command然后将输出的内容存入file,新内容追加在文件末尾。
echo "hello" >> 1.txt
# 向1.txt文件中追加内容
命令1 && 命令2 命令1执行成功才执行命令2
命令1 || 命令2 命令1执行失败才执行命令2
三、搜索相关的命令
find搜索:
find 命令:用来在指定目录下查找文件。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find <指定目录> <指定条件> <指定动作>
默认是搜索当前目录下,所有文件,结果显示在屏幕上
find . -name "*.log" -ls 在当前目录查找以.log 结尾的文件, 并显示详细信息。
find /root/ -perm 777 查找/root/目录下权限为 777 的文件
find . -type f -name "*.log" 查找当目录,以.log 结尾的普通文件
find . -type d | sort 查找当前所有目录并排序
find . -size +100M 查找当前目录大于 100M 的文件
grep搜索:
grep 命令:用于查找文件里符合条件的字符串。通常配合|管道对命令执行的结果进行搜索。
ps -ef | grep sshd 查找指定 ssh 服务进程
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身
ps -ef | grep sshd -c 查找指定进程个数
which搜索:
which命令:用于查找文件。会在环境变量$PATH设置的目录里查找符合条件的文件。
可用于快速定位已安装并配置环境变量的软件目录。
[root@node1 ~]# which java
/export/server/jdk1.8.0_65/bin/java
[root@node1 ~]# which hadoop
/export/server/hadoop-3.3.0/bin/hadoop
四、软\硬 链接
-
ln(英文全拼:link files)命令:为某一个文件在另外一个位置建立一个同步的链接。可以将链接视为文件的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。
-
硬链接的意思是一个文件可以有多个名称;而软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置,类似于windows中的快捷方式。
-
软、硬链接创建的区别就是有无 -s参数:
- ln -s 目标文件的绝对路径 软链接名(快捷方式)
- ln 目标文件的绝对路径 硬链接名(可以保护数据)
# 目录/root/aaa/bbb/下的1.txt文件 改名为666.txt文件
ln -s /root/aaa/bbb/1.txt 666.txt
- l开头 代表连接
- -r开头 代表文件
- d 开头代表文件夹
五、解压缩命令
打包、解包
tar(tape archive )命令:常用于备份文件。是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
-
-c 或--create 建立新的备份文件。
-
-x 或--extract或--get 从备份文件中还原文件。
-
-v 或--verbose 显示指令执行过程。
-
-f <备份文件>或--file=<备份文件> 指定备份文件。
# 将1.txt与2.txt文件打包到ange中,但是并没有压缩
tar -cvf ange.tar 1.txt 2.txt
# 将ange.tar中的1.txt文件与2.txt文件解包
tar -xvf ange.tar
# 将ange.tar中的1.txt文件与2.txt文件解包到ccc文件中
tar -xvf abge.tar -C ccc/
打包压缩、解包解压缩
在打包备份或者解包的过程中,可以通过指定压缩算法,对打包的文件进行压缩,解压的时候也需要指定相应的算法。
-
-z 或--gzip或--ungzip 通过gzip指令处理备份文件。
-
最重要的搭配:tar -zxvf xxxxx.tar.gz
# 打包压缩
[root@node1 test]# ll
-rw-r--r-- 1 root root 10240 Aug 10 19:28 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
[root@node1 test]# tar zcvf test.tar.gz 1.txt 2.txt
[root@node1 test]# tar zcvf test.tgz 1.txt 2.txt
[root@node1 test]# ll
-rw-r--r-- 1 root root 10240 Aug 10 19:28 1.txt
-rw-r--r-- 1 root root 0 Aug 10 19:27 2.txt
-rw-r--r-- 1 root root 142 Aug 10 19:35 test.tar.gz
-rw-r--r-- 1 root root 142 Aug 10 19:35 test.tgz
# 解压缩包
[root@node1 test]# tar zxvf test.tar.gz #解压到当前目录
1.txt
2.txt
[root@node1 test]# tar zxvf test.tar.gz -C /root/ #-C参数可以设定解压到指定目录
1.txt
2.txt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现