您的位置:首页 > 运维架构 > Linux

Linux学习笔记。。。

2012-03-09 19:25 183 查看
2.Linux下C的开发环境

C的开发环境

编辑器:VI,VIM   Vim:tab切换gt   :wq  :q! 保存

编译器:GNU C/C++编译器gcc

调试器:gdb

函数库:glibc

系统头文件:glibc_header

gcc 是GNU推出的多平台编译器,能将C,C++语言源程序编译,连接成可执行文件。

.i为后缀的文件,是已经预处理的C源代码文件

.O  是编译后的目标文件

.s是汇编语言源代码文件

vim dd删除一行   D:删除光标位置到结尾的东西  dw删除一个词

查询命令:/lxt lxt为查找的字符串

替换字符:命令模式下,替换光标所在的字符,先按r,在按要替换的字符

拷贝一行:帮光标移动到该行,按yy ,然后把光标定位到要黏贴的行,在按p键

拷贝多行 nyy  n代表行数

gcc -o hello hello.c

-o  要求编译器给出的输出的可执行文件名为Hello

-c 不产生可执行文件,只要求编译器输出目标代码

-g 要求编译器在编译的过程提供我们以后对程序进行调试的信息。

执行./hello 看到程序输出结果

集成开发坏境IDE:

Kylix:号称Linux 下的dephi

Kdevelop

RHIDE:类似与Turbo C++

Glibc 是必不可少,是Linux下C的主要函数库。

Glibc2 含有几个附加包: LinuxThreads线程,local本地化 ,crypt加密。

Glibc是提供系统调用和基本函数的C库,比如open,malloc ,printf等。所有的动态连接的程序都要用到它。

通过rpm包来安装各种环境包。

gcc包需要依赖binutils和cpp包,make包也是在编译中常用的,一共需要八个包来完成安装。

查看glibc的版本

 ls  /lib/libc-*

查看gcc编译器的版本号  gcc  --version

使用gdb进行调试

对于一个C程序,安装完成后可以分成三个组成部分:

1.可执行文件 2.包含文件 3.库文件

 可执行文件就是最终运行的命令,包含文件是该C程序include的一些定义文件,

库文件则是该C程序库自定义的库。

比如RPM安装的MYSQL数据库

可执行文件放在:/usr/bin下

包含文件:/usr/include/mysql

库文件:/usr/lib/mysql

3.Linux基础

shutdown -h now 关机 (推荐)

shutdown -r now 重启 (推荐)

reboot 快速重启 (跳过sync过程)

init 0 关机  init 6重启

halt系统停机

Linux系统结构:

硬件-->Kernel--->Shell-->外层应用程序

Linux目录结构:

/ 根目录包括:/bin包括系统工具  ,/usr ,/etc,/tmp ,/lib  ,/var  /home 保存用户主目录,/opt

/usr 包括bin ,local,src 

/etc rc.d,rc.d包括:rc3.d, rc5.d, init.d 

/var 包括:named ,httpd, ftp

ftp下包括:bin ,etc ,pub

存放命令的目录:/bin  /sbin   ,/usr/bin应用程序的可执行文件 , /usr/sbin/, /usr/local/bin

/boot 内核以及其他系统所需文件

/opt 安装大的应用程序  /tmp 临时文件    /lost+found系统恢复过程中的恢复文件    /root 超级用户的主目录

/dev -device设备目录  

b---block块设备     c-character字符设备   

Linux的硬件设备对应文件

光驱设备/dev/cdrom

软驱/dev/fd0

/etc配置文件所在目录

启动引导程序/etc/lilo.conf   /etc/grub.conf 多系统引导时,可设置默认启动的系统等等。

控制启动模式 /etc/inittab图形/文本登陆  3文本模式,5为图形模式

文件系统配置 /etc/fstab

/etc/profile 增加环境变量等(修改PATH等) 如配置JAVA/J2EE开发环境

/etc/ftp*  ftp的配置文件

/etc/httpd  web服务器的配置文件

/etc/ssh*  ssh的配置文件

对文件/etc/inittab修改如下:

停止系统:init 0 halt  poweroff  shutdown 

文字界面启动init 3

图形界面启动init 5

单用户模式init 1  init single

/home用户主目录

useradd username 创建新用户

passwd  username 添加密码

/etc/passwd:系统能识别的用户清单,注:纯文本显示加密了的口令,普通用户可读

/etc/shadow:超级用户才能读,用于保护加密口令的安全,即隐藏口令

/lib根目录下的目录

/lib系统所用的库  如C 程序库

/lib/modules/2.4.20-8/kernel/drivers 驱动模块

/usr/lib/应用程序使用的库 如MySql的API

/mnt目录

光驱的装载:  mount -t iso9660 /dev/cdrom/mnt/cdrom

              mount -t 文件类型 设备文件  挂装目录

卸载        unmount   /mnt/cdrom

软驱的使用:  mount -t fstype /dev/fd0 /mnt/floppy 

/usr 用户目录

/usr/doc  /usr/share/doc帮助文档

man命令 查看命令的手册页

info 命令 查看命令的帮助

命令 --help 

