首页 > 系统相关 >Linux 基础知识

Linux 基础知识

时间:2024-07-09 10:33:33浏览次数:10  
标签:文件 使用 基础知识 命令 env Linux 进程 目录

Smiling & Weeping

                  ---- 站在这,难免被遗忘

 

  

 

Linux 基础命令

这一部分我会带着大家了解Linux的一些基础操作,还有使用一些工具。让大家能够在遇到问题的时候,可以自行解决,如果大家有遇到什么问题的话,也可以在这里评论,我会及时给大家回答。 因为我们使用开发机时很少使用到权限管理,所以我们就不介绍了。(后面的操作均在VScode的终端中进行)
  1. 文件管理

在 Linux 中,常见的文件管理操作包括:
  • 创建文件:可以使用 touch 命令创建空文件。
  • 创建目录:使用 mkdir 命令。
  • 目录切换:使用cd命令。
  • 显示所在目录:使用pwd命令。
  • 查看文件内容:如使用 cat 直接显示文件全部内容,moreless 可以分页查看。
  • 编辑文件:如 vivim 等编辑器。
  • 复制文件:用 cp 命令。
  • 创建文件链接:用ln命令。
  • 移动文件:通过 mv 命令。
  • 删除文件:使用 rm 命令。
  • 删除目录rmdir(只能删除空目录)或 rm -r(可删除非空目录)。
  • 查找文件:可以用 find 命令。
  • 查看文件或目录的详细信息:使用ls命令,如使用 ls -l查看目录下文件的详细信息。
  • 处理文件:进行复杂的文件操作,可以使用sed命令。
这里介绍几种我们在课程中会使用到的命令:
  1. touch

我们可以使用touch快速的创建文件,这样我们不用手动点击进行创建了。例如我们要创建一个demo.py文件:
  1. mkdir

同样的使用方法,如果要创建一个名为test的目录:
  1. cd

这个命令会是使用最多的一个命令,在使用之前需要为没有计算机基础的同学讲一下目录结构,画一张图让大家理解: 暂时无法在飞书文档外展示此内容 我们现在使用的是root目录,也是root用户的家目录~,linux操作系统中/表示根目录,根目录下有许多系统所需的目录和文件,刚才我们创建的目录就存在与root目录下,其中.表示的是当前目录,..表示的上级目录。如果我现在要进入到test目录,然后回到root目录,我们可以这样操作:
  1. pwd

我们可以使用pwd命令查看当前所在的目录:这样可以方便我们确定我们当前所在哪个目录下面。
  1. cat

cat命令可以查看文件里面的内容,更多的使用命令可以使用--help命令查看:
  • -a,--show-all等价于-vET
  • -b,--number-non空白数非空输出行,覆盖-n
  • -e, 等价于-vE
  • -E,--show-结束显示$在每一行的末尾
  • -n,--number编号所有输出行
  • -s,--crick-空白抑制重复的空输出行
  • -t等价于-vT
  • -t,--show-tabs将制表符显示为^I
  • -v,--show非打印使用^和M-表示法,LFD和TAB除外
  1. vi or vim

当我们需要编辑文件的时候可以使用vi或者vim命令,当你进入文件编辑以后,有三种模式: 暂时无法在飞书文档外展示此内容 进入编辑模式可以使用i,vim的方便之处就是可以在终端进行简单的文件修改。
  1. cp 和 ln(重点)

cp命令在后面课程中会经常用到,它是用来将一个文件或者目录复制到另一个目录下的操作,常用的使用有:
  • 复制文件:cp 源文件 目标文件
  • 复制目录:cp -r 源目录 目标目录
但是如果我们是要使用模型的话,这种操作会占用大量的磁盘空间,所以我们一般使用ln命令,这个就和windows的快捷方式一样。linux中链接分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。 所以我们一般使用软连接,它的常用的使用方法如下: ln [参数][源文件或目录][目标文件或目录] 参数如下:
  • -s:创建软链接(符号链接)也是最常用的;
  • -f:强制执行,覆盖已存在的目标文件;
  • -i:交互模式,文件存在则提示用户是否覆盖;
  • -n:把符号链接视为一般目录;
  • -v:显示详细的处理过程。
  1. mv 和 rm

mv命令和rm命令的使用方式很相似,但是mv是用来移动文件或者目录的,同时还可以进行重命名。rm命令则是用来删除文件或者目录的。 常用的使用方法如下:
  • mv 命令
