2018-7-7 vi编译器,用户管理,gcc编译器,C语言基础

1, vi编译器

    vi编译器的三种模式

        1、三种模式:底行模式 命令模式 插入模式

             一, 命令模式:
            1、从命令切换插入模式:
               i : 光标所在左侧输入 I 光标移动到所在行的最左则
               o :光标移动的下一行(新的一行) O:光标移动的上一行(新的一行)
            a :光标移动到所在行的右则输入 A:光标移动到所在行的最右则
          2、复制:
         行: nyy n>0
         单词:nyw n>0
             3、粘贴:p
         4、撤消到上一步骤:u
         5、恢复到上一步: ctrl+r
         6、替换:
         替换一个字符:r
         连续替换    :R
         7、定位行:
         上:n-     
         下:n+
         8、删除:
         删除字符:nx(右)  nX(左) n>0
         删除行:ndd   n,n1 dd

         9、查找关键字:/key_value (向下查找key:n 向止查找key:N )

          二,底行模式:保存退出,执行Shell命令
1保存(写入): w write
2退出: q
3保存退出: wq
4、不保存退出: q!
5、显示行号: set nu

6、 !shell

          三,插入模式:编写内容

插入模式-》命令模式:  esc


2 linux用户管理
        

                1,创建用户命令两条:

                    adduser

                    useradd

                2,删除命令:

                    userdel

                二、两个用户创建命令之间的区别
                    adduser: 会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码。

                 useradd:需要使用参数选项指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无主目录、没有指定shell版本。

                三、使用adduser
                    例如:
                   sudo adduser   apple

                    输出显示:

                            

                    默认情况下:
                    adduser在创建用户时会主动调用  /etc/adduser.conf;

                    在创建用户主目录时默认在/home下,而且创建为 /home/用户名

                如果主目录已经存在,就不再创建,但是此主目录虽然作为新用户的主目录,而且默认登录时会进入这个目录下,但是这个目录并不是属于新用户,当使用userdel删除新用户时,并不会删除这个主目录,因为这个主目录在创建前已经存在且并不属于这个用户。

    为用户的命令分配root的权限:
root为用户分配的部分权限都是记录在:/etc/sudoers
注:每次sudo时都会去/etc/sudores中检查该用户的分配策略
1、为某机器上某用户分配某种命令的权限
            1.1为该用户分配所有机器的所有命令
用户名  ALL=(ALL)  ALL
   1.2为该用户分配所有机器的某条命令
用户名  ALL=(ALL)  command

                        2、为用户指定参数的useradd命令:
常用命令行选项:
(1) -d:           指定用户的主目录
(2) -m:          如果存在不再创建,但是此目录并不属于新创建用户;如果主目录不存在,则强制创建; -m和-d一块使用。
(3) -s:           指定用户登录时的shell版本
(4) -M:           不创建主目录
例如:
   sudo  useradd  -d  "/home/tt"   -m   -s "/bin/bash"   tt
解释:   -d   “/home/tt" :就是指定/home/tt为主目录
               -m   就是如果/home/tt不存在就强制创建
               -s    就是指定shell版本
修改tt密码:
 sudo passwd tt
五、删除用户命令
userdel
(1)只删除用户:
sudo   userdel   用户名
(2)连同用户主目录一块删除:
sudo  userdel   -r   用户名
六、相关文件:
       /etc/passwd - 使 用 者 帐 号 资 讯,可以查看用户信息
       /etc/shadow - 使 用 者 帐 号 资 讯 加 密
       /etc/group - 群 组 资 讯
       /etc/default/useradd - 定 义 资 讯
       /etc/login.defs - 系 统 广 义 设 定

       /etc/skel - 内 含 定 义 档 的 目 录



编译器:将指定的语言翻译成机器语言
语言的发展历史:
1、机器语言:由0/1组成的指令 (计算机可以直接识别)
2、汇编指令:用助记来替代二进制指令
3、高级语言:用自然的语言来与机器沟通
Linux的编译器:gcc/g++/QT
    gcc编译器:是一款优秀(1、编译语言多,2、质量高)的编译器
源程序:用高级语言编写的程序的文件
c语言:  .c
c++语言:.cpp  .C
java: .java
OC  : .oc
编译:
1、  gcc 源程序.c 注:如果没有指定可执行文件名,默认生成a.out
2、指定可执行文件名:
gcc 源程序.c -o 可执行文件名


    执行程序:路径/程序名
        【3、编译过程:(函数) 】


C语言:是高级语言中的一种,是面向过程语言。(强语言)
程序=算法+数据  
1、数据:基本数据类型(整型,字符整型,浮点型)
   常量:不可改变的量
   变量:可以改变的量
  整型:
     整型常量:十进制(0 -1 9 )  八进制01010  16进制0x 【0 1 2,...,9,a,b,c,d,e,f】
     整型变量:可以改变的量
类型:int short  long  (4 2 8Byte)
有无符号:signed unsigned (图4)
定义变量:[有无符号] 类型  变量名; (分配存储空间)
注:如果没有标名有无符号,则默认为有符号位
  [signed] short a;
   字符:
1.字符常量:'a'  
      普通字符:'a'
  转义字符:'\n' '\'' '\t'  '\\'
 字符串常量:"abcdef"
2.字符变量:  
    3.ASCII码:由于计算机只能识别0/1,只能由一串01组成的来替代字符


3、各进制转换为十进制:  
十进制的权:10
二进制的权:2   1010---》 
      八进制的权:8


4、计算机的存储单元:存储信息的空间
   最小的存储单元:bit    (0或1)       10->1010    16bit
   基本存储单元:Byte 1Byte=8bit 
   其他:  1Kb=1024Byte=2^10Byte
  1MB=1024KB
  1GB=1024MB
  1TB=1024GB  
    原码(二进制):10-》  0000 1010    -1-》1000 0001 
    反码    10-》  1111 0101 (原码取反)-1-》 1111 1110
    补码    10-》  1111 0110 (反码+1)   -1-》 1111 1111
运算符:
  1、求某数据类型或者变量的存储空间长度: sizeof    注:以Byte为单位
  2、赋值运算符:
左值=右值;  注:左值必须为变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值