Linux的常用指令 和 基础知识穿插巩固(巩固知识必看)

news2024/11/15 17:50:52

目录

前言

ls

ls

扩展知识

ls -l

ls -a

ls -al

cd

cd + 目录名

cd + ..

cd + ~

cd -

pwd

扩展知识

路径

/

cp [选项] “源文件名” “目标文件名”

mv [选项] “源文件名” “目标文件名”

rm

作用

用法

./"可执行程序名"

mkdir

rmdir

touch

man 命令名

grep

find

zip/unzip

tar

head和tail

ctrl + d

adduser

userdel

cat

小问题

tac

echo

more

less

whoami

which "指令名称"

whereis "指令名称"

alias

cal

date

bc

Tab

ps

stat

nano

vim

gdb

chown

chmod

chgrep

grep

yum

top

export

env

su

sudo

make

tree

sl

history

git

ping

wc


前言

本文一万多字,脑子不好的小菜鸟花了整整两天的空闲时间写完的,大家如果觉得还可以的话,点点赞或者关注吧,谢谢啦,祝你题题AC

ls

列出目录内容

ls

列出当前目录中的文件和子目录,但不包括.(当前目录)和..(上级目录)开头的隐藏文件或目录。

扩展知识
  • 隐藏文件:

在Linux下,若文件名以 " . "开头就是隐藏文件(windows下也有类似的隐藏文件,若大家将代码会上传到gitee上,则在你上传代码的文件夹下做以下操作会发现有一个以" . "开头的git隐藏文件,若你不显示隐藏文件,则这个文件你查看不到)

  • 隐藏文件的作用

  1. 保护重要文件

  2.通常用来隐藏配置文件

ls -l

以长格式列出当前目录中的文件和子目录的详细信息,这个命令所列出来的信息较 ls 的更详细,包括文件类型和权限、链接数、所有者、所属组、文件大小、最后修改时间等。

我在从Linux角度具体理解程序翻译过程-----预处理、编译、汇编、链接_翻译、预处理、编译-CSDN博客中也列了这样一张表格,展示了用ls -l列出的各列的含义

img

文件类型文件权限硬链接数文件拥有者文件所属组文件大小(以字节为单位)文件创建时间或者最近更新时间文件名
-rw-rw-r--1xkjtxxkjtx627Apr 18 21:32codetest
drwxr-xr-x2xkjtxxkjtx6Apr 13 19:42Desktop

Linux下文件信息: 在Linux中,输入ll命令会显示文件和目录的详细信息。这些信息通常分为若干列,每列的含义如下:

  • 文件类型: 第1个字符代表文件类型: -:普通文件 d:目录 l:软链接(符号链接) c:字符设备文件 b:块设备文件 s:本地套接字 p:命名管道(FIFO)

接下来的九个字符分为三组,每组三个字符,代表文件权限:

  • 文件权限

    r:可读权限 w:可写权限 x:可执行权限

  • 每组分别代表文件拥有者(user)、所属组(group)和其他用户(other)的权限。

  • 硬链接数: 对于文件,这表示有多少个文件名指向该文件;对于目录,这表示该目录所含的子目录数(不包括.和..)。

  • 文件拥有者: 显示文件的拥有者用户名。

  • 文件所属组: 显示文件所属的用户组名称。

这个组存在的意义是:有时为了保护文件所属者的信息文件只有自己可见,但这样子会有弊端:当文件所有者的同事或者上级想查看文件时,无法查看,只能打开other查看的权限,但是这样子所有人都可以看,而不只是上级和同事,因此设置了group(文件所属组)权限,设置了其他人可见,并保证了隐私

  • other: 不属于 文件拥有者 和 文件所属组 中的任何一者

ls -a

列出当前目录中的所有文件和子目录,包括.(当前目录)和..(上级目录)开头的隐藏文件或目录

ls -al

结合了-a-l的功能,以长格式列出当前目录中的所有文件和子目录的详细信息,包括隐藏文件或目录。

img

cd

cd + 目录名

进入“目录名”这个目录

Ψ( ̄∀ ̄)Ψ:敲黑板了嗷~

进入文件:给你脑门敲稀碎😤😤😠╰(‵□′)╯

这个命令只可以进入目录不能进入文件!!!!!!!!!!!!!!

cd + ..

返回上级(Linux中.通常表示当前级, 而..表示上一级)

cd + ~

进入用户家目录,也就是路径为:/home/"用户名"

cd -

返回最近访问的目录

pwd

显示当前工作目录绝对路径

