Linux常用命令

news/发布时间2024/5/15 22:19:43

Linux常用命令

一、Linux文件系统

  • 文件系统是操作系统用于明确存储设备(如磁盘)上的文件的方法和数据结构;即在存储设备上组织文件的方法。

  • 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

  • 文件系统的结构通常叫做目录树结构,从/根目录开始。

  • Linux号称“万物皆文件”,意味着针对Linux的操作,大多数时间是在针对Linux文件系统操作。

image-20240310013948840

  • 文件系统都是从/根目录开始的,windows文件系统会以盘符来区分不同文件系统;

  • 目录树中节点分为两个种类:目录(directory)、文件(file);

  • 从根目录开始,路径具有唯一性

  • 只有在目录下才可以继续创建下一级目录,换句话说目录树到文件终止蔓延。

特殊符号

  • . 目录或者文件以.开始表示隐藏文件

  • .. 当前目录的上一级目录

  • ~ 当前用户的home目录,比如root用户home目录是/root

  • / 根目录

# 进入当前目录下的a
cd ./a
# 进入根目录下的a
cd /a
# 进入当前目录上一级下的a
cd ../a
# 进入当前操作用户home目录下的a
cd ~/a
# 进入当前目录下的a  a是隐藏的
cd .a

混淆概念

  • 当前路径:也叫当前工作目录,当下用户所属的位置;

  • 相对路径:相对当前工作目录开始的路径,会随当前路径变化而变化;

  • 绝对路径:不管工作目录在哪,绝对路径都是从/根目录开始,唯一不重复。

image-20240310014852190

二、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作进一步的处理

image-20240310033358625

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 

image-20240310042945555

  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/25357430.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

远程办公、企业内网服务器的Code-Server上如何配置使用CodeGeeX插件

很多小伙伴都会在工作中使用code-server,比如说远程办公,当你需要在家访问你的工作环境,亦或者是你们公司的Docker是放入服务器中。code-server 无疑是最好的选择,它可以让你通过互联网安全地连接到远程服务器上的开发环境并且使用VS Code。 这也符合code-server的初衷——…

Jmeter —— jmeter设置HTTP信息头管理器模拟请求头

HTTP信息头管理器 HTTP信息头管理器是在有需要模拟请求头部的时候进行设置的,添加方式 是 右击线程组 -- 配置元件 -- HTTP信息头管理器​可以通过抓包工具或者F12获取http请求的header头部信息;如下图:​复制并点击jmeter中的从剪贴板添加,就会自动添加到http信息头管理器…

前端提交数据后http状态码400

报错如下:分析原因: 前端Cookie使用过多,储存数据过大解决方案: 方案一: Nginx配置文件nginx.conf中 把请求头内存调大 client_header_buffer_size 32k;large_client_header_buffers 4 32k; 方案二: 前端删除部分Cookie,用H5中的本地储存localStorage代替<!DOCTYPE h…

河北稳控科技振弦采集仪在岩土工程监测中的特点与优势分析

振弦采集仪在岩土工程监测中的特点与优势分析 河北稳控科技振弦采集仪是一种用来监测岩土工程中振动信号的设备,其特点和优势主要包括以下几个方面: 1. 高精度测量:振弦采集仪可以实时采集振弦传感器的振动信号,并经过精确的分析和处理,能够提供高精度的测量结果。这对于…

三种方式使用纯 CSS 实现星级评分

本文介绍三种使用纯 CSS 实现星级评分的方式。每种都值得细品一番~五角星取自 Element Plus 的 svg 资源<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" style=""><pathfill="currentColor"d="M283.…

关于java.net.URLEncoder.encode()将空格转成+问题

1.情景展示如上图所示,当我们使用jdk自带的类对数据进行URL编码时,空格会被转成+。 这其实是不对的,我们知道: 空格对应url编码是:%20,所以,jdk自带的URLEncoder将空格转成+是不对的。 如何解决? 2.解决方案 既然jdk自带的URLEncoder有问题,我们就有两种解决办法。 一…