/usr/src/linux-2.4.20-8/  Linux 源代码

了解所用硬盘信息

mount所挂装分区

fdisk -l [/dev/had]硬盘分区情况

df -h 硬盘分区的使用情况

du -sh目录占用空间

uname -a 所使用Linux的版本号.

Linux常用命令

mkdir 创建目录

rm -r -f为提示选项,加为不提示 递归删除目录 ,并且不提示

rmdir 删除空目录

pwd 查看当前目录

cd 切换目录

ls(list)-->dir

格式:ls [参数][路径或文件名]

参数:-a -l显示文件的详细信息  -R递归显示所有目录和文件   -d不递归

more/less 文件:查看文件内容

cat 显示所指文件的内容

mv (move)

cp (copy) -f 直接覆盖  -I 提示是否覆盖    —R递归的拷贝

Linux文件类型

特殊文件 设备文件(b,c) 和管道文件(p)

连接文件(l), 目录文件(d)  普通文件(--)

ls -l 查看文件的类型

文件类型对应颜色配置文件:/etc/DIR-COLORS

检查文件系统

fsck 修复磁盘 ,当系统非正常关机,无法进入系统,可以执行fsck修复磁盘。

fsck -p -t ext2 /dev/hda2

改变文件的访问权限

符号标记法 chmod (ugoa)(+-)(rwx)  filename /filelist

     例子:chmod g+w o-x /usr/local/*

数字标记法:4(100)读 , 2(010)写,1(001)执行,0(000)无权限 

例子:chmod 755 /usr/local/*

标准文件

标准输入文件:键盘,所有的打开文件,包括标准文件,以0标志。

标准错误文件:监视器,文件描述符2赋给标准错误文件

标准输出文件:监视器称为标准输出文件,用1来描述

tar打包工具

.tar.gz 表示打包了并且进行压缩.tar.gz

rmp包:RedHat 公司提供的软件包封装格式.rpm

dpkg包:Debian 提供的软件包封装格式.deb

rpm -ivh rpm包 安装rpm包

rpm -Uvh rpm包  升级rpm包

rpm -e rpm包  删除rpm包

rpm -qi 包名称   列出信息  查包信息

rpm -qf 'which 命令'  显示命令所在包

rpm -ql 包名称    列出包中的文件列表

tar cvf home.tar /home  创建tar包,查看详细信息 ,f包的名

tar czvf home.tar.gz  /home   打包进行压缩   

bzip2 filename -->filename.bz2

bunzip filename.bz2

gzip和gunzip

zip和unzip

rar 

cd /进入根目录

cd  ..返回上层目录

创建一个用户就会在home目录下创建一个文件夹

Shell脚本基础

Shell 可以读取一个文件并执行其中的命令。这个文件被称为脚本文件

执行Shell 脚本:要创建一个shell脚本,你要使用任何编辑器编写

为了使用bash shell 来执行脚本magic ,其命令是: bash magic 或 ./magic

echo命令:用与在屏幕上显示消息 

 echo " This is an example of the echo command".

#符号:用于在shell脚本中可以包含注解入口

创建变量:语法:<variable name>=<value> Linux中所有的变量都被当做字符串

引用变量:$符号用于引用一个变量的内容,variable1=${variable2}

读入值给变量:使用read命令,读取用户的输入 ,$ read fanme 从键盘中输入一个值给变量

局部变量:当引用shell时,只有创建它的shell能够知道变量的存在

全局变量:称为子shell,shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。

环境变量:通过改变这些变量的值,用户能够定制此坏境。如:HOME,PATH,PS1,PS2,LOGNAME,SHLVL,SHELL

echo $HOME 输出当前用户的主目录

PATH:搜索可执行程序的目录

PS1:为提示变量

PS1="HELLO>" 回车 提示符变了

PS2:是为第二个提示符设置值的环境变量。

LOGNAME变量:包含用户注册的名字。

SHLVL变量:该变量包含你当前工作的Shell

SHELL变量:环境变量存储了用户的缺省的shell

env命令:查看现有的环境变量。

命令替换:echo "The date is `date`"

expr命令:用于求值算术表达式  expr 4 + 5 将9显示屏幕上,4前后都有空格。

算术展开:$(())

条件执行:test和[]命令

求值表达式,并返回true(1)或false(0)

串测试test 文件的状态测试都可以用test

exit命令:用户终止shell脚本的执行并返回到$提示符下。

数值测试:-eq:等于则为真  -ne 不等于为真

 -gt:大于为真: -ge:大于等于为真

-lt:小于为真

字符串测试: =:等于为真 ,!=:不等于为真

文件测试:-e 文件名:如果文件存在则为真  

          -r        如果文件存在并且可读为真

           。。。

    -a并且, -o或者,!非

终止后台进程:kill 278

查看一个命令所花的时间:

time find /etc -name "passwd" 2> /dev/null

管道的介绍

垂直跳(|)是管道字符

它指示shell:'|'前面的命令的输出作为'|'之后命令的输入发送

例如:ls -l |more  分页显示

chmod a+x First.sh为所有的用户为文件First.sh添加执行权限

ps查看当前运行的进程

     

复制搜索

复制搜索
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息