(

扩展知识

关于路径的扩展:

路径

分类:

  • 绝对路径

  • 相对路径

使用场景

  • 绝对路径:正式场合(如:配置文件)

  • 相对路径:平时使用(原因:使用方便)

区分

  • 绝对路径:/home/xxx(这也通常是"xxx"这个用户的 家目录 或者 工作目录)

  • 相对路径:./test.c,这里有一个.,表示的是当前路径

/
  • 名称:路径分隔符注意:Linux下是" / ",但Windows下是" \ ",一个是斜杠,一个是反斜杠) 或者 根目录

  • 其实PC我们常见的网址中的/也就是Linux下的一个目录

  • / /里的一定是目录或者文件夹,但在/或的可能是文件或者文件夹,也就是说路径有以下两种形式

/目录名/目录名/目录名
/目录名/目录名/文件名
  • 目录其实是一个多叉树的结构

  • 题外话

    博主手痒,想看看根目录下到底有多少文件,俺之间输入tree /,哎哟我,刷刷刷一个屏幕,全是文件一闪而过,我又又想ctrl + c终止掉的冲动,还想看它到底有多少,就一直看它唰唰唰几个页面,如果又tree命令的阅读者,可以试试哦😜,没有的也不着急,后面会教大家怎么下载tree,tree命令有时候让你的文件的分区非常清晰哦,如下就是我的tree的一部分,是不是真的把层次展现的非常清晰呢Ψ( ̄∀ ̄)Ψ~~~

)

cp [选项] “源文件名” “目标文件名”

  • 复制文件

    源文件名被复制的内容所在文件

    目标文件名:要增加复制的内容的文件

  • 复制目录

    选项:通常为" -r "选项,表示递归复制

    源文件名被复制的内容所在目录

    目标文件名:要增加复制的内容的目录

mv [选项] “源文件名” “目标文件名”

mv的缩写

  • 移动源文件到目标文件或者目标路径

  • 重命名文件

源文件名被复制的内容所在文件

目标文件名:要增加复制的内容的文件

  • 移动文件:

  • mv 源文件名 目标文件名
  • 移动目录:

  • mv 源目录名 目标目录名
  • 重命名文件:

    mv 老文件名 新文件名

rm

remove的缩写

作用

  • 删除目录

  • 删除文件

用法

  • rm [选项] 文件/目录

  • 删除文件:

    rm 文件名
  • 删除目录(需要加上“ -r ”选项,仍然是递归的意思):

    • 递归删除

      • 可以询问(这里的询问意思是:有时候Linux防止你误删,会向你确认是否要删除这个目录,你需要输入y/n来决定是否删除)

        rm -r 目录名
      • 强制删除,不询问

        rm -rf 目录名
  • 删除前访问

    rm -i

./"可执行程序名"

执行程序,通常用在编译代码后运行代码

  • (o゚v゚)ノ 敲重点:

    ./"可执行程序名"之间没有空格

mkdir

用于创建目录。例如:

mkdir 目录名。

rmdir

  • 删除空目录

    用于删除空目录。例如:

    rmdir 目录名。

touch

用于创建文件或更新文件时间戳。例如:touch 文件名

man 命令名

用于显示命令的使用手册。例如:man ls:显示ls的使用方法,如同c中MSDN的作用

grep

用于在文件中搜索指定模式。例如:grep pattern file.txt

find

用于在文件系统中查找文件。例如:find 路径 -name "文件名"

  • find ~ -name "文件名"

    用户的家目录其子目录下寻找该文件

zip/unzip

  • zip

      压缩文件(这也就是为啥基础能看见压缩包以.zip结尾的原因)

  •  unzip

      解压文件

tar

  • tar -cvf 归档文件名 被打包的文件1 被打包的文件2 被打包的文件3....
    • 作用

      打包文件

    • 注意

      只是打包了文件,并没有压缩,只是将一堆文件集合在一起,方便传输和归档(归档指的是将一组文件或目录打包成一个单一的文件,以便更方便地传输、存储或备份。这个单一的文件通常称为归档文件,它可以包含一个或多个文件和目录,保留了原始文件的层次结构和权限信息。)

  • tar -czvf 归档文件名 被打包的文件1 被打包的文件2 被打包的文件3....
    • 作用

      打包并压缩文件

      • c : 创建一个压缩包

      • z:压缩

      • v:显示压缩进程

      • f : 后面接形成的文件名称,注意:f一定要放最后,cvz顺序随意

  • tar -xzvf
    • 作用

      解压文件

      • x : 解压

