书名: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.在文件操作时,可能会遇到权限不足,找不到文件的错误,需要在程序中设置错误捕捉语句,并显示错误。