目 录CONTENT

文章目录

Linux常用命令

~梓
2024-12-01 / 0 评论 / 0 点赞 / 37 阅读 / 0 字
温馨提示:
本文最后更新于2024-12-03,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

指令

1. 怎么前进或后退文件目录?

cd(change directory)命令用于切换目录,常用用法包括:

  1. 进入子目录:

    cd 子目录名
    cd demo  # 进入demo目录
    
  2. 返回上一级目录:

    cd ..
    
  3. 返回根目录:

    cd /   # 切换到文件系统的根目录
    
  4. 返回用户主目录:

    cd ~ 或仅输入 cd  # 只输入 cd 命令会将你切换到当前用户的主目录
    
  5. 切换到之前的目录:

    cd -  
    
  6. 使用绝对路径:

    cd /path/to/directory
    cd /usr/local/    # 切换到usr下面的local目录
    
  7. 使用相对路径:

    cd ../another_directory
    # 假设你当前在 /home/user/docs 目录下:
    # 执行 cd .. 会回到 /home/user。
    # 执行 cd ../downloads 会切换到 /home/user/downloads 目录(前提是该目录存在)
    

2.文本编辑,浏览..用什么命令?

在文本编辑器(如 vivim)中,使用以下命令浏览上一级目录:

2.1 下面介绍文本编辑器的命令

  • 进入编辑模式
    i:在光标前插入
    I:在行首插入
    a:在光标后追加
    A:在行尾追加
    o:在当前行下插入新行
    O:在当前行上插入新行
  • 保存和退出
    :w:保存文件
    :q:退出
    :wq:保存并退出
    :q!:强制退出,不保存
  • 导航
    h:左移
    j:下移
    k:上移
    l:右移
    gg:跳到文件开头
    G:跳到文件结尾
    0:跳到行首
    $:跳到行尾
  • 删除和复制
    x:删除光标所在字符
    dd:删除整行
    yy:复制整行
    p:粘贴
  • 撤销和重做
    u:撤销
    Ctrl + r:重做

3、删除用哪些命令?

  1. 删除文件

    rm filename
    rm student.txt  # 删除student.txt文件
    
  2. 删除目录(空目录)

    rmdir dirname
    rmdir demo    # 删除demo这个空目录
    
  3. 强制删除文件

    rm -f filename
    rm -f student.txt  # 强制student.txt文件
    
  4. 递归删除目录及其内容

    rm -r dirname
    rm -r demo     # 递归删除demo目录及其内容
    

4、显示工作路径

pwd

5、复制文件、文件夹命令

