Linux常见指令及快捷键

基础命令行

1、rm可以删除文件(rm -d /path/to/directory或者rm -r /path/to/directory)

2、ls是展开文件 在linux中,“ll”是“ls -l”命令的别名,ls命令用于显示指定工作目录下之内容,参数“-l”表示除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出。

3、Mkdir是创建目录(无法使用vim)

4、Touch是创建文件(可以使用vim)

5、cd是查看文件 在最后加左下划线/ cd ..是退回上一级目录

6、ctrl+l或者是clear可以清除当前页面

7、显示当前路径:pwd 命令

8、查找所有路径用whereis 查找当前运行路径用which

9、切换root账户用su - 创建root用户用useradd -m root 更改密码用sudo passwd root

Su - nowcoder切换回nowcoder用户

10、Make 在编译大型项目的时候使用makefile,所需要的时间也比较长。尤其是在做测试的时候,需要使用很多次make指令,这需要耗费大量的时间。

使用make -j命令可以缩短这部分时间。使用方法就是在-j后面加一个数字,比如 -j10,意为在编译文件的时候用10个线程进行编译.

11、tree查看树状结构

12、Tar -xzf ...是解压缩操作

13、Sudo 是允许系统管理员让普通用户执行一些或者全部root命令的一个工具

14、重启用sudo reboot

15、移动文件到另外一个文件夹

mv [选项] 源文件 目标文件夹 比如mv example.txt /target/directory/

16、安装使用sudo apt install ...

卸载用sudo apt-get remove

17、cp是复制

语法:cp 【-r】 表示递归复制目录 【-r】选项,可选,用于复制文件夹使用,表示递归 参数1,Linux 路径,表示被复制的文件或文件夹 参数2,Linux 路径,表示要复制去的地方

编辑器命令行

基础命令

Vi/vim进入编辑操作

i是开始编辑

esc然后shift+:然后wq!退出编辑模式 (非管理员需要加感叹号)

wq是保存退出

q!是不保存退出

Ctrl+z可以强制退出

:w保存文件。

:q退出 Vim。

vim netrw

vim netrw在文件打开时关闭netrw缓冲区 vim netrw是一个用于在Vim编辑器中浏览文件系统的插件。当使用netrw打开文件时,可以通过以下步骤关闭netrw缓冲区:在Vim中,按下Esc键,确保处于正常模式。输入命令:bd,按下Enter键。这将关闭当前的netrw缓冲区。netrw插件的优势是它提供了一个方便的界面来浏览和管理文件系统,可以在Vim中直接进行文件操作,而无需切换到终端。它支持文件和目录的创建、复制、移动、删除等操作,还可以通过FTP和HTTP进行远程文件的访问。netrw插件的应用场景包括但不限于:

在Vim中快速浏览和编辑本地文件。

在Vim中进行文件和目录的管理和操作。

在Vim中通过FTP和HTTP访问远程文件。

在Vim中进行文件的比较和合并操作。

补充命令行

mount指令

        在类Unix系统中(如Linux),mount 命令用于将文件系统挂载到指定的挂载点上,从而使文件系统中的内容可以被访问。这个命令通常需要管理员权限来执行。

基本的语法如下:

mount [-t 文件系统类型] [-o 选项] 设备 文件夹

其中:

  • -t 文件系统类型:指定要挂载的文件系统的类型,如 ext4、ntfs、vfat 等。如果不指定类型,mount 命令会尝试自动检测。
  • -o 选项:指定挂载选项,比如读写权限、权限设置等。常见的选项有 rw(读写)、ro(只读)、exec(允许执行程序)、noexec(禁止执行程序)等。
  • 设备:指定要挂载的设备,可以是硬盘分区、光盘、USB 设备等。
  • 文件夹:指定挂载点,也就是设备要挂载到文件系统的位置。

举个例子,如果你想将 /dev/sdb1 这个分区挂载到 /mnt 文件夹上,可以这样做:

sudo mount /dev/sdb1 /mnt

如果你知道这是一个 FAT32 文件系统,你可以明确指定文件系统类型:

