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

浙公网安备 33010602011771号