linux的基本命令

linux命令格式:

command [-options] [parameter]

command:命令;

options:选项或者操作;

parameter:目标或者参数;

  1. ls:显示当前文件下的文件和文档
    -a:显示所有的文件包括隐藏文件;
    -l:显示所有文件的信息。如建立的时间
    -h:人性化显示,通常和-l一起使用。
    通配符:
    通配符 含义
    * 代表任意个字符
    代表任意的一个字符
    [] 代表从[]里选一个字符
    [a-f] 代表从a-f里悬着一个字符
  2. cd:切换目录
    cd:回到根目录
    cd~与cd作用相同
    cd ..:切换到上层目录
    cd可以在任意位置切换到绝对路径之下
  3. touch:创建一个文档,若已经存在,则更新文件的时间。
  4. mkdir: 创建一个文件
    -p:连续创建目录:如mkdir -p a/b/c
  5. rm:删除文档,删除过程不可逆,也就是直接消失了,找不回
    -f:强制删除
    -r:可以选择删除文件
    注意:这里千万不要返回根目录执行 rm -fr *,那就直接完蛋,重新装过系统吧。
  6. tree:把当前目录下的所有文件和文档以树的形式展示
  7. cp:复制文件和文档
    cp [要复制的文件路径] [要复制到哪里]
    -i:如果发现文件已经存在,有提示
  8. mv:移动文件
    和cp一样使用方法
    要是前后的路路径一样,但是名字不一样的话相当于重命名
  9. cat:查看文档
    -b:除了空行之外的所有行都标上行数
    -n:所有的行数都标上,包括空行
  10. more:查看文档的内容,和cat一样,但是more可以把一些一个屏幕没法放下的内容给收起,按下空格或者enter建之后才能显示剩下的内容
  11. grep:在特定的文档里查找内容
    -n:显示查找的内容的行数
    -v:把不包含特定内容的行都显示,注意这里不显示行数
    -i:忽略特定内容的大小写
  12. echo:直接输出内容,把你写的内容原封不动都输出,养成习惯,用echo的时候都把输出的内容加上“”变成字符串。
    -e:加上之后可以支持反斜杠字符,也就是\n代表换行,\t代表制表符,也就是table键。
    echo $之后按下tab键可以显示所有系统环境
    echo $USER 可以显示用户名,echo $PATH显示当前路径,我们可以配合>或者>>键将改内容写进文档里。
  13. >输入输出重定向和>>追加操作:
    例如ll>info,要是没有这个info文档那就创建这个文档并且把ll(该界面所有的内容)写到这个文文档中,要是里面有内容,那就覆盖之前的内容,把ll的内容写入。
    例如ll>>info,追加ll的内容写进这个info的文档,同样的,要是没有这个文档那么创建这个文档,同时写进ll的内容,要是有info这文档,那么在info的内容后面追加内容ll。
    之前要将内容写进一个文档内部,要打开文档进行编辑,但是这里的话我们直接用echo “内容” > 文档名,则可以直接把内容写进这个文档,但是是覆盖的,用>>的话就是追加。
  14. head:显示文档的头几行;tail,显示文档的最后几行。
    -n:如head -n 5 info,那就是显示文档info的前5行
    tail还有一个很有趣的操作,那就是tail -f  info实时监控跟踪文档info,可以再开一个进程来展示。(ctrl+c退出监控)。
  15. ln -s软链接,类似于快捷方式。
    基本语法:ln -s [源目录或者目录] [软链接名称] (注意这里可以创建一个链接到某个目录(文件)下面,不单单是文档)。
    //不常用ln 硬链接:ln  [源目录或者目录] [软链接名称] 每一个文件对应的都有一个inode,这个硬链接相当于在原来的inode搞了一个新的链接指向它,创建出来的方式完全不影响。
  16. sudo:super user do,也就是超级用户,可以执行一般不能干的命令,如在安装软件的时候就会用到这个命令。
  17. apt相关的命令
    sudo apt update:列出所有的可更新软件名单
    sudo apt upgrade:升级软件包
    sudo apt install<package>:安装软件package
    sudo apt update<package>:更新指定的软件
    sudo apt remove <package>:删除指定的软件
    sudo apt search <keyword>: 寻找关键字
  18. gcc:c的编译器
    编译过程:

     

     


    -o:用来指定输出的文件
    -E:将test.c预处理成test.i
    -S:将test.i汇编成test.s文件;
    -c:将test.s文件编译成test.o文件;
    gcc test.c:直接预处理,编译,汇编,生成可执行文件
    gcc test.c -E -o test.i:预处理test.c为test.i
    gcc test.i -S -o test.s:test.i编译成test.s文件;汇编代码后缀.s
    gcc test.s -c -o test.o:汇编可执行文件;
  19. ar打包:一般用于打包库文件,生成库
    ar   rcs   lib库文件名.a     所有的.o文件
    要是gcc main.c -o app的时候要包括头文件的路径-I(大写i),包括库的名称-l(小写l),包括库的路径-L。(也就是执行的时候main.c包含了头文件.h,当然也要包含头文件的.c文件,才能执行)
    上图中的库代码的生成就是这个静态库的打包,首先把需要打包的.c文件生成.o可执行文件,再把.o文件生成一个lib库,最后要把这个库,还有头文件放在同一个目录下才能编译成功
  20. g++编译器的使用,
    其实g++是调用了gcc,只是在最后的链接过程中用到了g++,其实前面还是一个gcc的过程。
    gcc和g++的误区:
    .c文件gcc会当作是c代码来处理,g++当作是c++代码处理。
    .cpp文件gcc和g++都是当作c++处理。
    在链接之前的阶段g++都是调用的gcc,所以两者的过程是一样的,但是最后的链接过程一定是g++了。
    gcc不会定义一个__cplusplus宏,但是g++会,这个宏是一个标志,定义了则是c++,不然就是c


posted @ 2022-09-16 17:48  铜锣湾陈昊男  阅读(15)  评论(0)    收藏  举报