sudo mount -t vfat /dev/sdb1 /mnt

要查看当前系统上已经挂载的文件系统,可以使用 mount 命令不带参数地运行:

mount

如果你要取消挂载,可以使用 umount 命令,例如:

sudo umount /mnt

        请注意,使用 mountumount 命令需要谨慎,特别是在涉及到系统关键文件系统的情况下,错误的操作可能会导致数据丢失或系统无法启动。

pushd命令

   pushd 是一个命令行工具,通常在 Unix-like 系统中可用(如 Linux、macOS 等),用于在 shell 环境中管理当前工作目录的堆栈。

        当你在 shell 中使用 pushd 命令时,它会将当前目录推送到一个堆栈中,并将你指定的目录作为新的当前目录。同时,它也会显示出堆栈中所有的目录,按照它们的索引编号进行排序。

pushd 的基本用法如下:

pushd [目录]

其中 [目录] 是你想要切换到的目标目录。

   pushd 命令会将当前目录压入堆栈,然后切换到指定的目录。如果你省略了目标目录,pushd 将切换到堆栈中的下一个目录。

pushd 对应的命令是 popd,它会将堆栈顶部的目录弹出,并切换到弹出的目录。

        使用 pushdpopd 可以很方便地在多个目录之间进行导航,特别是在需要频繁切换目录的情况下。

pushd和cd的区别

pushdcd 是用于在 shell 环境中切换工作目录的两个不同的命令,它们之间有一些区别:

  1. 用法

    • cdcd 命令后面通常跟着要切换到的目录的路径。例如:cd /home/user/Documents 将当前工作目录切换到 /home/user/Documents
    • pushdpushd 命令通常后面跟着要切换到的目录的路径,类似于 cd 命令,但是它还可以接受一个数字参数,表示将当前目录推入堆栈并切换到指定目录的索引位置。例如:pushd /home/user/Documentspushd +3
  2. 目录堆栈

    • cd 命令不会修改目录堆栈。每次使用 cd 命令切换目录时,前一个工作目录会被丢弃,当前目录被替换为新的目录。
    • pushd 命令会修改目录堆栈。每次使用 pushd 命令切换目录时,当前目录会被推入堆栈中,并且切换到新的目录。
  3. 目录堆栈的使用

    • pushd 命令可以与 popd 命令配合使用来实现目录的压入和弹出操作。popd 命令会从目录堆栈中弹出顶部的目录,并切换到弹出的目录。
    • 使用 pushdpopd 可以很方便地在多个目录之间进行导航,特别是在需要频繁切换目录的情况下。

popd指令

   popd 是一个命令行工具,通常在 Unix-like 系统中可用(如 Linux、macOS 等),用于在 shell 环境中管理当前工作目录的堆栈。

        当你在 shell 中使用 popd 命令时,它会从目录堆栈中弹出顶部的目录,并将你切换到弹出的目录。同时,它也会显示出堆栈中所有的目录,按照它们的索引编号进行排序。

popd 的基本用法如下:

popd

popd 命令会从目录堆栈中弹出顶部的目录,并切换到弹出的目录。

popd 对应的命令是 pushd,它会将当前目录压入堆栈,并切换到指定的目录。

       使用 pushdpopd 可以很方便地在多个目录之间进行导航,特别是在需要频繁切换目录的情况下。

echo指令

echo命令是linux中最基础的命令,在写shell脚本的时候,会经常被用到,echo命令功能非常丰富,下面我们结合实际案例进行详细介绍。

echo命令的基本用法,很简单,就是echo命令后面跟上要输出的文本

-n 不要在最后自动换行

-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

--help 显示帮助

--version 显示版本信息

每一个shell支持的echo指令可能都不太相同。

-n 不输出最后的\n

-e解释转义字符

-E不解释转义字符

示例:echo "i am a boy" // 执行后会打印 i am a boy

i am a boy

Linux export 命令

用于设置或显示环境变量。

在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。

-f  代表[变量名称]中为函数名称。

-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

-p  列出所有的shell赋予程序的环境变量。

gcc命令

gcc 命令:用来编译C和C++文件

