常用的Shell命令

当用户登录到字符界面系统或使用终端模拟窗口时,就是在和称为shell的命令解释程序进行通信。当用户在键盘上输入一条命令时,shell程序将对命令进行解释并完成相应的动作。这种动作可能是执行用户的应用程序,或者是调用一个编辑器、GNU/Linux实用程序或其他标准程序,或者是一条错误信息,告诉用户输入了错误的命令。

1.目录操作

mkdir  abc          创建一个目录abc

cd   abc            将工作目录改变到abc

cd                  改变当前目录到主目录

ls                  列出当前目录的内容

ls  -l              输出当前目录内容的长列表,每个目录或文件占一行

pwd                 显示当前目录的全路径

2.文件显示实用程序

cat  mx.c            显示mx.c文件内容

more  mx.c           分屏显示mx.c内容

tail  mx.c           显示文件后几行

cat  file1  file2    连接file1 和file2

head  filename       显示文件filename的开始10行

wc  filename         统计文件filename中的行数、单词数和字符数

od  文件             查看非文本文件

3.文件管理实用程序

cp  file1  file2     将文件1复制到文件2

mv  file1  file2     将文件重命名为file2

rm  filename         删除文件filename

rm  -i  filename     请求用户确认删除

4.数据操作实用程序

tty                  显示当前终端的路径和文件名

who                  显示当前登录用户的列表

sort  filename       显示文件filename中的行的排序结果

spell  filename      检查文件filename中的拼写错误

5.其他实用程序

date                 输出系统日期和时间

cal                  显示本月的日历。cal 2002 显示2002年的日历

clear                清除终端屏幕

history              显示你以前执行过的命令的列表

man                  显示实用程序的有用信息,并提供该实用程序的基本用法

echo                 读取参数并把它写到输出

4、熟悉gcc编译器

GNU/Linux中通常使用的C编译器是GNU gcc。编译器把源程序编译生成目标代码的任务分为以下4步:

a. 预处理,把预处理命令扫描处理完毕;

b. 编译,把预处理后的结果编译成汇编或者目标模块;

c. 汇编,把编译出来的结果汇编成具体CPU上的目标代码模块;

d. 连接,把多个目标代码模块连接生成一个大的目标模块;

1.使用语法:

  gcc [ option | filename ]...

  其中 option 为 gcc 使用时的选项,而 filename 为 gcc要处理的文件。

2.GCC选项

GCC的选项有很多类,这类选项控制着GCC程序的运行,以达到特定的编译目的。

⑴全局选项(OVERALL OPTIONS)

全局开关用来控制在“GCC功能介绍”中的GCC的4个步骤的运行,在缺省的情况下,这4个步骤都是要执行的,但是当给定一些全局开关后,这些步骤就会在 某一步停止执行,这产生中间结果,例如可能你只是需要中间生成的预处理的结果或者是汇编文件(比如你的目的是为了看某个CPU上的汇编语言怎么写)。

①  –x  language

对于源文件是用什么语言编写的,可以通过文件名的后缀来标示,也可以用这开关。指定输入文件是什么语言编写的,language 可以是如下的内容

a.  c

b. objective-c

c. c-header

d. c++

e.cpp-output

f.assembler

g.assembler-with-cpp

②–x none

把-x开关都给关掉了。

③  –c

编译成把源文件目标代码,不做连接的动作。

④–S

把源文件编译成汇编代码,不做汇编和连接的动作。

⑤–E

只把源文件进行预处理之后的结果输出来。不做编译,汇编,连接的动作。

 –o file (常用)

指明输出文件名是file。

⑦–v

把整个编译过程的输出信息都给打印出来。

⑧–pipe

由于gcc的工作分为好几步才完成,所以需要在过程中生成临时文件,使用-pipe就是用管道替换临时文件。

⑵ 语言相关选项(Language Options)

用来处理和语言相关的选项。

①–ansi

这个开关让GCC编译器把所有的GNU的编译器特性都给关掉,让你的程序可以和ansi标准兼容。

②–include file

在编译之前,把file包含进去,相当于在所有编译的源文件最前面加入了一个#include <file>语句,

③–C

同-E参数配合使用。让预处理后的结果,把注释保留,让人能够比较好读它。

⑶连接开关(Linker Options)

用来控制连接过程的开关选项。

① –llibrary

连接库文件开关。例如-lugl,则是把程序同libugl.a文件进行连接。

② –lobjc

这个开关用在面向对象的C语言文件的库文件处理中。

③ –nostartfiles

在连接的时候不把系统相关的启动代码连接进来。

④ –nostdlib

在连接的时候不把系统相关的启动文件和系统相关的库连接进来。

⑤–static

在一些系统上支持动态连接,这个开关则不允许动态连接。

⑥shared

生成可共享的被其他程序连接的目标模块。

⑷目录相关开关(Directory Options)

用于定义与目录操作相关的开关。

–Ldir

搜寻库文件(*.a)的路径。

调试开关(Debugging Options)

–g

把调试开关打开,让编译的目标文件有调试信息。

–V version

