LinuxC语言笔记

一、计算机语言的发展

机器语言:

是计算机唯一执行的语言

指令有0与1组成,就机器码

不同类型机器有不同机器码 所有不具有移植性


汇编语言:

使用 助记符 代替机器码

不具备移植性


高级语言:

移植性好


4L

面向问题的语言

仅需要告诉计算机做什么, 不需要指挥计算机如何做

如 SQL语言以及各种查询



自然语言

运用人工智能,以接近口语的指令指挥计算机,如语音

还没有成熟


二、C语言的特性

语言简洁、紧凑

预算符丰富

生成目标代码质量搞,程序执行效率高

移植性好(较之汇编语言)

可以直接操作硬件、 内存

使用范围广


C语言现状

  LINUX内核开发

  基于LINUX嵌入式开发


开发环境构成

编辑器:VI

编译器:gnu c/c++ 编译器gcc

调试器:gdb

函数库:glibc

系统头文件:glibc_header


查看glibc版本

ls /lib/libc-*

查看GCC版本

gcc --version


文件目录介绍

/-

 存放命令的目录

  /bin    系统工具

 /sbin   系统管理员服务的工具命令

  /usr/bin  普通应用程序的可执行文件 

 /usr/sbin 普通应用程序的可执行文件

 /usr/local/bin  本地的可执行文件

 /boot 内核和其他系统启动所需要文件

 /opt 安装大的应用程序

/tmp 临时文件

/lost + found 系统修复过程在的恢复的文件

/root 超级用户的主目录

/dev 设备文件

      b -- block 块设备

      c --- character字符设备

      linux的硬件设备对应的文件

     光驱设备 /dev/cdrom

     软驱:/dev/fd0

/etc配置文件目录

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

   控制启动模式: /etc/initab (图形/文本登录)    init 0 halt  poweroff  shutdown    重新启动 init 6 reboot      文字界面启动 init 3    图形界面启动 init 5     单用户模式   init 1  init single

   文件系统配置  /etc/fstab

   /etc/profile增加环境变量等(修改PATH等)

   如配置JAVA/JEE开发环境

/etc/ftp*             ftp配置文件

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

/etc/ssh*           ssh配置文件

/home目录

  /home/username  用户的默认的主目录

 useradd username  创建用户

  passwd username  添加密码

 /etc/passwd:系统能识别的用户清单

          纯文本显示加密里的口令,普通用户可读

/etc/shadow:超级用户才能读 用于保存加密的安全

 隐藏口令  

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

/lib/modules/2.6.32-41-generic/kernel/drivers  驱动模块

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



/mnt目录

   光驱的装载

       mount -t iso9660      /dev/cdrom         /mnt/cdrom

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

卸载   umount  /mnt/cdrom

软驱的使用

   mount  -t    fstype   /dev/fd0    /mnt/floppy



/usr用户目录

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

  man  命令  查看命令的手册页

  info  命令  查看命令的帮组

  命令   -- help


/usr/src/linux-header-2.6.32-41

   Linux源代码

X11  用于X Windows

bin 几乎所有的命令程序

sbin  系统管理员命令

include c 语言头文件

lib  库文件和数据文件

local  本地安装的软件

share 共享文件和数据


/var文件系统目录部分

  www  apache的文档目录 

   lib  系统运行时随时改变的文件

   local  /usr/local程序的可变数据

  log  日志文件

  spool 邮件,新闻等队列的脱机目录

 tmp  临时文件


了解 所用的硬盘的信息

 mount  所挂装分区

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

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

du   -sh 目录占用空间

uname -a查看linux版本号 


Linux常用的文件操作命令

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

rmdir 删除空目录 

ls -R递归显示目录

more/less  文件  查看文件内容


检查文件系统

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

 fsck  -p  -t ext2   /dev/hda2

应先卸载文件系统,再检查


文件查找

 find 路径 【选项】

 find /etc  -name passwd

                -size

                -type

locate -u  &

grep [参数]  'str'  filelist

   -n   显示匹配的行号

   -I   忽略大小写

   -r  递归查找



索引节点

   每个文件对有一个索引节点  使用 ls -i 查看索引节点号  

  类似通过创建的快捷方式


硬链接  与 符号连接

 符号连接:

 查看文件/目录的inode : ls -i

ln (link)

   ln [参数] 《dst>   <link name>

硬连接 同一个文件系统,不能指向目录文件

 ln 源文件  目标文件

符号连接 (软链接)

  用 -s 参数创建  l

ln -s 源文件  目标文件 

 ln -s /usr/local  local

   


linux用户类类型


文件目录的权限

rwx              rwx            rwx

owner     group        other

rwx           r-x             ---

111          101            000

7               5                 0

chmod  750  文件/目录名

chmod u+x g+w o-x  hello  拥有者添加执行权限  组添加写权限  其他者去掉执行权限


文件比较

diff   找出两个文本文件的差异

 diff [参数]  文件 

    -w 忽略所有的空格差别

   -I 忽略大小写

cmp   比较任意两个文件

 cmp [para]  <file> <file>



重定向

cat < test1  输入重向定

cat  > log 输出重定向 


常用网络命令

ifconfig

 route -n 

netstat 

软件分发格式

tar 包 

rpm 包 

dpkg包


备份格式介绍

tar cvf home.tar /home

bzip2  filename -> filename.bz2

bunzip filename.bz2

gzip gunzip

zip unzip

rar


添加用户

useradd test1

passwd test1 


Shell 记录

 echo "HEllo"

# this is a comment

echo "world"

 

变量

创建变量

 variable name = value

LInux种所有的变量值度当作字符串

引用变量

 $用于引用一个变量的内容 

 v2=${v1}


读入值给变量

在执行SHell脚本时 , shell 允许用户键盘输入一个值给变量, 可以使用read

read fname: 输入的值放到变量 fname



本地 全局  shell 变量


echo $PATH 

echo $HOME

echo $SHELL


echo "the date is `date`"

expr 4 + 5  注意之间的空格

echo $((3+4))  算数


test和[] 命令

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

if  构造


-eq   -ne   -gt   -ge  - lt   -le

字符串测试 :

= ,   != , 

-z 字符串长度为0 为真

-n   字符串长度不为0 为真



文件测试

 -e   文件存在为真

-r   存在可读为真

-w

-x

-s   存在并且至少一个字符

-d   目录文件

-f   

-c   字符型文件 为真

-b    块特殊文件为真



-a 并且    -o 或者     ! 非

if

then

elif

the 

else



控制进程的执行

请求后台处理

用于请求后台进程的符号是 (&)

wc tempfile &]

ps命令

kill 278  终止后台进程 


time 命令来查看一个命令从开始到结束所花的时间

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


管道的介绍

垂直条 (|)是管道字符

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

ls -l  | more



shell的事例

#my test shell
echo "the date is `date`"
echo "enter you name :"
read fname
echo "welcome to here "  $fname


echo "plz input pwd "


read passwds
if [ "$passwds" = "123" ]; then
echo "密码正确"


elif test "$passwds" = 'exit' ; then
echo "exit la"
      exit 1
elif [ "$passwds" -eq "456" ]; then
      echo "you  input 456"
else
echo "please input max value: "
read maxValue
echo "please input min value: "
read minValue

        echo -n "diff value is " "$((maxValue - minValue))"

case $((maxValue - minValue)) in
1) 
echo "diff 1"
;;
2) 
echo "diff 2"
;;
*) 
echo "diff nether 1 nor 2"
exit 1
;;


esac
fi
exit 0

    













你可能感兴趣的:(LinuxC语言笔记)