Linux学习笔记。。。

来源:互联网 发布:软件研发质量管理 编辑:程序博客网 时间:2024/06/05 23:57
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查看当前运行的进程


     
复制搜索