用于复制文件,还可以把多个文件一次性地复制到一个目录下

  1. 复制某目录下的所有文件至当前目录

    cp dir/* .   # 复制某目录下的所有文件至当前目录
    
  2. 将目录复制到另一个目录

    cp -a dir1 dir2  # 将dir1复制到dir2
    
  3. 复制一个目录至当前目录

    cp -a /temp/dir1 .  # 将tmp下面的dir1复制到当前目录
    

5.1疑问:

将一个目录下的所有内容(包括文件和子目录)复制到另一个目录时,这个过程是递归的。
但是 -a-r都能完成,他们有什么区别?(假设想从tmp下的所有文件和目录复制到桌面的demo文件夹下)

解答
-r (或 --recursive):这个选项会递归地复制目录及其内容。如果你只关心复制文件和目录的结构,那么使用 -r 就足够了。

-a (或 --archive):这个选项不仅会递归复制目录,还会保留文件的属性,包括文件的权限、时间戳、所有者和组等。-a
实际上是对 -r 和一些其他选项的封装,它相当于同时使用 -r, -p(保留文件属性),-d(保留符号链接),以及其他一些选项。

所以在你的情景中,如果你想要完整地复制目录及其所有内容,并且保留文件属性,则应该使用 -a,即:

cp -a /tmp/* ~/Desktop/demo

如果你只想简单地复制文件和目录,并不关心文件属性,那么使用 -r 就可以了:

cp -r /tmp/* ~/Desktop/demo

5.2将 /etc 目录中的 passwd 文件复制到 /tmp 目录,并重命名为 password

cp /etc/passwd /tmp/password

6.查看文件用什么命令?

  1. cat 文件名 查看文件内容
    cat student.txt
    
  2. 连接多个文件内容并显示
    cat student.txt teacher.txt  ## 会将student.txt和teacher.txt的内容依次输出到终端
    

7.移动或重命名文件用什么命令?

在 Linux 和 Unix 系统中用于移动文件和目录,或者重命名它们的命令是 mv

  1. 移动文件或目录

    mv [源文件或目录] [目标位置]
    mv student.txt /home/user/Documents/student.txt  ## 将student.txt文件移动到/home/user/Documents/目录下
    
  2. 重命名文件或目录

    mv [旧文件名] [新文件名]
    mv student.txt teacher.txt  ## 将student.txt重命名为teacher.txt
    
  3. 使用选项
    -i:在覆盖文件时进行询问。

    mv -i school.txt class.txt
    

    -u:仅在源文件比目标文件新或目标文件不存在时才移动文件。

    mv -u student.txt /user/data/studnet_info/
    

    -f:强制移动文件,覆盖目标位置的文件而不进行询问。

    mv -f school.txt class.txt
    

    -v:显示移动过程中的详细信息。

    mv -v student.txt /user/data/studnet_info/
    
  4. 移动多个文件
    将 student.txt 和 teacher.txt 移动到 /home/user/documents

    mv student.txt teacher.txt /home/user/documents/
    

8、 新建文件夹用什么命令?

在 Linux 中,创建文件夹(目录)主要使用 mkdir命令。

  1. 基本语法

    • mkdir [选项] 目录名
    • 例如,要在当前目录下创建一个名为 test的文件夹,可以使用命令 mkdir test
  2. 常用选项

    • -p选项:这个选项用于递归创建目录。例如,如果要创建一个多层级的目录结构,如 /home/user/documents/project1,如果 documentsproject1都不存在,使用 mkdir -p /home/user/documents/project1就可以一次性创建这些目录。如果不使用 -p选项,当父目录不存在时,直接使用 mkdir /home/user/documents/project1会报错。
    • -m选项:用于指定创建目录的权限模式。例如,mkdir -m 777 test2会创建一个名为 test2的目录,并且该目录的权限为 rwxrwxrwx(所有人都有读、写、执行权限)。权限模式的数字表示是基于 Linux 的文件权限规则,其中 r(读)对应权限值为 4,w(写)对应权限值为 2,x(执行)对应权限值为 1,所以 74 + 2+1)表示 rwx权限。

9、更换主机名

示例:当前主机名为 [root@localhost /]$ ,现想将主机名改为 MindPalette

方法一:使用 hostnamectl命令(适用于使用 systemd的系统,如大多数现代 Linux 发行版)

  1. 查看当前主机名:
    • 可以使用命令 hostnamectl来查看当前主机的详细信息,其中包括主机名。例如:
hostnamectl
  • 输出类似如下内容(这里只是示例,实际输出会根据系统具体情况有所不同):
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 684f85e27299433cbcdcd2ba7a107497
           Boot ID: 668ff64a43e14d519903112d832cbc24
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.4 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server
            Kernel: Linux 3.10.0-693.el7.x86_64
      Architecture: x86-64
  1. 修改主机名:
    • 使用命令 hostnamectl set-hostname MindPalette来将主机名设置为 “MindPalette”。
  2. 使新主机名生效:
    • 有些系统在修改主机名后可能需要重新启动才能完全生效,但也可以通过重新登录或者执行以下命令来使新主机名在当前会话中生效(以下两种方法都可以)
bash
exec bash

方法二:直接修改配置文件(适用于多种 Linux 发行版,但不同发行版配置文件位置可能稍有不同)

  1. 对于基于 Red Hat(如 CentOS、Fedora 等)和 Debian(如 Ubuntu 等)的系统:
    • 编辑 /etc/hostname文件。可以使用文本编辑器如 vinano来进行编辑。例如,使用 vi编辑器:
vi /etc/hostname
  • 在打开的文件中,删除原来的主机名,输入新的主机名 “MindPalette”,然后保存并退出文件(在 vi中,按 “Esc” 键,输入 “:wq” 并回车来保存退出)。
  1. 对于一些基于 Debian 的系统,还可能需要编辑 /etc/hosts文件:
    • 使用文本编辑器打开 /etc/hosts文件,例如:
vi /etc/hosts
  1. 使新主机名生效:
bash

方法三:使用echo更改主机名

echo MindPalette >| /etc/hostname

10、echo命令的使用

  1. 基本功能:输出文本内容
    • echo命令最基本的用途是在终端打印文本。例如,echo "MindPalette!"会在终端显示 MindPalette!
    • 它可以输出简单的字符串,也可以输出变量的值。如果有一个变量 name="John",使用 echo $name(在 Bash 等大多数 Shell 中,通过 $来引用变量的值)就可以输出变量 name的值,即 John
  2. 输出转义字符
    • echo命令可以输出转义字符来实现特殊的格式。例如,\n代表换行,\t代表制表符(相当于按 Tab 键)。
    • 例如,echo -e "Line1\nLine2"-e选项用于启用转义字符的解释)会将 Line1Line2分两行输出。如果没有 -e选项,\n会被当作普通字符输出。
  3. 输出变量和拼接字符串
    • 当需要输出多个变量或者拼接字符串和变量时,echo命令很有用。例如,有变量 first_name="Alice"last_name="Smith",可以使用 echo "My name is $first_name $last_name"来输出 My name is Alice Smith
    • 在一些脚本编程中,echo经常用于输出提示信息或者记录日志。比如在一个简单的备份脚本中,可以使用 echo "Starting backup at $(date)"来记录备份开始的时间($(date)会被替换为当前日期和时间)。
  4. 重定向输出
    • echo命令的输出可以被重定向到文件中。例如,echo "MindPalette" > test.txt会创建一个名为 test.txt的文件(如果文件已经存在,会覆盖文件内容),并将 MindPalette写入文件。
    • 如果想要追加内容到文件中,可以使用 >>操作符。例如,echo "MindPalette" >> test.txt会在 test.txt文件的现有内容后面追加 MindPalette
  5. 与管道(|)一起使用
    • echo可以和管道一起使用,将输出作为下一个命令的输入。例如,echo "abc" | grep "a"会将 echo输出的 abc作为 grep命令的输入,grep命令会在输入的文本中查找包含 a的行,在这里就会匹配并输出 abc。这种用法在文本处理和过滤操作中非常常见。
0

评论区