用来告诉编译器使用它的多少版本的功能,version参数用来表示版本。

5、掌握Linux下C程序编辑运行过程

Linux下编写C程序要经过以下几个步骤:

⑴启动常用的编辑器,键入C源程序代码。

例如,点击应用程序/附件/文本编辑器,进入编辑环境,输入C源程序,保存并命名为hello.c

# include <stdio.h>

void main(void)

{

Printf(“Hello world!\n”);

}

⑵编译源程序

点击应用程序/附件/终端,进入命令行。用gcc编译器对C源程序进行编译,以生成一个可执行文件。方法:

gcc  -o  hello.out  hello.c ↙

⑶运行可执行文件

·/hello.out ↙

注:命令行中 -o选项表示要求编译器输出可执行文件名为hello.out文件,hello.c是源程序文件。

熟悉LINUX系统的更多相关文章

  1. Windows系统使用putty远程连接DigitalOcean创建的Linux系统(CentOS6.7为例)

    大部分vps提供网站都会在网站上提供一个控制台界面,方便操作远程vps.但是使用起来特别不方便,尤其在一个神奇的国家,打开国外网站都困难,何况还要在网站上不断的操作.这一教程记录如何在Windows系 ...

  2. 三大linux系统对比

    概述: centos作为服务器部署是第一选择.CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,丰富的帮助文档和社区的支持. ubuntu最佳的应用领域 ...

  3. Linux系统故障分析与排查--日志分析

    处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点,“对症 ...

  4. linux系统故障分析与排查

    在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点.“对 ...

  5. 实验 1 Linux 系统的安装和常用命令

    实验 1 Linux 系统的安装和常用命令 (题目) 一.实验目的 (1)掌握 Linux 虚拟机的安装方法.Spark 和 Hadoop 等大数据软件在 Linux 操作系统 上运行可以发挥最佳性能 ...

  6. 『学了就忘』Linux基础 — 15、了解Linux系统的目录结构

    目录 1.一级目录说明 (1)一级目录列表 (2)/bin/和/sbin/目录说明 (3)/boot/目录说明 (4)/lib/和/lib64/目录说明 (5)/lost+found/目录说明 (6) ...

  7. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  8. 忠告初学者学习Linux系统的8点建议

    导读 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到另一个目录下面,磁盘合理划分,甚至 ...

  9. 总结四条对学习Linux系统有帮助的方法

    网络是一个很神奇的东西,现代人的生活离不开网络,网络已深入人们的工作,生活,娱乐等方方面面.网络之所以无处不在,是因为它提供了诸多的网络服务,所以网络服务是网络的灵魂. 互联网上的各种网络服务是架构在 ...

随机推荐

  1. 使用Gitlab一键安装包后的日常备份恢复与迁移

    Gitlab 创建备份 使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份: gitlab-rake gitlab:ba ...

  2. gitlab之gitlab-ci和gitlab-runner<一>

    一.概述 gitlab是开源代码托管软件,有ce和ee两种版本,一般情况下ce完全能满足企业使用,如果不差钱可以使用ee版本,这里使用的是ce版.之前也一直在做CI/CD,最开始采用gitlab+we ...

  3. js设计模式总结5

    1.同步模块模式 随着页面功能的增加,系统的业务逻辑越来越复杂.多人开发的功能经常耦合在一起.有时分配任务给多人实现的时候,常常因为某一处功能耦合了很多人的代码,出现排队修改的现象,这很不利于团队开发 ...

  4. Extjs 项目中常用的小技巧,也许你用得着(5)--设置 Ext.data.Store 传参的请求方式

    1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var resultsPanel = Ext.create('Ex ...

  5. karma + jasmine 构建前端自动化测试

    http://blog.fens.me/nodejs-karma-jasmine/   很全的文档 执行karma init时报错如下: $ karma init > readline.js:5 ...

  6. 转载 HashSet用法

    NET 3.5在System.Collections.Generic命名空间中包含一个新的集合类:HashSet<T>.这个集合类包含不重复项的无序列表.这种集合称为“集(set)”.集是 ...

  7. 如何通过DataGridView 实现单元格合并和二维表头

    先看下实现出来的效果(这里随便写了几组数据,用来测试) 先初始一个DataGridView 设置哪几列 DataGridView 里男女这两列的 AutoSizeMode 可以设置Fill. publ ...

  8. Java基础——Servlet(五)

    哈哈哈...学习Servlet学了半个多月,因为中间有比较灰心的时候,有几天是啥都不学了的状态,看了好几部励志的电影.呃~还是得继续吧.本来计划是好好夯实这里的基础,结果在网找到了介绍比较全面的视频, ...

  9. 常见的NoSQL数据库

    NoSQL数据库发展迅猛,据说现在已经有上百种NoSQL数据库了,下面来了解下常见的一些NoSQL数据库 先来看张表,了解下典型的NoSQL数据库的分类 临时性键值存储 永久性键值存储 面向文档的数据 ...

  10. spring boot aop 报错

    1.控制台报错 Pointcut is not well-formed: expecting 'name pattern' at character position 33 execution(com ...