20145222《信息安全系统设计基础》Linux常用命令汇总
学习Linux时常用命令汇总
通过
Ctrl+f
键可在该网页搜索到你想要的命令。
Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
常用命令
man命令
man
命令(重要的三条):-
是普通的Linux命令
-
是系统调用,操作系统的提供的服务接口
-
是库函数, C语言中的函数
man -k
:等价于apropos
。使用man -k
找到命令后,可以用man -f cmd
查看命令的基本功能。man -k sort | grep 3
:可以更好的找到qsort。更加精确。
-
其实我之前不太清楚man命令的功能是什么,多man了几个命令后才明白:当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。
cheat命令
cheat
命令:在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。告诉你一个命令如何使用。通过使用实例告诉你一个命令如何使用。
用法:cheat+命令名。
其他常用命令
ls
:显示是当前目录的内容。ls -a .
:显示当前目录中的所有内容,包括隐藏文件和目录。
find命令
find
命令:查找一个文件在系统中的什么位置。
find的使用格式如下:
$ find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作>: 对搜索结果进行特定的处理。
举例:
$ find . -type f -mmin -10
搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录
locate命令
locate
:神速版本的find
。
locate命令是"find -name"的另一种写法,但更快,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。在使用locate之前,先使用updatedb命令,手动更新数据库。
locate命令的使用实例:
$ locate /etc/sh
搜索etc目录下所有以sh开头的文件。
$ locate ~/m
搜索用户主目录下,所有以m开头的文件。
$ locate -i ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
whereis和which命令
whereis
which
:告诉你使用的命令工具装在什么地方。which+命令或文档文件
比where+命令或文档文件
更加精确。
区别:
which (寻找执行档) :这个指令是根据PATH这个环境变量所规范的路径,去搜寻执行档的档名,所以,重点是找出执行档而已,which 后面接的是完整档名
whereis (寻找特定档案):搜寻linux数据库档案中所记录的东西,和locate的主要区别在于后面的参数
locate:搜寻linux数据库档案中所记录的东西,后面直接跟档案的部分名称就行
find:直接搜索整个硬盘区别
grep命令
grep
命令:对文件全文检索,比如你接手一个C语言项目,里面有上百个C源文件,想找找main函数在那个文件中,你可以通过grep -n main *.c
,快速找到main在哪个C文件中并指出在第几行。
这条语句可以用来查找关键字,全文搜索,并且可以直接查找文件内的内容。其中:
n:为显示行号
r:为递归查找
例如,如果想查找某个宏,我们已知宏保存在include文件夹中,所以可以使用下列语句:
grep -nr XXX /usr/include(XXX为所要找的宏)
cat命令
命令说明: 查看文件内容,也可以给文件追加内容到结尾
语法:cat [-AbEnTv]
参数:
-A :相当于-vET的整合参数,可以列出一些特殊字符,而不是空白而已 -b :列出行号,仅对非空行号显示,空白行不标记行号
-E :将结尾的断行字符$显示出来
-n :打印出行号,连同空白行也有行号,与-b参数不同
-T :将[tab]按键以^I 显示出来
-v :列出一些看不出的特殊字符
touch
命令功能:
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
命令格式:
touch [选项]... 文件...
命令参数:
-a 或--time=atime或--time=access或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
常用命令行
apt-cache search
-
apt-cache search
:在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,有才可以安装。apt-cache search ddd
:查查有没有ddd
这个程序。
常用使用方法:
1、apt-cache show package_name: 显示指定软件包的信息,包括版本号,安装状态和包依赖关系等.2、apt-cache search package_name:搜索软件包,可以按关键字查找软件包,通常用于查询的关键字会使用软件包的名字或软件包的一部分.
3、apt-cache showpkg package_name:显示软件包的依赖关系信息.
4、apt-cache stats:显示当前系统所使用的数据源的统计信息,用户可以使用该命令查看数据源的相关统计信息.
5、apt-cache policy package_name:显示软件包的安装状态和版本信息.
6、apt-cache depends package_name:显示指定软件包所依赖的软件包。当用户需要了解某个软件包依赖于其他哪些包时,可以使用apt-cache depends来查询包依赖关系.
7、apt-cache rdepends package_name:查询指定软件包的反向依赖关系,即那些其他的软件包需要依赖你所指定的软件包做为安装和运行的必须条件.
8、apt-cache dump:显示缓存中的每个软件包的简要描述信息.
9、apt-cache unmet:显示不符合一致性的依赖关系.
关于代码的编写、编译到运行的命令行
-
mkdir+xxx(文件名)
:在当前目录下新建一个文件夹。 -
vim+xxx.c
:建立一个文本文档,可在该文本文档下编写代码。 -
预处理:
gcc –E hello.c –o hello.i
:gcc –E调用cpp 产生预处理过的C原始程序 (以hello.c为例) -
编 译:
gcc –S hello.i –o hello.s
:gcc –S调用ccl 产生汇编语言原始程序 -
汇 编:
gcc –c hello.s –o hello.o
:gcc -c 调用as 产生目标文件 -
链 接:
gcc hello.o –o hello
:gcc -o 调用ld 产生可执行文件 -
运行:
./hello
注意:
gcc的一般格式为:
gcc [选项] 要编译的文件 [选项] [目标文件],
其中,目标文件可默认,gcc默认生成可执行的文件,名为编译文件.out.