常用参数:
  • -i:交互模式,覆盖前询问。
  • -f:强制覆盖。
  • -u:只在源文件比目标文件新时才进行移动。
使用示例:
  • mv file1.txt dir1/:将文件 file1.txt 移动到目录 dir1 中。
  • mv file1.txt file2.txt:将文件 file1.txt 重命名为 file2.txt
  • rm 命令
常用参数:
  • -i:交互模式,删除前询问。
  • -f:强制删除,忽略不存在的文件,不提示确认。
  • -r:递归删除目录及其内容。
使用示例:
  • rm file.txt:删除文件 file.txt
  • rm -r dir1/:递归删除目录 dir1 及其所有内容。
删除目录的命令也可以使用rmdir
  1. find

find命令是Linux系统中一个强大的文件搜索工具,它可以在指定的目录及其子目录中查找符合条件的文件或目录,并执行相应的操作。 以下是find命令的一些常见用法:
  1. 按文件名查找:使用-name选项按照文件名查找文件。例如,find /path/to/directory -name "file.txt"将在指定目录及其子目录中查找名为file.txt的文件。
  2. 按文件类型查找:使用-type选项按照文件类型查找文件。例如,find /path/to/directory -type f将查找指定目录及其子目录中的所有普通文件。
  3. 按文件大小查找:使用-size选项按照文件大小查找文件。例如,find /path/to/directory -size +100M将查找指定目录及其子目录中大于100MB的文件。
  4. 按修改时间查找:使用-mtime-atime-ctime选项按照文件的修改时间、访问时间或状态更改时间查找文件。例如,find /path/to/directory -mtime -7将查找指定目录及其子目录中在7天内修改过的文件。
  5. 按文件权限查找:使用-perm选项按照文件权限查找文件。例如,find /path/to/directory -perm 755将查找指定目录及其子目录中权限为755的文件。
  6. 按用户或组查找:使用-user-group选项按照文件的所有者或所属组查找文件。例如,find /path/to/directory -user username将查找指定目录及其子目录中属于用户username的文件。
  7. 执行操作:使用-exec选项可以对找到的文件执行相应的操作。例如,find /path/to/directory -name "*.txt" -exec rm {} \;将删除找到的所有以.txt结尾的文件。
  1. ls

ls命令可以用来列出目录的内容以及详细信息。 常用参数及使用方法如下:
  • -a:显示所有文件和目录,包括隐藏文件(以.开头的文件或目录)。
  • -l:以长格式显示详细信息,包括文件权限、所有者、大小、修改时间等。
  • -h:与-l结合使用,以人类可读的方式显示文件大小(如KMG等)。
  • -R:递归列出子目录的内容。
  • -t:按文件修改时间排序显示。、
  1. sed

sed命令是一种流编辑器,主要用于文本处理,在处理复杂的文件操作时经常用到,在后续的课程中会使用到,sed命令常用参数及使用示例如下:
  • 参数说明:
    • -e<script>--expression=<script>:直接在命令行中指定脚本进行文本处理。
    • -f<script文件>--file=<script文件>:从指定的脚本文件中读取脚本进行文本处理。
    • -n--quiet--silent:仅打印经过脚本处理后的输出结果,不打印未匹配的行。
  • 动作说明:
    • a:在当前行的下一行添加指定的文本字符串。
    • c:用指定的文本字符串替换指定范围内的行。
    • d:删除指定的行。
    • i:在当前行的上一行添加指定的文本字符串。
    • p:打印经过选择的行。通常与 -n 参数一起使用,只打印匹配的行。
    • s:使用正则表达式进行文本替换。例如,s/old/new/g 将所有 "InternLM" 替换为 "InternLM yyds"。
  • 示例:
在示例中使用了echo命令,这和python中的print一样,用来打印内容,这里使用管道符>将InternLM打印到file文件中,常用的管道符还有<|,比如我们可以使用grep命令来查看python中安装的包含os字段的包: grep是一个强大的文本搜索工具。常用参数如下:
  • -i:忽略大小写进行搜索。
  • -v:反转匹配,即显示不匹配的行。
  • -n:显示行号。
  • -c:统计匹配的行数。
  1. 进程管理

进程管理命令是进行系统监控和进程管理时的重要工具,常用的进程管理命令有以下几种:
  • ps:查看正在运行的进程
  • top:动态显示正在运行的进程
  • pstree:树状查看正在运行的进程
  • pgrep:用于查找进程
  • nice:更改进程的优先级
  • jobs:显示进程的相关信息
  • bg 和 fg:将进程调入后台
  • kill:杀死进程