-v 同时显示编译器的代码

-x<语言> 指定语言

--help 显示帮助信息

--version 显示版本信息

-o<文件> 将输出输入到指定文件

-E 只进行预处理

-S 只进行预处理、编译 编译而不进行汇编和链接

-c 只预处理、编译、汇编,但不链接

-D 使用-D name[=definition]预定义名为name的宏,若不指定值则默认宏的内容为1

-l(小写的L) 使用-l libname或者-llibname,使链接器在链接时搜索名为libname.a/libname.so(静态/动态)的库文件

-L 使用-Ldir添加搜索目录,即链接器在搜索-l选项指定的库文件时,除了系统的库目录还会(优先)在-L指定的目录下搜索

-I(大写的i) 使用-I dir,将目录dir添加为头文件搜索目录

-include 使用-include file,等效于在被编译的源文件开头添加#include "file"

-static 指定静态链接(默认是动态链接)

-O0~3 开启编译器优化,-O0为不优化,-O3为最高级别的优化

-Os 优化生成代码的尺寸,使能所有-O2的优化选项,除了那些让代码体积变大的

-Og 优化调试体验,在保留调试信息的同时保持快速的编译,对于生成可调试代码,比-O0更合适,不会禁用调试信息。

-Wall 使编译器输出所有的警告信息

-march 指定目标平台的体系结构,如-march=armv4t,常用于交叉编译

-mtune 指定目标平台的CPU以便GCC优化,如-mtune=arm9tdmi,常用于交叉编译

其中GCC -c选项:生成目标文件

所谓目标文件,其本质为二进制文件,但由于尚未经过链接操作,所以无法直接运行。简单地理解,汇编其实就是将汇编代码转换成可以执行的机器指令。大部分汇编语句对应一条机器指令,有的汇编语句对应多条机器指令。相对于编译操作,汇编过程会简单很多,它并没有复杂的语法,也没有语义,也不需要做指令优化,只需要根据汇编语句和机器指令的对照表一一翻译即可。通过为 gcc 指令添加 -c 选项(注意是小写字母 c),即可让 GCC 编译器将指定文件加工至汇编阶段,并生成相应的目标文件

gcc生成文件类型:

(1)以.c文件结尾的文件名,表示C语言源文

(2)以.a文件结尾的文件名,表示目标文件构成的库文件

(3)以.o文件结尾的文件名,表示源文件编译的目标文件

(4)以.h文件结尾的文件名,表示头文件

(5)以.s文件结尾的文件名,表示汇编语言源文件

(6)以.S文件结尾的文件名,表示经过预编译的汇编源代码文件

(7)以.C,.cc,.cxx文件结尾的文件名,表示C++源代码文件

(8)以.i文件结尾的文件名,表示经过预处理的C源代码文件

(9)以.ii文件结尾的文件名,表示经过预处理的C++源代码文件

MD指令

        在计算机上,"md" 通常是 "make directory" 的缩写,用于创建新目录(文件夹)。在不同的操作系统中,该命令可能会有所不同。

        在 Windows 操作系统中,mdmkdir 命令用于创建新目录。使用方法是在命令提示符或 PowerShell 中输入 md 命令,后跟要创建的目录路径。例如:

md new_folder

         这将在当前目录下创建一个名为 "new_folder" 的新目录。在 Linux 和 Unix 操作系统中,mkdir 命令用于创建新目录。使用方法与 Windows 中的 md 命令类似。例如:

mkdir new_folder

         这将在当前目录下创建一个名为 "new_folder" 的新目录。在使用这些命令时,请确保你有适当的权限来在指定位置创建目录。

uboot下的md指令

        在 U-Boot 中,md 是 "memory display" 的缩写,用于在控制台上显示内存的内容。这个命令通常用于调试和查看内存中的数据。以下是在 U-Boot 中使用 md 命令的基本语法:

md [options] address [# of objects] [format]

  • address:要显示的内存地址。
  • # of objects:要显示的对象数量。
  • format:显示的格式,通常是十六进制(hexadecimal)格式。

        例如,要在 U-Boot 中显示从地址 0x1000 开始的内存内容,显示10个对象(每个对象的大小取决于系统的字长),可以输入以下命令:

md 0x1000 10

        你也可以指定显示的格式。例如,要以十六进制格式显示从地址 0x1000 开始的内存内容,可以输入以下命令:

md 0x1000 10 hex

        这将显示地址范围从0x1000到0x101F的16字节的内存内容,以十六进制格式显示。

        请注意,在 U-Boot 中使用 md 命令时需要小心,确保你知道要查看的内存地址范围,并避免对关键数据造成不可逆的影响。

mw指令

       在U-Boot中,mw 是 "memory write" 的缩写,用于向内存中写入数据。这个命令通常用于调试和修改内存中的数据。以下是 mw 命令的基本语法:

mw [options] address value [count]

  • address:要写入的内存地址。
  • value:要写入的值。
  • count:可选参数,指定要写入的字节数。

例如,要在 U-Boot 中将值 0x55 写入地址 0x1000 处的内存,可以输入以下命令:

mw 0x1000 0x55

       这会将值 0x55 写入地址 0x1000 处的内存。如果指定了 count 参数,mw 命令将在指定的地址开始处写入连续的多个值。例如,要在 U-Boot 中将值 0x55 写入地址 0x1000 处的内存,连续写入5个值,可以输入以下命令:

mw 0x1000 0x55 5

       这会将值 0x55 连续写入地址 0x1000 开始的5个内存地址中。请注意,在 U-Boot 中使用 mw 命令时需要小心,确保你知道要写入的内存地址和值,并避免对关键数据造成不可逆的影响。

Cat指令

        在 Linux 和类 Unix 系统中,cat 是一个常用的命令,用于显示文件的内容。它的名称来自 "concatenate"(连接)的缩写,原本用于连接文件,但现在更常用于简单地显示文件的内容。

cat 命令的基本语法如下:

cat [OPTION]... [FILE]...

其中:

  • OPTION 是可选的命令选项,用于指定 cat 命令的行为。
  • FILE 是一个或多个要显示内容的文件的路径。

例如,要显示一个名为 example.txt 的文件的内容,可以使用以下命令:

cat example.txt

cat 命令还可以用于将多个文件的内容连接在一起,并将结果输出到标准输出流。例如:

cat file1.txt file2.txt

这将先显示 file1.txt 文件的内容,然后显示 file2.txt 文件的内容。

cat 命令的常见选项包括:

  • -n:显示每行的行号。
  • -b:显示非空行的行号。
  • -s:合并连续的空行为一个空行。
  • -v:显示非打印字符的可视化表示。

       除了显示文件内容外,cat 命令还有其他一些用途,例如创建文件、将文件内容重定向到其他文件等。

repo指令

        在许多Linux发行版中,特别是那些使用基于Debian或Ubuntu的包管理系统的发行版,repo指令通常是一个用于管理软件源的命令。它通常用于添加、删除、更新和搜索软件源。

        以下是一些常见的repo指令:

  1. 添加软件源:要添加一个软件源,可以使用repo指令,通常需要root权限。例如:

    sudo add-apt-repository <repository>

    其中<repository>是软件源的地址或标识符。

  2. 删除软件源:要删除已添加的软件源,可以使用repo指令。例如:

    sudo add-apt-repository --remove <repository>

    这将删除指定的软件源。

  3. 更新软件源列表:要更新系统中可用的软件源列表,可以使用repo指令。例如:

    sudo apt update

    这将更新软件包管理系统的软件源列表。

  4. 搜索软件源:要搜索软件源中可用的软件包,可以使用repo指令。例如:

    apt search <keyword>

    这将搜索包含指定关键字的软件包。

dmesg命令

  dmesg 是一个用于查看系统消息(kernel ring buffer)的命令行工具。它显示了 Linux 内核在启动过程中产生的各种信息,包括硬件检测、设备驱动、内核模块加载、系统错误等。

       使用 dmesg 命令可以帮助你快速了解系统的运行状态,排查系统启动和运行过程中的问题。通常情况下,你可以在终端中直接输入 dmesg 命令来查看系统消息。

下面是一个示例输出:

[ 0.000000] Linux version 5.4.0-91-generic (buildd@lgw01-amd64-056) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #102-Ubuntu SMP Fri Nov 5 16:31:28 UTC 2021 (Ubuntu 5.4.0-91.102-generic 5.4.138)

[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-91-generic root=UUID=xxxx ro quiet splash

[ 0.000000] KERNEL supported cpus:

[ 0.000000] Intel GenuineIntel

[ 0.000000] AMD AuthenticAMD

[ 0.000000] Hygon HygonGenuine

[ 0.000000] Centaur CentaurHauls ...

         输出的信息可能会很长,其中包含了大量的系统启动信息、硬件检测信息、内核模块加载信息等。你可以通过查看 dmesg 的输出来了解系统在启动过程中发生的情况,并查找是否有任何异常或错误信息。

fstype命令

fstype 是一个命令行工具,通常用于查看文件系统类型。

你可以使用 fstype 命令加上文件路径来查看该路径下文件系统的类型。例如:

fstype /dev/sda1

这会显示 /dev/sda1 所在的文件系统类型,比如 ext4、NTFS 等等。

grep指令

   grep 是 Linux 和其他类 Unix 操作系统中的一个常用命令行工具,用于在文件中搜索指定的文本模式,并将匹配的行输出到标准输出。其基本语法如下:

grep [options] pattern [file...]

其中:

  • [options] 是可选的参数,用于控制 grep 命令的行为。
  • pattern 是要搜索的文本模式,可以是普通字符串或正则表达式。
  • [file...] 是要搜索的文件列表,如果不指定文件,则 grep 将从标准输入读取数据进行搜索。

一些常用的选项包括:

  • -i 忽略大小写。
  • -r 递归搜索目录及其子目录中的文件。
  • -n 显示匹配行的行号。
  • -v 显示不匹配模式的行。
  • -e 指定多个模式进行搜索。
  • -w 只匹配整个单词。
  • -c 仅显示匹配行的计数。

例如,要在文件 example.txt 中搜索包含字符串 "hello" 的行,可以执行以下命令:

grep "hello" example.txt

这将输出所有包含 "hello" 的行。

grep -rn

   grep -rn 是 Linux 中 grep 命令的一种用法,用于在指定目录及其子目录中递归搜索包含指定文本的文件,并显示匹配的行及其行号。

  • -r 选项表示递归搜索,即在指定目录下的所有子目录中搜索。
  • -n 选项表示显示匹配行的行号。

        例如,如果要在当前目录及其所有子目录中搜索包含字符串 "example" 的文件,并显示匹配行及其行号,可以使用以下命令:

grep -rn "example" .

这将在当前目录下递归搜索包含字符串 "example" 的文件,并显示匹配行及其行号。

注意事项

(1)所有的单独的文件中间一定要用空格隔开

(2)*可以代表诸如此类的所有文件,比如说*.o就是所有后缀为.o的文件

(3)./是当前目录 ../是上一级目录

linux快捷键

终端快捷键

Ctrl+A :跳到命令行开头

Ctrl+E:跳到命令行末尾

Ctrl+U:将光标出到命令行开头内容清除

Ctrl+向左箭头:跳到命令行的前一字的开头

Ctrl+向右箭头:跳到命令行的下一字末尾

Ctrl+R:在历史记录列表里搜索某一模式的命令

Ctrl+C:中断当前正在运行的命令。

Ctrl+Z:将当前正在运行的命令置于后台,并暂停它的执行。

Ctrl+D:退出当前的终端会话。

Ctrl+L:清除终端屏幕,并将当前的命令提示移到屏幕顶部。

窗口管理快捷键(如 GNOME、KDE 等)

Alt + Tab:切换应用程序

Alt + F4:关闭当前窗口

Alt + F2:打开应用程序运行框

Super(Windows 键):打开应用程序菜单

系统级别快捷键

Ctrl + Alt + Delete:重启系统(有些发行版可能会禁用)

Ctrl + Alt + T:打开终端。

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值