linux学习笔记(1)----基础知识

1.linux用户

ubuntu有三种用户:

1)初次创建的用户

2)root用户

3)普通用户

linux用户记录在etc/passwd这个文件内

linux用户密码在etc/shadow这个文件内

2.linux用户组

为了方便管理,将用户进行分组,这样就可以设置非本组人员不能访问某些文件。每个用户可以属于多个不同的组。

用户:家里有多个家庭成员,但是每个人都有自己的私人空间,别人不可以去乱翻

用户组:每个家庭成员却有公共的活动区域,例如:厨房,客厅......

每个用户都有自己的ID,叫做:UID。

每个用户组都有自己的ID,叫做:GID。

用户组查看命令为:/etc/group

linux学习笔记(1)----基础知识_第1张图片

3.图形化创建用户和用户组 

linux学习笔记(1)----基础知识_第2张图片

 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

linux学习笔记(1)----基础知识_第3张图片

运行结果: 

 

 2)多文件c编程

创建了main.c tool1.c,tool1.h

main.c

linux学习笔记(1)----基础知识_第4张图片

 tool1.clinux学习笔记(1)----基础知识_第5张图片

 tool1.hlinux学习笔记(1)----基础知识_第6张图片

 使用命令  gcc main.c tool1.c -o main   进行编译,生成main文件

结果:

优化: 在多个文件的情况下,如果修改一个文件,则需要进行全部的重新编译,非常麻烦

使用 gcc- c 文件.c   进行文件的编译,后续只需要执行这个修改文件的代码,然后链接就行了

进一步优化:使用Makefile

将所有的编译和链接放在makefike文件中

linux学习笔记(1)----基础知识_第7张图片

然后使用命令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脚本文件权限打开。

linux学习笔记(1)----基础知识_第8张图片

linux学习笔记(1)----基础知识_第9张图片

 2)接收键盘变量

read:读取接收变量

linux学习笔记(1)----基础知识_第10张图片

结果:

3)shell脚本的数值计算

linux学习笔记(1)----基础知识_第11张图片

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参数…

linux学习笔记(1)----基础知识_第12张图片

 结果:

 6)if  else 语句

linux学习笔记(1)----基础知识_第13张图片

格式: 

if [条件判断] ;then

//条件成立的事件

elif 条件判断[];then

//条件成立的事件

 else

//条件成立的事件

fi

7)case语句

格式:

case $变量 in

        "第一个变量的内容")

                程序段

                ;;

        "第二个变量的内容")

                程序段

                ;;

        "第n个变量的内容")

                程序段

                ;;

esac

linux学习笔记(1)----基础知识_第14张图片

结果:

 8)shell脚本函数

shell脚本也支持函数,函数的写法如下:

function fname(){

        //函数代码段

}

linux学习笔记(1)----基础知识_第15张图片

 结果:

 9)shell----while循环

linux学习笔记(1)----基础知识_第16张图片

结果:

linux学习笔记(1)----基础知识_第17张图片

 10)for 循环语句

格式1:

for  var in con con1 con2

do 

      循环语句

done

linux学习笔记(1)----基础知识_第18张图片  

结果: 

 

 格式2:

for((初始值,限制值,执行步长))          //两个括号

do

     //循环代码段

done

 linux学习笔记(1)----基础知识_第19张图片

结果:

你可能感兴趣的:(Linux,linux,学习,笔记)