head和tail

  • head

    • head "文件名":提取前几行(默认10行)

    • head -n:提取前n行

  • tail

    • tail "文件名":提取后几行(默认10行)

    • tail -n:提取后n行

  • 思考

    讲到这里,请思考一下如果我们想要test.c文件中的第999行到1009行应该怎么做呢?

    方法:

    • 方法1

      • 创建一个临时文件temp.c,然后应该怎么写才能实现把test.c文件的前1009行写入temp.c中呢?(动动你的聪明小脑瓜(≧∀≦)ゞ)(提示所用知识点:输出重定向

      • 方法就是:

        head -1009 test.c > temp.c

      • 再把temp.c的最后几行写入目标文件:

        tail -100 temp.c > dest.c
      • 删除临时文件

      • rm temp.c
    • 方法2

      这里就要引入一个概念了:管道

      • 什么是管道呢?

        • 生活中的管道:传输各种资源😯🤔🤨,那么......请问,数据是不是一种资源呢?

        • 答案是肯定的,所以我们可以用管道:将数据从这个文件通过管道传输到另一个文件

      • 管道的理解

        所以我们的写法是:head -1009 test.c | tail -100 > temp.c(是不是脑子有点懵懵哒?那本小菜鸟就用画图让俺的读者理解一下什么是管道吧~)

      • 也就是说:

        • 绿色框框中的对test.c的操作后所获取到的内容被放入管道中

        • 管道中形成了管道文件

        • 管道文件再进行橙色框框里的操作

        • 最后管道文件被>输出重定向到了目标文件temp.c

        这里就省去了我们建立临时文件的功夫了,而管道帮我们做了

      • 用管道的好处:

        文件是存在磁盘的,而管道是将文件存在内存的,而访问速度从快到慢为:

        CPU > 内存 > 磁盘 > 光盘和磁带

ctrl + d

登出当前用户(就是退登的意思)

adduser

增加用户

userdel

删除用户

cat

  • cat "文件名"

    打印文件到屏幕(通常是篇幅较小的文件)

  • cat -n "文件名"

    打印文件到屏幕,且带行号,这一点在打印较短的代码时非常实用

  • cat "文件名1" "文件名2"

    将两个文件内容都打印到屏幕

  • cat > "新文件名"

    创建新文件

  • cat test1.c > test2.c

    将test1.c的内容输入到test2.c中,!!!!!!!!千万注意啦:这样子会覆盖test2.c的内容,将test2.c的内容完全变为test1.c中的内容!!!!!!!!!1(不要问我怎么知道的😖伤心心,┭┮﹏┭┮,俺为这篇文章付出了惨痛的代价)

    • 扩展知识:

      这里的>是输出重定向,cat的默认输出是输出到显示器,但是因为"test1.c" > "test2.c",最后会把test1.c的内容输入到test2.c中,改变了输出方向,所以叫输出重定向

  • cat test1.c >> test2.c

    将test1.c的内容追加到test2.c中,注意这里是追加,不会删除test2.c中的内容,而只是增加了test1.c的内容进去(如果俺之前注意了这一点,就不会损失我那个文件的代码了╥﹏╥...)

    • 扩展知识

      这里的>>追加重定向

  • cat < test2.c

    这里的<输入重定向

小问题

如果执行以下操作会输出什么?🧐🧐🧐

  • 先创建两个文件,分别为:test1.txt,test2.txt

  • 然后用vim操作在test1.txt中写入:hello ,努力的你;并保存退出

  • 在命令行中输入:cat < test1.txt > test2.txt,会怎么样呢(≧∀≦)ゞ?

  • 答案就不公布啦,那就请你自己去试试啦~~ε=ε=ε=(~ ̄▽ ̄)~ 脑子不好的小菜鸟跑路

tac

眼尖的同学可能发现了,tac是cat的逆序写法,而他们的作用也确实相反:

逆序输出文件

注意:

  • 这里的逆序不是把所有字都逆向输出,而是以行为单位,倒着输出,如以下代码

    int main()
    {
      int i;
      for (i = 0; i < 100; i++)
        printf("如果能上清华就好了\n");
      return 0;
    }

    逆向输出就是:

    }
      return 0;
        printf("如果能上清华就好了\n");
        //cout << "如果能上清华就好了" << endl;
      for (i = 0; i < 100; i++)
      int i;
    {
    int main()
    
    #include <stdio.h>

    看似无用,其实用处还是挺大的,比如有一个文档,有上万行,但是用cat打印出来在屏幕上时,最后只能看见文件的最后几行,你要看第一行或者其他较为靠前的行数,你需要翻阅很久才能找到,但是当逆序打印时,前面的几行能立马看见

echo

打印内容到显示器

  • 与cat的区别:

  1. echo命令

    • echo命令用于在终端上打印指定的文本或变量的值

    • 它通常用于简单的文本输出

      如输入以下指令时:

      echo "a = 10"

      它会显示:

      a = 10
    • echo命令不会读取文件内容,而是直接将指定的文本输出到标准输出(通常是终端)。

      也就是说,如果输入以下命令:

      echo test.c
      • echo像傻子,会输出:test.c,根本不会输出test.c中的代码

      • cat就讨人喜欢,会输出test.c中的内容

  2. cat命令

    • cat命令用于连接文件并打印它们的内容到标准输出。

    • 它通常用于查看文件的内容,或者将多个文件的内容连接起来输出到标准输出。

    • cat命令可以接受多个文件名作为参数,并按顺序输出它们的内容

总的来说,echo主要用于文本输出,而cat主要用于文件内容的查看和连接。

more

  • more "文件名"

    打印文件

  • 使用场景

    cat:打印小文件

    more:打印大文件

  • 使用方法

    • 向下查看内容:摁enter键,注意哦~~~:摁上下键没有用

    • 退出:按q

    • more 5 "文件名":只打印5行

  • 注意:

    不可向上翻阅----->所以不推荐这样子用------>推荐less,可以向上翻也可向下

less

  • less "文件名"

    查看文件(通常为大文件)

  • 用法

    • /:向下搜索"字符串"的功能

    • ?:向上搜索"字符串"的功能

    • n:重复上一个搜索(next的缩写)

    • g:回到一开始

whoami

显示当前你所处的账户名

which "指令名称"

在系统路径中查找特定的指令所在位置

whereis "指令名称"

找包含该指令的路径

alias

  • alias 别名='指令名'

    给命令起别名,如:alias zhangsan='touch',那么你就可以zhangsan test.c来创建test.c文件了

  • 注意

    别名只在这次登录有效,下次登录无效,所以这里大家可以作为娱乐玩

cal

打印日历

date

  • 用处

    打印时间

  • 使用场景

平时没有什么用处,但是当在数据库这种安保要求较高的地方,手机并不能带,这个时候可以用这个命令来确定当前时间

bc

计算器

  • 退出

    那就是万能的ctrl + c   ε=ε=ε=(~ ̄▽ ̄)~

  • 和echo的结合

    echo "1+2+3" | bc:显示1+2+3的答案到屏幕

Tab

这个命令记住有时候真的很爽哦😎

  • 命令补齐

  • 查找命令(若你输入whi,它会给你输出which while whiptail,当你有时候想不起那个命令具体怎么写的时候可以用哦)

ps

这不是很简单吗,不就是P图吗

  • 前置知识

    • 进程

      • 概念

        在任何操作系统下都有进程,而进程的概念是:执行中的程序实例

        Windows下的进程查看:打开电脑最底部的搜索框,搜索任务资源管理器,什么就会显示目前在运行的程序(也可以叫做进程)

      • 所含属性

        • PID

        • 执行状态

        • 优先级

        • .....

    • 进程状态

      • R

        运行状态,也就是Running的首字母

      • S

        • 含义

          休眠状态,等待事件完成(如:等待某个文件加载到缓冲区)。Sleeping的缩写

        • 终止该状态

          输入kill -9 "该进程的PID"

          扩展:
          1.kill命令
            用法:
            (1)kill -19 "要被结束进程的PID"
            这个命令:用来结束一个进程
            【注】查看PID:
            1)输入 ps axj | head -1 && ps axj | grep '你的可执行程序名'
            2)查看“PID”对应的那一列-----该进程的PID
            
            [解释]:*ps axj:显示进程的详细信息
                   *head -1:显示头部(显示每一列代表的          含义){注意不是kill -l(字母l),而是数字1}
                   *grep '你的程序名':在所有进程中找你的程序
                   *-19:只是一种信号,信号不同,kill所做的指令不同,若想看各种信号是什么用途,请在命令行输入:man kill
        • 注意

          该状态可随时被唤醒

      • D(disk sleep)

        • 含义

          睡眠状态,磁盘睡眠,升读睡眠

        • 注意

          该状态不可被唤醒,不可被中断------------->只能自己醒 或者 关机重启

      • T

        暂停或调试状态(STOP)

        • 当要继续执行时:

          kill -18 该进程的PID
      • X

        终止状态(该状态瞬时性非常强,所以一般见不到这种状态)

      • Z

        僵尸状态

        说到这里,我就不得不提两个比较特殊的进程了:孤儿进程僵尸进程

        • 孤儿进程

          • 形成原因:

            子进程还没进行完,父进程比子进程先退出(注意:在进程中,父子进程的退出先后没有特定的顺序,谁先运行完是调度器决定的),子进程后退出

          • 处理方法

            当孤儿进程出现后,系统会给孤儿进程安排一个1号父亲(这个时候可以看见该进程的PPID变为1),这个1号进程也叫init进程,这个init进程会将该子进程回收

          • 后果

            这属于正常现象,并不会造成上面太大的危害

        • 僵尸进程

          • 形成原因:

            子进程已经进行完了,但是父进程进行完时并未读取子进程的结束状态(只要父进程读取了子进程的状态,子进程的Z状态(僵尸状态,等待被检查)才会变成X状态(可退出状态)),使得子进程永远无法结束,一直等待被读取,但是父进程已经结束,无法读取了,而其状态为Z状态,操作系统也无法回收

          • 处理方法

            脑子不好的小菜鸟暂未学到,敬请期待....(●ˇ∀ˇ●)

          • 后果

            会导致内存泄漏

            • 为什么是内存泄漏呢?

              因为该状态一直不执行,就会一直在内存中等待被操作----->不被释放---->占用内存资源----->内存泄漏

  • ps

    查看当前进程的状态

  • ps axj

    查看当前所有进程的状态

  • ps axj | head -1 && ps axj | grep test

    显示包含”test“的进程

    【注】:head -1:显示头部

