读书笔记之21天学通Linux c编程(5天)

书名:21天学通Linux c编程

(第一天)

第一章:搭建Liunx开发平台。

第二章:使用文本编辑器。

        1.vim 即visual interface improved.通过当前目录创建文件".vimrc“来配置vim文本编辑器。在文件中,":set all"可以查看需要配置的参数。

        2.shift+ZZ直接在编辑模式下,保存并推出。

        3.切换到插入模式到命令:i I a A o O

                      删除命令:xdd

                      撤销命令:uU

          4.gedit的功能及使用。

第三章:基本到Linux常用命令。

         1.pwd查看当前路径。

         2.cd切换目录:cd /根目录

                       cd..上一级

                       cd ~ 主目录

         3.ls查看目录:ls -l明细

                       ls -a全部

                       ls *.o 和 ls -l *.o定向选择所要显示到文件

         4.touch建立文件命令:touch zxg

                               ls -l zxg    touch的作用是更改文件的最后访问时间

         5.目录的创建和删除:mkdir  rmdir

         6.cp文件复制命令:cp 1.c 2.c  复制文件1.c放到当前目录,文件名为2.c

                           cpp  *.cpp  c/.  复制当前所有.cpp到目录c中

         7.mv文件移动/更名命令:mv 1.cpp 2.cpp     将前者名字更改为后者

                                      mv *.cpp c/.  将前者所有的.app文件移动到c目录下

         8.rm删除命令:rm     rmdir

         9.wc查看文件信息命令: wc test.cpp  查看文件信息

                                wc -l test.cpp  查看文件行数

                                wc -c test.cpp  查看文件字符数

         10.cat文件查看命令:cat test.cpp  在终端显示test.cpp文件中的所有内容

                             cat -n test.cpp 在现实内容的同时,显示了行号

         11.chmod文件权限设置命令:

                             r 可读取;w可写入;x可执行!

                             + 增加权限;- 取消权限! =唯一设定权限!

                         如:chmod +x test.cpp 对文件所有者添加了可执行权限;

                             chmod a+r test.cpp 对所有用户添加了可读权限;

                             chmod u+r-w test.cpp 对创建这个文件的用户添加了可读权限,取消可写权限。

                             ls -l test.cpp 显示文件的所有权限,其运行结果为:-rwxr-xr-x.第一个字符是-,如果不是-,则这个文件不是普通文件,然后在接下来的字符中,字符串的每三个字符为一组,rwx为文件所有者的权限是可读可写可执行。r-x为同组用户可读可执行不可写。r-x为其它用户可读可执行。

       12.man系统帮助命令:man ls 则会显示命令ls的含义(前提你英文很棒)

                           TAB键的命令补全功能

第四章:shell编程

       1.什么是shell?

         它是Linux内核的命令解释程序;它将用户输入的命令传递给内核执行并将执行结果反馈给用户。

       2.bash和shell的关系?

         bash是shell的一种(一句话概括)

      3.内部命令(exit export kill)在shell启动时就调入内存,外部命令需要时,才从外村读入内存!

      4.shell何时启动?

      5.通配符:?代表单个字符;*代表一个或多个字符。

                 history n 显示最后执行的n个命令,同‘上’方向键!

      6.shell编程:

vi

#!/bin/bash          //shell程序都以#!开头,后面跟上执行此shell的shell解释器的完整路径

#hello                //程序的名称

echo 'Hello Linux'

echo 'This is a shell file.'

:w hello.sh

:q

chmod +x hello.sh     //添加可执行权限

./hello.sh 

shell不分数据类型;变量不需事先申明。

#!/bin/bash

#test test.sh

a=123               //变量的值如果不带空格,可以不用引号

b='123 234'        //有空格,要引号

c=drg              //不用事先定义

d=agd cds         //这样在赋值时,会出现错误。不会打印出值

echo $a           //变量前加$,即可访问变量的值

echo $b

echo $c

echo $d

chmod +x test.sh

./test.sh

位置变量

#!/bin/bash

# test test.sh

echo $1           //$0存放bash

echo $2          //$1 $2 $3 依次存放zhaoxuguang is rabbit 这三个字符

echo $3

chmod +x test.sh