在开发机中还有一条特殊的命令nvidia-smi,它是 NVIDIA 系统管理接口(NVIDIA System Management Interface)的命令行工具,用于监控和管理 NVIDIA GPU 设备。它提供了一种快速查看 GPU 状态、使用情况、温度、内存使用情况、电源使用情况以及运行在 GPU 上的进程等信息的方法。 下面是关于各个命令使用示例:
  • ps:列出当前系统中的进程。使用不同的选项可以显示不同的进程信息,例如:
    ps aux  # 显示系统所有进程的详细信息
  • top:动态显示系统中进程的状态。它会实时更新进程列表,显示CPU和内存使用率最高的进程。
    top  # 启动top命令,动态显示进程信息
  • pstree:以树状图的形式显示当前运行的进程及其父子关系。
    pstree  # 显示进程树
  • pgrep:查找匹配条件的进程。可以根据进程名、用户等条件查找进程。
    pgrep -u username  # 查找特定用户的所有进程
  • nice:更改进程的优先级。nice 值越低,进程优先级越高。
    nice -n 10 long-running-command  # 以较低优先级运行一个长时间运行的命令
  • jobs:显示当前终端会话中的作业列表,包括后台运行的进程。
    jobs  # 列出当前会话的后台作业
  • bgfgbg 将挂起的进程放到后台运行,fg 将后台进程调回前台运行。
    bg  # 将最近一个挂起的作业放到后台运行
    fg  # 将后台作业调到前台运行
  • kill:发送信号到指定的进程,通常用于杀死进程。
    kill PID  # 杀死指定的进程ID
      注意,kill 命令默认发送 SIGTERM 信号,如果进程没有响应,可以使用-9使用SIGKILL 信号强制杀死进程:
    kill -9 PID  # 强制杀死进程    
SIGTERM(Signal Termination)信号是Unix和类Unix操作系统中用于请求进程终止的标准信号。当系统或用户想要优雅地关闭一个进程时,通常会发送这个信号。与SIGKILL信号不同,SIGTERM信号可以被进程捕获并处理,从而允许进程在退出前进行清理工作。(来源于网络)
以下是 nvidia-smi 命令的一些基本命令用法:
  • 显示 GPU 状态的摘要信息:
    nvidia-smi
  • 显示详细的 GPU 状态信息:
    nvidia-smi -l 1
      这个命令会每1秒更新一次状态信息。
  • 显示 GPU 的使用历史:
    nvidia-smi -h
  • 列出所有 GPU 并显示它们的 PID 和进程名称:
    nvidia-smi pmon
  • 强制结束指定的 GPU 进程:
    nvidia-smi --id=0 --ex_pid=12345
      这会强制结束 GPU ID 为 0 上的 PID 为 12345 的进程。
  • 设置 GPU 性能模式:
#!/bin/bash

# 定义导出环境的函数
export_env() {
    local env_name=$1
    echo "正在导出环境: $env_name"
    # 导出环境到当前目录下的env_name.yml文件
    conda env export -n "$env_name" > "$env_name.yml"
    echo "环境导出完成。"
}

# 定义还原环境的函数
restore_env() {
    local env_name=$1
    echo "正在还原环境: $env_name"
    # 从当前目录下的env_name.yml文件还原环境
    conda env create -n "$env_name" -f "$env_name.yml"
    echo "环境还原完成。"
}

# 检查是否有足够的参数
if [ $# -ne 2 ]; then
    echo "使用方法: $0 <操作> <环境名>"
    echo "操作可以是 'export' 或 'restore'"
    exit 1
fi

# 根据参数执行操作
case "$1" in
    export)
        export_env "$2"
        ;;
    restore)
        restore_env "$2"
        ;;
    *)
        echo "未知操作: $1"
        exit 1
        ;;
esac
当我们完成Shell脚本的创建以后我们需要为脚本赋予权限,可以使用命令:chmod +x test.sh ,然后输入./test.sh restore xtuner0.1.17并按下回车就可以还原虚拟环境了。 不过这种跟直接使用没什么太大区别,如果将这种操作与开发机中的studio-conda命令结合起来会非常方便,不过由于复制环境的方法不太一样。所以如果要实现需要对/share/install_conda_env.sh文件的逻辑进行修改。 好了,以上就是我们本关卡的全部内容了,希望上面的内容对大家后面学习有帮助,如果大家想要学习更多linux的相关知识,可以看我博客文章,虽然说不会linux对我们学习大模型没有太大影响,但是linux如果学习的很好,会让你在学习大模型的路上非常顺畅的。最后大家不要忘了完成我们前面设置的关卡呦! 博客链接:linux

 

