Linux 基础操作和常用命令
- 按 Ctrl+Alt+t 快捷键或者双击桌面的“Terminal”调出伪终端(命令行窗口)。
- 在终端窗口,按Ctrl+C 强行停止当前正在执行的命令或程序。
- 关机命令:在终端窗口,输入命令:poweroff
- su - [用户名] 命令,用于切换用户。su 切换到root用户。exit返回。
- passwd命令,改用户密码。
- grep命令,用来在文件中查找字符串。
- chmod命令,修改文件权限,使用 "+" 设置权限,使用 "-" 用于取消
- chown命令,修改文件所有者
- chgrp命令, 修改文件所属用户组
- cp命令,拷贝文件
- echo命令,显示字符串
- find命令,查找文件
- ls –al命令,列出当前目录的所有文件信息,包含隐藏文件
- ps命令,查看进程(瞬间)。 ps -ef ps -ef|grep 相应的进程名称
- kill命令,发送信号。 kill -signal PID kill -9 PID (进程号) 杀死一个进程
- top命令,动态显示进程,也会提供cpu 信息和内存信息,可持续的监视进程的信息。
- man命令,查看命令帮助信息。
- df 命令查看文件系统的磁盘状态。 du命令统计目录(或文件)占磁盘大小
- cd命令,改变当前路径。“.”表示当前目录,“..”表示上一层目录
- pwd命令,显示当前路径。
- touch命令,修改文件的时间戳,或创建文件。
- mkdir命令,创建目录。
- rm命令,删除文件 rmdir命令 ,删除目录。
- cp命令 ,复制文件 mv命令,移动文件
- cat命令,显示文本内容 alias命令,给命令起别名
- zip/unzip命令,将目录或文件压缩/解压成zip格式。
- tar命令,将多个文件打包,加指定参数可以进行解压或压缩。
- ifconfig命令,查看和配置网络接口的地址和参数,如ip地址
- netstart命令,显示网络连接、路由表和网络接口信息
- ping命令,查看网络上的主机是否在工作
- mount命令,挂载文件系统
- head命令,显示文件前几行内容; tail命令,显示文件最后几行
- gcc命令,用于把C语言的源程序文件,编译成可执行程序
- time命令,用于测算一个命令(即程序)的执行时间
- vim命令,用于文本编辑,文件存在就打开,不存在就新建一个文件
- vim + 文件名 进入vim
- i:插入模式,在该模式输入文字信息。
- Esc+:w -------- 保存当前文件
- Esc+:q -------- 退出当前正在编辑的文件(会提示是否保存)
- Esc+:q! -------- 强制退出当前文件,不保存修改
- Esc+:wq -------- 保存当前文件并退出
- Esc+:w filename -------- 存在名为filename的文件里
- Esc+:set nu -------- 显示行号。(:set nonu取消显示行号)
Linux C语言开发常用编辑器vi,编译器GCC,调试器GDB,工程管理器make和集成开发环境eclipse
vim hello.c 新建一个c文件
gcc hello.c 会在当前路径下生成a.out,运行: ./a.out
gcc hello.c -o hello hello是输出的文件名 运行: ./hello
gcc –Wall hello.c -o hello 输出gcc所有有用的报警信息。
gdb调试:先gcc编译生成可执行文件才能用gdb进行调试
gcc –g test.c –o test 一定加上-g编译出的可执行代码中才包含调试信息。
gdb test 开始调试test
“l” 查看文件内容 “b+对应行号” 设置断点
“info b” 查看断点情况 输入“bt(backrace)”可以查到调用函数(堆栈)的情况
“r(run)” 运行代码 “P+变量名” 查看变量值
“n”或“s” 单步运行 若有函数调用,s会进入该函数继续单步运行,n不进入该函数
“c” 恢复程序运行 “help”查找gdb命令 “q”退出gdb
- 程序由多个源文件组成,源文件越多,gcc的命令行越长,用gcc编译程序也很麻烦。
- 调试程序一般只会修改一部分文件,而用gcc编译会把那些没修改的文件一起编译,影响了编译的效率。
Make是工程管理器,是一种可以提高编译效率的可以实现自动编译的工程管理器。
Make实现自动编译主要体现在以下两点:
- 按照Makefile的编译规则
- 通过检查时间戳检查文件是否被修改,没修改则不会被编译
Makefile文件是脚本文件,需要使用脚本语言。脚本一般用来实现批处理,脚本语言一般做测试用。 Makefile三元素:目标文件,依赖文件,运行的命令。
一般用autotools制作makefile
Linux中标准IO和文件IO的区别
文件描述符
- 每个打开的文件都对应一个文件描述符
- 文件描述符是一个非负整数。 Linux为程序中每个打开的文件分配一个文件描述符
- 文件描述符从0开始分配, 依次递增。
- 文件IO操作通过文件描述符来完成
- 当程序运行的时候,系统会默认打开3个流:标准输入、标准输出、标准错误,所对应的件描述符分别是0、1、2
Linux根目录下包含的目录
Linux下的7种文件类型
- 普通文件类型 (-)
Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-] ,这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具... .... 或 cp工具等。这类文件的删除方式是用rm 命令。 - 目录文件 (d)
就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx] ,创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。 - 块设备文件(b)
块设备文件 : 就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b] - 字符设备(c)
字符设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c] - 套接字文件 (s)
这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型 - 管道文件 (p)
FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p] - 符号链接(l)
当我们查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln -s 源文件名 新文件名 。上面是一个例子,表示setup.log是install.log的软链接文件。怎么理解呢?这和Windows操作系统中的快捷方式有点相似。