./test.sh zhaoxuguang kills rabbit

echo $str  //将结果输出到终端

echo $str > test.cpp//将结果保存到文件test.cpp中,并覆盖原有文件

echo $str >>test.cpp//将结果追加到文件test.cpp的后面

echo "hello ,\n nihao"//原样输出

echo -e "hello,\n nihao"//-e选项可以识别换行符

   7.export命令显示系统环境变量;read命令读取信息.

read a

aadjf       //如果只读入一个变量,会把键盘上输入的所有信息赋值给这个变量

echo $a    

 

read A B C

aaa bbb ccc ddd eee

echo $A    //如果输入的变量个数多于需要读取变量的个数,将会把剩余的变量赋值给最后一个变量

echo $C    //显示ccc ddd eee

 

在vi中,输入aaa bbb

:w test.txt

:q

read A B < test.txt    //从文本中读取字符串并赋值给变量

echo $A

echo $B      //在终端显示

   8.shell编程中的符号适用

双引号:引用一个字符串(解决了字符串中有空格的问题)

A="asdf 'dafd'dfa"

echo $A   //显示asdf 'dafd'dfa;结果中包含单引号

echo "my home directory is $HOME"  //my home directory is home/nbu/demo

echo 'my home directory is $HOME'  //my home directory is $HOME 原样输出,没有值的替换

反引号:TAB键上那个符号。执行反引号中的命令,并将结果返回。

8.综合shell编程,实现USB设备的加载与文件复制

#!/bin/bash

# autousb

echo "Welcome to use AUTOUSB"

echo "do you want load usb(y/n)?"

read ANSWER

if [$ANSWE = "Y" -o $ANSWER = "y"]

  then mount -t vfat /dev/sdal /mnt/usb

  echo "do you want copy files to /root(y/n)?"

  read ANSWER

  while($ANSWE = "Y" -o $ANSWER = "y"])

  do

    ls -a /mnt/usb

    echo "type the filename you want to copy"

    read FILE

    cp /mnt/usb/"$FILE" /root

      if [$? - qe 0];then

        echob "copy finished"

      else

        echo "copy errored "

      fi

      echo "any other files(y/n)"

      read ANSWER

      done

  fi

  echo "do you want to copy files to usb(y/n)?"

  read ANSWER

  while [$ANSWE = "Y" -o $ANSWER = "y"]

  do

    ls -a /root

    echo "type the filename you want to copy to usb"

    read FILE

    cp "/root/$FILE" /mnt/usb

      if [$? - qe 0];then

         echob "copy file finished"

         else

         echob "copy file errored"

      fi

      echo "any other files(y/n)"

      read ANSWER

   done

 

  echo "do you want to umount usb(y/n)?"

  read ANSWER

  if[$ANSWE = "Y" -o $ANSWER = "y"];then

    umount /mnt/usb

    else

  echo "Haven't umount!"

  fi

  echo "GoodBye!"

第五章编译与调试

1.程序编译步骤:词法分析、语法分析、中间代码生成、代码优化、目标代码生成。

2.调试器gdb 编译器gcc

3.gcc test.c -o tt  (或gcc test.c  ./a.out)        编译成目标文件tt

   ./tt                              执行文件tt

4.gcc -v test.c执行并显示编译过程;编译器gcc自动加载了系统到默认配置,调用系统到库函数完成了程序的编译过程。

5.编译c++程序:g++ test.cpp -o tt

                          ./tt          或者用(g++ test.cpp   ./a.out

第六章 C语言基础

1.时间函数:

#include<stdio.h>

#include<time.h>

void main()

{

    time_t t;

    time(&t);

    printf("%d",t);

}函数结果返回一个时间值:从1970年元旦到现在所经过的秒数,time_t 是<time.h>是一个数据类型,time_t相当于一个长整型。

夏令时是指某些国家在夏季将时间调整若干个小时,现在在我国已经不在使用。

第七章 文件与目录篇

1.chmod +x a.out对一个文件添加可执行权限。

2.u(User所有用户)、g(Group同组用户)、o(Other其他用户);4r 2w 1x->766

3.在文件操作时,可能会遇到权限不足,找不到文件的错误,需要在程序中设置错误捕捉语句,并显示错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值