标签:文件,使用,基础知识,命令,env,Linux,进程,目录
From: https://www.cnblogs.com/smiling-weeping-zhr/p/18291224

相关文章

  • linux里面的常用命令4
    1.链接文件:暂时理解为快捷方式--link ln-makelinksbetweenfiles -s,--symbolic 创建符号链接(软链接)soft   makesymboliclinksinsteadofhardlinksln-s hunan xiang#hunan为源文件名xiang为链接文件名ln-s guangdong yue#guangdong......
  • Linux系统各版本系列网卡配置静态IP
    一、centos&redhat系列1.1centos7系统编辑网卡配置文件cd/etc/sysconfig/network-scriptsviifcfg-ens33将以下内容写入文件后保存DEVICE=ens33BOOTPROTO=staticONBOOT=yesUSERCTL=noTYPE=EthernetIPADDR=14.81.33.2NETMASK=255.255.255.0GATEWAY=14.81.33.254......
  • linux命令语法格式(非常详细)零基础入门到精通,收藏这一篇就够了
    一、命令的一般格式command[option]…[argument]…command[options][arguments]具体说明:1、command:表示命令的名称,如ls2、option:定义命令的执行特性,可以有长短两种选项:长选项:用–引导,后面跟完整的单词,如--help短选项:用-引导,后面跟单个的字符,如-a(1)多......
  • 腾讯云篇7、手动搭建 WordPress 个人站点(Linux)
    操作场景WordPress是一款使用PHP语言开发的博客平台,您可使用通过WordPress搭建属于个人的博客平台。本文以CentOS7.6操作系统的腾讯云云服务器为例,手动搭建WordPress个人站点。示例软件版本本文搭建的WordPress个人站点组成版本及说明如下:Linux:Linux操作系统,......
  • Linux系统运维命令:查看http的并发请求数及其TCP连接状态(使用netstat结合awk和sort,组合
    一、需求二、解决方法(一)解决思路(二)命令三、实例演示和命令解释(一)实例演示(二)命令解释四、扩展一、需求用户访问一个视频监控平台的web服务特别频繁,据客户说,有大概2000个用户,要随机访问这个视频监控平台,这样对带宽的要求非常大。因此,他们需要查看到底有多少个http的并......
  • ip和端口基础知识
     TCP/IP体系结构-网络通信的基础 HTTP协议-网站访问的基础 其他协议-HTTPS、ARP、ICMP、DNS①什么是ip地址 <1>IP地址是电子设备在互联网上的唯一标识 <2>用来在互联网中寻找电脑②内网ip和公网ip <1>内网ip:路由以内的网络,可以连接互联网,但是互联网无法直接......
  • linux centos8升级openssh与openssl
    LinuxOpenSSH升级升级openssh之前需要先升级openssl 1、升级准备##1.1、查看系统版本和ssh版本linux系统版本cat/etc/redhat-release#或者uname-aopenssh查看一下原安装版本ssh-Vopenssl查看一下原安装版本opensslversion 1.2、下载软件包Opens......
  • Linux系统安装(虚拟机)
    我们通过VirtualBox虚拟机安装Linux系统,进行环境的搭建1、安装VirtualBox去官网virtualbox.org下载windows可安装exe2、新建虚拟机,网络选择桥接网络,通过主机单独给虚拟机分配IP,共享物理网络3、因为咱们的目标是想通过MobaXterm等ssh工具去远程操作虚拟机,所以需要进行一下操作......
  • 在WIN下删除LINUX
    deletelinux1.进入磁盘管理系统,删除分给linux的那个盘区2.以管理员权限的打开windows终端(命令提示符)3.输入diskpart4.输入listdisk5.输入selectdisk<磁盘的数字>6.输入listpartition7.输入selectpartition<系统分区对应的数字>8.输入assignletter=x......
  • Linux 多网卡绑定(AB网-ip漂移)-bonding机制-ifenslave工具
    作用:主备网卡所谓的多网卡绑定就是将多张物理网卡逻辑上组成一个网卡,这样就可以防止一块网卡坏了网络瘫痪,也能起到提升网络带宽的作用。把多块网卡绑定在一起,一般有两种工作模式可以选择,轮询模式和主备模式-轮询模式:例如把两块网卡绑定在一起,此时两块网卡都处于工作状态,它......