PPID    PID   PGID    SID TTY       TPGID STAT   UID   TIME COMMAND

stat

显示进程的状态信息

nano

一个文本编辑器,用户可以编辑文本

  • 用法

    nano 文件名

vim

一个功能强大的文本编辑器,它支持多种模式,包括普通模式、插入模式和命令模式,这三个模式的转化方法如下:

gdb

调试工具,Linux并不像IDE一样,会把编译等多种功能集合在一起,而是分开的

  • 格式

    gdb 可执行文件名

    注意:说可执行文件名,不是源文件,谁写源文件名,我给他一棒槌( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)

chown

  • chang owner的缩写

  • chown 命令用于改变文件或目录的所有者(owner)。其基本语法为:

chown 新所有者 文件或目录

chmod

  • chmod 操作 文件名
    • 作用:

      改变文件的属性(这里的属性指的是:当输入ll时第一大列的属性,如:

      rwxrwxrwx

      这个怎么看呢?分三列三列的看

      • r:读权限

      • w:写权限

      • x:粘滞位

      • 这里所说的操作可以有以下几种操作,大家可以根据喜好进行操作

        • chmod u+x test.txt

          这里的意思是:给user(文件所有者)加上x权限(u:user的缩写);若想减去x权限,则写成:chmod u-x test.txt

          若想给所属组添加,则是:chmod g+x test.txt(g:group的缩写)

          若想给other添加,则是:chmod o+x test.txt(o:other的缩写)

        • chmod 456 test.txt

          这里的意思是:

          给user添加:-r-权限(对应的是010)

          给group添加:-rx权限(对应的是011)

          给other添加:rw-权限(对应的是110)

        • chmod u=rwx test.txt

          这里的意思是:

          给user设置rwx权限

          • 若要给所有人设置rwx,则:chmod a=rwx test.txt(a:all的缩写)

chgrep

chgrep 新所属组 文件名
  • 作用

    改变文件所属组

grep

  • 作用

    使用正则表达式搜索文本并将匹配的行打印出来

  • 使用

    若想在test.c找含有hello的行,则:

    grep hello test.c

yum

软件包的安装、卸载、更新、查询等功能

以下是yum的一些基本命令和用法:

  1. 安装软件包

    yum install 软件包名称
  2. 卸载软件包

    yum remove 软件包名称
  3. 更新软件包

    yum update 软件包
  4. 列出可用的软件包

    yum list 软件包
    
  5. 查找软件包

    yum search 软件包
  6. 列出已安装的软件包

    yum list installed
  • 注意

    在使用yum时,请确保你有足够的权限来安装或卸载软件包。通常,需要使用 sudo 命令来获取必要的权限

    • 下载

      sudo yum install 软件包名称

      卸载

    • sudo yum remove 软件包名称

top

更改进程的nice值

  • 进程的优先级

    • 为什么有?

      CPU资源是有限的,但是又有非常多的进程要调用CPU,这就会出现资源竞争为了资源分配更合理,就出现优先级

    • 什么是优先级

      确认使用CPU资源谁先谁后的参考标准

    • Linux的优先级计算标准

      优先级 = 老的优先级 + nice值

      • 查看老优先级和nice值

        输入ps -l

        PRI:老优先级

        NI:nice值

      优先级越小越早被执行

export

设置环境变量

  • 使用方法

    export 环境变量名="你要设置的环境变量"
  • 环境变量

    • 概念

      环境变量是系统用来传递信息的变量,它们在程序启动时被设置,并且可以在程序之间传递(如:父进程和子进程,子进程会继承父进程的所有属性)。环境变量可以被程序读取,并用于决定程序的行为,例如指定程序的路径、配置选项或连接到特定的数据库。

    • 作用

      • 其实我们在命令行中输入ls这个命令时,同时可以输入ls这个命令的地址 来执行ls这个命令(地址通过which ls这个命令来获取)

      • 但是我们不可直接用名字执行自定义的命令,而是要用地址的方式

      • 若想和ls这样子直接用名字执行命令的方式执行自定义命令,则就要用到`环境变量

      • export PATH=$PATH:'你自定义的命令命令的所在路径'

env

  • 列出所有环境变量

su

  • su "用户名"

    登入"用户名"这个用户的家目录(前提:你得是root)

sudo

不切换到root用户但可以执行某些特定指令

  • 前提

    你得是被信任用户

    • 被信任用户添加方法

      • 切换到root身份

      • 编辑 sudoers 文件

        使用 visudo 命令编辑 /etc/sudoers 文件。这个文件描述了哪些用户可以使用 sudo 命令以及可以执行哪些操作。

        sudo visudo
      • 添加用户到 sudo 组:

      usermod -aG sudo 要被授权的用户名
      • 配置 sudoers 文件

        /etc/sudoers 文件中,您可以使用以下语法添加用户或用户组的权限:

      要被授权的用户名 ALL=(ALL:ALL) ALL

      这将允许 要被授权的用户 以任何用户(ALL)和任何组(ALL)的身份执行任何命令。

      • 保存更改

        visudo 中保存并退出文件。确保您的更改没有错误,以免导致系统权限问题。

      • 测试:

        使用被授权用户登录,并尝试执行 sudo 命令以验证权限是否已生效。

      注意修改系统文件时应格外小心,确保不会产生潜在的安全风险。

make

  • 执行"makefile"文件中的内容(或者"makeFile"),所以通常它们同时使用

  • makefile的介绍

    • 存在意义

      自动化地构建项目/自动化地把源文件变成可执行程序

    • 写法

      通常是以下写法

      mytest:test.c
      	gcc test.c -o test -g
      .PHONY:clean
      	rm -f test
      • 写法解释

        • mytest : test.c

          mytest:依赖关系

          test.c:依赖方法

          我们并不需要理解什么叫依赖关系,什么叫依赖方法,我们只需要知道:

          1.当我们想运行gcc test.c -o test -g时,我们只需要输入make,系统就会帮我们执行这个命令,不再需要我们每次要编译test.c文件时都写gcc test.c -o test -g这一大长串节约了我们的时间

          2.当我们想运行rm -f test时,我们并不需要每次都输入这一行,而是要输入make clean,为什么这次make后面要带上依赖关系呢?因为make命令执行时会从上到下执行每个依赖关系,是如果只输入make只会执行第一个,如果要执行后面的,就需要输入make "依赖关系"

        • gcc test.c -o test -g

          编译test.c文件生成名为test的可执行程序

          • -o :相当于起别名

          • -g:可调试,若无这个部分,则默认生成的可执行文件时release版本(不可调试)

tree

  • 以树状图的形式显示目录结构

  • 这种方式呈现的层次关系非常清晰,大家可以看看下面的图哦

sl

这是一个很有意思的插件啦,需要下载哦,输入sl时会有小火车开过哦

大家可以尝试执行以下代码来下载sl命令,当然可能会下载失败,比如:你是Ubuntu,不是Centos

yum -y install sl
  • 效果展示

history

列出历史所有命令记录,在这里你可以看到你之前运行过的所有命令

git

上传git

  1. 安装Git(以下是Centos的操作)

    sudo yum install git
  2. 创建Gitee账号

    如果你还没有Gitee账号,需要先注册一个账号。访问Gitee的官方网站(Gitee - 基于 Git 的代码托管和研发协作平台)进行注册并登录。

  3. 克隆仓库

    git clone 地址

    这里的地址在图示部分(注意是HTTPS这个地址)

  4. git三板斧

    • git add 源文件名或者git add .(第一个:提交该文件的更改 第二个:提交当前这个目录的更改的文件)

    • git commit -m "提交的更改":提交修改到仓库

    • git push代码提交到远程仓库

      • 注意

        • 只有上面三步都做完才能在gitee上看见小绿点哦~~

        • 有时候会出现提交失败的情况,这种情况下我们只需要:

          git pull

          ,产生失败的原因是:在同一个公司的同一组内,每天要提交日志,可能会出现你和你的同事同时提交文件到gitee的情况,这个时候就可能你的git不同步,而git pull这个命令用来获取最新提交,这样你们的gitee就同步啦

ping

测试与网络设备的连接

wc

  • wc "文件名"

    显示文件的行数、字数和字节数

  • wc -l "文件名"

    显示文件 filename 的行数。

  • wc -w "文件名"

    显示文件 filename 的字数。

  • wc -c "文件名"

    显示文件 filename 的字节数。

  • wc -L "文件名"

    显示文件 filename 中最长行的长度

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海外住宅IP介绍

住宅IP&#xff0c;通俗的来讲就是分配给家庭的IP地址&#xff0c;ISP默认分配用户为家庭用户&#xff0c;其真实性与安全性都有一定保障。海外住宅IP是指由海外互联网服务提供商分配给家庭用户的IP地址&#xff0c;IP地址通常是静态的&#xff0c;稳定的&#xff0c;可以为用户…

U盘中毒文件变乱码?揭秘原因与高效恢复方法!

在日常使用U盘的过程中&#xff0c;有时我们会遭遇到一个非常棘手的问题——文件突然出现乱码。当你满怀期待地插入U盘&#xff0c;准备打开某个重要文件时&#xff0c;却发现文件名或内容变成了一堆无法识别的字符&#xff0c;这种心情无异于晴天霹雳。乱码文件不仅影响了我们…

鸿蒙生态融合进行时!菊风启动适配HarmonyOS NEXT,赋能原生应用实时

​​今日话题 鸿蒙HarmonyOS NEXT 自华为公开宣布鸿蒙 HarmonyOS NEXT 系统以来&#xff0c;该系统受到了业内广泛关注&#xff0c;和以往鸿蒙系统不同的是该系统底座完全由华为自研&#xff0c;摒弃了 Linux 内核和安卓 AOSP 代码&#xff0c;仅兼容鸿蒙内核及鸿蒙系统的应用…

【多模态】31、Qwen-VL | 一个开源的全能的视觉-语言多模态大模型

文章目录 一、背景二、方法2.1 模型架构2.2 输入和输出2.3 训练 三、效果3.1 Image Caption 和 General Visual Question Answering3.2 Text-oriented Visual Question Answering3.3 Refer Expression Comprehension3.4 视觉-语言任务的少样本学习3.5 真实世界用户行为中的指令…

windows部署腾讯tmagic-editor03-DSL 解析渲染

创建项目 将上一教程中的editor-runtime和hello-editor复制过来 概念 实现 创建hello-ui目录 渲染节点 在hello-ui下创建 Component.vue 文件 由于节点的type是由业务自行定义的&#xff0c;所以需要使用动态组件渲染&#xff0c;在vue下可以使用component组件来实现 c…

20240511每日运维----聊聊nignx改配置所有的nginx改完unknow

1、改配置所有的nginx改完unknow src/core/nginx.h src/http/ngx_http_header_filter_module.c src/http/ngx_http_special_response.c src/http/v2/ngx_http_v2_filter_module.c 2、make 3、去objs里面把nginx文件替换过去sbin/nginx

高质量英文文献应该如何查找并且阅读?

1. 查找 使用谷歌学术进行论文关键字检索&#xff0c;查找高度匹配的论文。这里我们可以选择年限等信息进行筛选。作为研究者我们一般选择近三年的文章进行阅读。这里谷歌学术需要科学上网&#xff0c;请大家自行解决。 https://scholar.google.com/ 2. 查看期刊等级 我们查…

深度学习设计模式之抽象工厂模式

文章目录 前言一、介绍二、详细分析1.核心组成2.实现步骤3.代码示例4.优缺点优点缺点 5.使用场景 总结 前言 本文主要学习抽象工厂模式&#xff0c;抽象工厂模式创建的是对象家族&#xff0c;比如&#xff1a;苹果是一个产品&#xff0c;但是他不单单只生产手机&#xff0c;还…

【C语言】必备Linux命令和C语言基础

&#x1f31f;博主主页&#xff1a;我是一只海绵派大星 &#x1f4da;专栏分类&#xff1a;嵌入式笔记 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、文件和目录相关命令 Linux 的文件系统结构 文件系统层次结构标准FHS pwd命令 ls 列目录内容 文件的权限 c…

libsndfile读取wav文件基本属性

本文的目的是提供一种方法读取wav文件的基本属性&#xff1a;音频帧数&#xff0c;格式、通道数和采样率信息。 代码如下所示&#xff1a; #include <iostream> #include <QDebug> #include "sndfile.h"using namespace std;int main() {// 初始化 ALS…

亚马逊云科技中国峰会:与你开启前沿技术的探索之旅

亚马逊云科技中国峰会&#xff1a;与你开启云计算与前沿技术的探索之旅 Hello,我是科技博主Maynor&#xff0c;非常高兴地向你们推荐亚马逊云科技中国峰会&#xff0c;这是一场将于 5 月 29 日至 30 日在上海世博中心举办的科技盛会&#xff0c;如果你对云计算、行业发展新趋势…

【Python从入门到进阶】54、使用Python轻松操作SQLite数据库

一、引言 1、什么是SQLite SQLite的起源可以追溯到2000年&#xff0c;由D. Richard Hipp&#xff08;理查德希普&#xff09;所创建。作为一个独立的开发者&#xff0c;Hipp在寻找一个能够在嵌入式系统中使用的轻量级数据库时&#xff0c;发现现有的解决方案要么过于庞大&…

【35分钟掌握金融风控策略29】贷中模型调额调价策略

目录 贷中客户风险管理和客户运营体系 用信审批策略 用信审批策略决策流与策略类型 贷中预警策略 对存量客户进行风险评级 基于客户的风险评级为客户匹配相应的风险缓释措施和建议 调额策略 基于定额策略的调额策略 基于客户在贷中的风险表现的调额策略 调价策略 存…

视频监控系统中,可变码率和固定码率对录像文件存储大小的影响,如何配置比较好?

目录 一、问题描述 二、视频监控的录像文件计算 &#xff08;一&#xff09;计算方法 &#xff08;二&#xff09;计算工具 三、原因分析 &#xff08;一&#xff09;检查配置 1、IPCa配置 2、IPCb配置 3、录像文件存储大小的理论值 &#xff08;二&#xff09;实际情…

Darknet+ros+realsenseD435i+yolo(ubuntu20.04)

一、下载Darknet_ros mkidr -p yolo_ws/src cd yolo_ws/src git clone --recursive https://github.com/leggedrobotics/darknet_ros.git #因为这样克隆的darknet文件夹是空的&#xff0c;将darknet_ros中的darknet的文件替换成如下 cd darknet_ros git clone https://github.…

英飞凌SiC模块为小米电动车提供动力

至2027年之际&#xff0c;SiC功率模块与裸片产品将荣耀登场&#xff0c;助力小米电动汽车新品SU7璀璨问世。英飞凌&#xff0c;这家业界翘楚&#xff0c;将倾其所能&#xff0c;为小米SU7 Max提供两颗HybridPACK Drive G2 CoolSiC 1200 V模块&#xff0c;如同给电动汽车的心脏注…

[链表专题]力扣141, 142

1. 力扣141 : 环形链表 题 : 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾…

pytest教程-47-钩子函数-pytest_sessionfinish

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_sessionstart钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_sessionfinish钩子函数的使用方法。 pytest_sessionfinish 钩子函数在 Pytest 测试会话结束时调用&#xff0c;…

254 基于matlab的钢筋混凝土非线性分析

基于matlab的钢筋混凝土非线性分析&#xff0c;根据梁本构关系&#xff0c;然后进行非线性分析&#xff0c;绘制弯矩-曲率曲线。可设置梁的截面尺寸、混凝土本构&#xff0c;钢筋截面面积等相关参数&#xff0c;程序已调通&#xff0c;可直接运行。 254 钢筋混凝土非线性分析 弯…

那些年我与c++的叫板(一)--string类自实现

引子&#xff1a;我们学习了c中的string类&#xff0c;那我们能不能像以前数据结构一样自己实现string类呢&#xff1f;以下是cplusplus下的string类&#xff0c;我们参考参考&#xff01; 废话不多说&#xff0c;直接代码实现&#xff1a;&#xff08;注意函数之间的复用&…