一. Linux主要目录:
- /: 为根目录 (/home: 先到达根目录,在到home目录);
- /bin:可执行文件的目录,如常用命令ls、tar、mv、cat等;
- /etc:系统配置文件存放的目录,不建议存放可执行文件;
- /home:系统默认的家目录
- ~表示当前的家目录 == /home/ezreal
- ~edu表示用户edu的家目录
二. Linux文件特点与格式
- Linux文件或者**目录(文件夹)**名称最长有256个字符
- 以 . 开头的文件为隐藏文件,需要用ls命令用参数**-a**才能显示
- . 代表当前目录
- … 代表上一级目录
- ~表示家目录 == /home/用户名(ezreal)
- 在ubantu中目录(文件夹)为蓝色,文件为白色
- 文件和目录同名
三. 常用命令:
终端命令格式:command [-options] [parameter] (中括号表示可选)
- command:命令名,相应功能的英文单词或英文的缩写;eg:ls,pwd,rm,cd,touch,mkdir等
- [-options]:选项,可用来对命令进行控制,也可以省略,eg: -r,-g,-o等;
- parameter:传给命令的参数,可以是零个、一个或者多个,eg:文件名,目录名等;
- ls : 查看当前文件夹下的内容(list)
- pwd:显示当前文件的路径(print work directory)
- cd+空格+目录名:切换到指定的目录名的文件夹(change directory)
- touch+空格+文件名:在当前路径下新建文件夹
- mkdir+空格+目录名:创建目录(make directory)
- rm+空格+文件名:删除指定文件(remove)
- clear:清屏
四. 小技巧:
- ctrl+shift+= 放大终端窗口;
- ctrl± 缩小终端窗口;
- 查询命令(command)的常用选项和参数
-
command --help
-
man command(详细)
- 空格键:显示手册下一屏
- Enter键:一次滚动手册一页
- b:回滚一屏
- f:前滚一屏
- q:退出
-
- shift+insert : 复制;ctrl+insert :粘贴
- 自动补全:输入命令/文件/目录后按tab会自动补全
五. 命令的选项详解:
- ls: 查看当前文件夹下的内容
- **-a:**显示隐藏的文件
- **-l:**以列表方式显示文件的详细信息
- -h:配合 -l 以人性化的方式显示文件大小
- 通配符(低配版正则表达式)
- *** :代表任意个数个**字符
- **?:**代表任意一个字符,只能是一个
- []:表示可以匹配字符组中的任一一个
- [abc]:匹配a、b、c中的一个
- [a-f]:匹配从a到f范围内的任意一个字符
- **cd:**切换到指定的目录名的文件夹(change directory)
- cd :切换到当前用户的主目录(/home/用户目录)
- cd **:**切换到当前用户的主目录**(/home/用户目录)(即**表示/home/用户目录或称为家目录)
- cd. :保持在当前目录
- cd…:切换到上级目录
- cd - :可以在最近两次工作目录之间来回切换
- **touch:**在当前路径下新建文件夹,也可以指定路径
- 如果文件不存在,则创建新文件
- 如果文件存在,则可以修改文件的末次修改时间
- **mkdir:**创建目录
- -p :连续创建子目录(递归创建)e.g:mkdir -p a/b/c/d
- **rm:**删除文件
- 删除的文件不能恢复
- **-f:**强制删除,忽略不存在的文件,无需提醒
- **-r:**递归地删除目录下的内容,删除文件夹必须加此参数
- 删库:/rm -rf *
- tree[目录名]:以树状图列出文件目录结构
- **-d:**只显示目录
- **cp:**复制文件或目录; 语法:cp 源文件路径 目标文件路径(可自行命名)
- **-i:**提示是否覆盖目标文件的内容(即把源文件的内容复制到目标文件)
- **-r:**复制目录
- mv:移动文件或目录,也可以给文件或目录重命名;语法:mv 源文件(路径) 目标文件(路径)
- 参数1一般是路径下的文件
- 参数2一般是要移动到的文件目录或者路径
- 若参数2是与参数1一模一样的路径,但文件名不同就表示给该文件重命名(但内容与参数1的内容一样,覆盖原来参数2的文件,目录则不会)
- **cat 与 more:**显示文件里面的内容
- cat:一次性显示全部内容(内容短用这个)
- **-b:**显示内容的行号(不包括空行)
- **-n:**显示内容的行号(包括空行)
- more:分屏显示全部内容(内容长用这个)
- cat:一次性显示全部内容(内容短用这个)
- **grep:**查找指定文本中的指定内容;语法:grep 搜索内容(可用正则表达式) 指定文本
- -n:显示指定内容的行号
- -v:显示不包含指定内容的行中的内容(单独使用不包括行号)
- -i:指定内容不区别大小写
- 若搜索的内容之间有空格,则需要用引号引起来
- **vi:**编辑文本中的内容;语法:vi 当前目录下的文件名
- 命令行模式
- a:在光标后插入文本
- i:在光标前插入文本
- h:左移一个字符
- j:下移一个字符
- k:上移一个字符
- l:右移一个字符
- [n]yy :复制当前的n行
- p:在当前行粘贴
- [n]dd:删除当前的n行
- ctrl+g:返回当前光标所在的行数
- x: 删除光标处的字符
- 插入模式
- ESC:进入命令行状态
- :q :退出没有修改的文件
- :q!:强制退出,不保存文件
- :w :保存文件但不退出
- :x :保存文件并退出
- :wq :保存文件并退出
- ctrl+s:锁定当前屏幕
- ctrl+q:解除锁定
- 底行模式
- 命令行模式
- **gdb:**调试C/C++(使用前提:在 **gcc **编译的时候要带上 -g 参数)
- **r:**运行程序
- **quit:**退出程序
- **list:**查看源码
- **break:**打断点
- **next:**向下执行一行
- **info b:**查看打断点的位置
- **step:**进入某一个其他函数(除了main函数外)
- **set logging on:**开启日志模式
- **watchpoint:**开启观察点,观察变量是否改变
六. Linux运行C/C++的方法:
- 打开Ubantu linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。
- 可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vi test.c
- 编写完了这个代码。现在开始编译源文件。在终端中输入:gcc test.c,gcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc +vim+gdb三个自带的工具就可以了。
- 打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一**般linux系统就默认为a.out为编译完的文件。**现在运行a.out文件。在a.out文件的目录下打开终端并输入./a.out就是运行文件了。
- 如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c -o test.out然后就可以看见有一个test.out.文件 了。
- 再运行test.out在终端中输入./test.out结果如图。这样在linux系统下编译并运行C语言就完成了。