1.linux用户
ubuntu有三种用户:
1)初次创建的用户
2)root用户
3)普通用户
linux用户记录在etc/passwd这个文件内
linux用户密码在etc/shadow这个文件内
2.linux用户组
为了方便管理,将用户进行分组,这样就可以设置非本组人员不能访问某些文件。每个用户可以属于多个不同的组。
用户:家里有多个家庭成员,但是每个人都有自己的私人空间,别人不可以去乱翻
用户组:每个家庭成员却有公共的活动区域,例如:厨房,客厅......
每个用户都有自己的ID,叫做:UID。
每个用户组都有自己的ID,叫做:GID。
用户组查看命令为:/etc/group
3.图形化创建用户和用户组
4.创建并执行.c文件
步骤:
1.gedit hello.c
2.gcc hello.c -o hello
3../hello
查看当前的文件权限: ls hello -l 修改文件的权限:chmod 权限 hello
修改文件的用户及用户组 chown sudo chown xxx xxx 文件名
5.vim编辑器
vim 打开文本文档, 输入 “a,A”进入编辑模式
退出按一下 Esc,输入:wq,退出保存文档【Esc:文档进入一般模式】
:wq---保存退出 :q---退出 :q!---不保存退出 :w---保存
cat 文本文档: 显示当前的文档内容
6.linux c编程
建立c_project文件夹 ,打开修改vim的设置,将tab设置为4位,并且显示行号
输入下面两行的代码进行修改,然后保存退出
编辑 main.c
运行结果:
2)多文件c编程
创建了main.c tool1.c,tool1.h
main.c
使用命令 gcc main.c tool1.c -o main 进行编译,生成main文件
结果:
优化: 在多个文件的情况下,如果修改一个文件,则需要进行全部的重新编译,非常麻烦
使用 gcc- c 文件.c 进行文件的编译,后续只需要执行这个修改文件的代码,然后链接就行了
进一步优化:使用Makefile
将所有的编译和链接放在makefike文件中
然后使用命令make
结果:
可以使用 make clean删除生成的链接文件
7.Makefile基本语法:
注意:每条命令的开头一定是tab开头的,不可以是空格。【会为每个以tab为命令的开启一个shell命令】。
1.#makefile变量的使用
1 objects = main.o tool1.o
2 main: $(objects)
3 gcc -o main$(objects)
2.
1)赋值符“=”【为最后被指定的】
13 name = ms
14 curname = $(name)
15 name = olss
16
17 print:
18 @echo curname: $(curname)
19
结果:
2)“:=”将当前指定的数值进行赋值
13 name = ms
14 curname := $(name)
15 name = olss
16
17 print:
18 @echo curname: $(curname)
19
v
结果:
3)"?="当前变量未赋值,则将等号后面的赋值给变量
13 name = ms
14 curname := zzk
15 curname ?= kkk
16 name = olss
17
18 print:
19 @echo curname: $(curname)
结果:
4)"+="将等号后面的加在变量的后面
8.shell脚本
1)使用vim命令创建一个shell脚本文件,然后使用chmod命令将shell脚本文件权限打开。
2)接收键盘变量
read:读取接收变量
结果:
3)shell脚本的数值计算
4)test命令
test命令用于查看当前文件是否存在,权限等信息,可以进行数值,字符,文件三方面的测试。
&&和||命令:
cmd1&&cmd2 当 cmd1 执行完并且正确,那么cmd2 开始执行,如果cmd1 执行完毕错误,那么cmd2不执行
cmd1 || cmd2 当cmd1 执行完毕并正确,那么cmd2不执行,反之cmd2 执行。
5)$0,1.....的用法
$0 : Shell本身的文件名
$! : Shell最后运行的后台进程PID
$$ : 当前脚本运行的进程PID
$? : 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$* : 所有参数列表。如"$*“用双引号引起来的情况、以”$1 $2 … $n"的形式输出所有参数,此选项参数可超过9个
$@ : 所有参数列表。如"$@“用双引号引起来的情况、以”$1" “$2” … “$n” 的形式输出所有参数
$# : 添加到Shell的参数个数
$- : 显示shell使用的当前选项,与set命令功能相同
$1~$n :添加到Shell的各参数值。$1是第1参数、$2是第2参数…
结果:
6)if else 语句
格式:
if [条件判断] ;then
//条件成立的事件
elif 条件判断[];then
//条件成立的事件
else
//条件成立的事件
fi
7)case语句
格式:
case $变量 in
"第一个变量的内容")
程序段
;;
"第二个变量的内容")
程序段
;;
"第n个变量的内容")
程序段
;;
esac
结果:
8)shell脚本函数
shell脚本也支持函数,函数的写法如下:
function fname(){
//函数代码段
}
结果:
9)shell----while循环
结果:
10)for 循环语句
格式1:
for var in con con1 con2
do
循环语句
done
结果:
格式2:
for((初始值,限制值,执行步长)) //两个括号
do
//循环代码段
done
结果: