linux基础篇(1)

file file_name 可以判定一个文件类型的命令,可以区别普通文件的不同之处。


Linux的时间  开机时系统读取一下硬盘时间,以此为时间起点,系统和硬件各自开始维持自己的时间
系统时间  用date 查看
硬件时间  用clock 查看
hwclock 设定时间
   -w 以系统时间为主,把硬件时间设定为系统时间
   -s 同上相反

date mmddHHMMyy.ss 将系统时间设定为某一固定的时间
date +FORMAT 设定显示的时间格式
date
   "+%H" 显示时间中的小时
   “+%M”
   “+%s” 查看时间戳 显示从1970年到现在所经过的秒数
   “+%S”
   “+%y”
   “+%F”
  
 cal        显示当月日历
 cal 2011   显示2011年的日历
 cal 1 2011 显示2011年1月的日历
 Linux从1970年为元年
 
 which  查看一个命令的二进制文件的存放位置
 type   查看一个命令是外部还是内部命令
 
 
 Linux命令的类别
 内部命令:shell自身所自带的命令
 外部命令:所有的外部命令都有一个可执行的二进制文件
 
 
 如何获得一个命令的帮助信息
 外部命令帮助信息获得:command --help
 内部命令帮助信息获得:help command
 whatis command 显示一个命令的简单说明 同时显示出此命令不同部分在man手册上的章节数。
 whatis 是在数据库中调用这个命令的相关简单说明,如果系统刚刚安装,有些命令可能还没来得及创建数据库,
 因此便无法使用whatis开查看此命令的帮助信息。可以使用mkwhatis command帮命令生成一个有关此 命令的数据库
  man command 显示一个命令的使用手册即详细的使用信息
  info command 显示一个命令的背后故事,通常作为man的补充信息使用
 也可以进入官方网站查看相关的命令手册

 /usr/share/doc  也有一定的帮助信息
 
 man为命令提供的使用手册是分章节的
 第一章节:关于普通的用户命令的说明
 第二章节:    系统调用
 第三章节:    库调用
 第四章节:    特殊件文件格式文件
 第五章节:关于配置文件的语法说明
 第六章节:    游戏
 第七章节:    杂项
 第八章节:关于管理类的命令说明
 man N(章节数)command 显示这个命令在man命令相关章节的说明
 man -k +关键字 在数据库中查找和关键字有关的命令说明
 man -K +关键字 在man手册中查找,速度慢
 
 man命令的每个段名字
 NAME
 DESCRIPTION
 EXAMPLES
 FILES 这个命令所关联的配置文件
 
 
 查看有关命令的man帮助信息时使用技巧
 空格键 向前翻一页
 b键    向后翻一页
 回车键 向前翻一行
 k      向后翻一行
 /+关键字 从头至尾查找关键字的位置
 ?+关键字 从尾到头查找
 n  在多个关键字之间进行向下一个关键字切换
 N   向上一个关键字切换
 q  退出man手册
 
 
 /usr/share/man 存储man命令手册各个章节的压缩文件
 

 文本查看命令
 cat 可以将多个文件连接起来倾倒在屏幕上显示出来,自动直接退出。
   -n 显示出行号
   -e 用于显示行结束符$
 tac  与cat相反,从后向前显示
 more 以页的形式进行显示,分屏查看。向后翻屏功能好,翻到最后直接退出,向前翻屏功能不好
 less 功能强大,使用技巧和man相同
 head 显示文件的前多少行
    -n 20 = 20 查看文件的前20行,默认显示前10行
 tail 查看一个文件的后多少行,格式同head相同
    -f 显示之后不退出,并能时时更新显示新增内容,用Ctrl+c退出
   
   
 wc 统计一个文件有多少行,单词数,字节数。
    -l 显示文件的行数
    -w 显示文件的单词数
    -c 显示文件的字节数
   
   
系统上如何实现用户管理
User  用户是一个使用者使用系统资源的凭证,主要用于多用户系统而言。
Group 是一个存放用户的容器,是一个权限的集合,加入组的用户自动就获得了这个组所拥有的权限。
Permission

UID
在系统上保存的无符号的整数,这样的0-65535十进制数,管理员的ID永远为0。
系统用户ID号:1-499不允许登录系统。
普通用户ID号:500-65534。
nobody用户:来宾账号65536或-1.

GID

组分为私有组和公共组:任何用户必然会属于一个组。
私有组:只有一个用户,属于这个用户的私有组
公共组:建立之后加入了多个用户的组
  
进程:资源分派的单位,是一个程序正在执行的副本。(以进程为单位划分CPU、内存的资源)
  
安全上下文:当一个进程发起的时候,


三种权限对于文件的作用:
r:能查看
w:能够编辑
x:能够让文件执行起来
三种权限对于目录的作用:
r:能够查看目录中的内容
w:能够在目录中新建文件
x:能够进如目录

权限和八进制数字之间的转换 r=4,w=2,x=1
---:000 0
--x: 001 1
-w-: 010 2
-wx: 011 3
r--: 100 4
r-x: 101 5
rw-: 110 6
rwx: 111 7

chown USERNAME file        改变文件的属主
    USERNAME:GRPNAME file  同时改变文件的属主和属组
    USERNAME.GRPNAME file  同上
            .GRPNAME file  只改变文件的属组
    --reference =a b  将文件b的属性以文件a为标准进行修改
    -R 递归修改目录内的文件属性(将目录内的文件属性连同目录属性一起改变)
chgrp 改变文件的属组

只有管理员才能改变文件的属主、属组的权限。

chmod 改变文件的权限
1、chmod 777 a.txt 将文件a.txt 的所有属性都改成rwx。 
2、属主=u 属组=g 其他=o 所有=a  chmod u=rwx a.txt 将文件a.txt的属主属性改为rwx,其他属性不变
3、通过u、g、o加减r、w、x 修该相关的属性

033 课本88习题2 方法1、chmod u-w,go-x  2、chmod 544  3、chmod u=rx,go=r


  

/etc/passwd 存放所有用户的帐号
/etc/shadow 存放所有用户的密码
/etc/group  存放所有组的帐号
/etc/gshadow 存放所有组的密码


 mingetty 建立生成tty
 login 登录
 finger  显示用户的基本信息
 id   查看用户的ID相关信息
 who  查看系统上正在登录的用户信息

useradd uername 添加一个用户
     -u +UID 指定创建用户的ID
     -g +GID 指定创建用户组的ID
     -G 指定用户的附加组(额外组)
     -c 指定用户的其他信息(CONNENT)
     -d 指定用户家目录
     -s 指定非默认的shell
     -r 将用户添加为系统用户
    
userdel 删除一个用户(不删除用户的家目录)    
     -r 连同用户的家目录一起删除
    
usermod 修改用户的指定信息
     -u 指定用户的ID
     -d 指定用户的家目录
     -a 在用户附加组之上修改
     -G 修改用户的附加组(若用户有附加组则原附加组将被覆盖,一般与-a一起运用)
     -l 修改用户的名字
     -e 指定用户的过期时间
     -L 锁定用户不让被登录
     -U 解锁
    
groupmod
     -n 改变组名
     -g 改变组的ID
    
groupdel 删除一个组
guoupadd  添加组
     -g 指定组的GID
     -r 将该组添加为系统组

passwd
     -l 锁定用户帐号
     -u 解锁用户帐号
     --stdin 把标准输入改为其他输入,使用管道技术时经常用到这个选项 如:利用管道将redhat账户的密码改为123456  echo “123456" | passwd --stdin redhat (对passwd采用键盘输入之外的其他输入)
 
tail -l /etc/passwd 显示用户帐号的信息  显示的信息格式如下
用户名:x(密码占位):UID:GID(用户所属基本组的ID):CONNENT(全名或电话信息):用户的家目录:用户默认时的shell
tail -l /etc/shadow 显示用户密码的信息  显示的信息格式如下
登录名:md5散列加密过密码(前两个$之间说明加密的算法,中间两个$之间为计入的杂质,后两个$之间为加密后的结果)
:密码最近的修改时间(从1970年1月开始到上次密码修改所经过的天数):密码最短的使用期限(以上次修改时间为起点)
:密码的最长使用天数(算法同上):提前多长时间提示用户密码将要过期:密码过期几天后帐号将被禁用
:用户帐号过期时间(默认为99999天):保留域
tail -2 /etc/group 显示组的帐号信息 信息显示格式如下
组名:密码占位:组ID:以此组为附加组的用户名

cat /etc/shells 查看系统上可以使用的所有shell

 
 bc 为系统中简单的计算器


加密的方法
1、对称加密
2、公钥加密
3、单向加密:提取数据的特征值  特点:(雪崩效应(两次输入只要有一点点改变,将对结果产生巨大影响),定长输出md5(128bit)、shal(160bit))

 

BASH的功能 !$,Alt+. Esc+.  调用上一条命令的最后字符
1、
Ctrl+a 移动至行首
Ctrl+e 将光标移动至行尾
Ctrl+u 删除光标到行首的内容
Ctrl+k 删除光标到行尾的内容
Ctrl+Arrow 按箭头的方向依次移动一个单词

2 文件名通配
*:可以表示任意长度的任意字符
?:可以表示任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:表示不匹配指定范围内的任意单个字符
[:upper:]所有的大写字母   [[:upper:]]表示匹配所有大写字母
[:lower:]所有小写字母
[:punct:]所有的标点符号
[:space:]所有的空白字符
[:alpha:]所有字母
[:alnum:]所有字母和数字
[:digit:]任意单个数字
man 7 glob 显示有多少个如上可以使用的字符组合


3、命令行和路径补全
echo $PATH  显示命令补全的路径集

4、命令行展开
~:展开为对应用户的家目录 如cd ~Redhat 进入Redhat的家目录
{}:一次创建 x_1,x_2,y_1,y_2四个文件    mkdir -pv {x,y}_{1,2}
    一次创建x/y x/z/1 x/z/2  三个文件   mkdir -pv x/{y,z/{1,2}}
 
5、命令引用
${}='': 将命令的执行结果作为参数传递给另外一个命令  如:显示passwd的权限
        ls -l ‘which passwd’ = ls -l ${which passwd}
       
6、变量引用
变量;是命令的内存空间
NAME=jerry 或 set NAME=jerry 创建一个变量名字为NAME,里边存入jerry
$NAME 引用变量NAME中的jerry
unset NAME=jerry 撤销这个变量
echo $NAME 显示NAME这个变量的内容

“” 为弱引用,可以进行变量替换,将变量的值进行引用。
·· 为强引用,不可进行变量的替换

bash 中变量不需要声明,可直接占用。默认都为字符串型,不能参与数学计算

 
echo 显示一串文字
   -n 显示后不换行
   -e
   -t


编程语言:
 脚本语言:以源程序的方式存在,执行之前不需要编译,而是靠一个编译器解释执行,维护简便,但是执行效率差。
 代表:bash,perl(完全面向对象,语法非常严格,),python,ruby,php(最为难懂的语言,然后出现perl)
 编译型语言:流程为 编辑-->编译-->连接-->运行 ,维护非常困难,执行效率高。
 代表:c,c++

脚本:就是命令的堆砌。
bash脚本第一行格式:#!/bin/bash  第一行用来让Linux中的相应解释器来识别并进行解释。
    
课堂习题:
复制/etc/skel目录至/home,并且重命名为centos
  cp -r /etc/skel /home/centos
设定此目录极其内部文件或子目录的属主属组为Redhat用户,Redhat组
  chown -R redhat:redhat centos
设定此目录极其内部文件或子目录的属组及其他权限为空。
  chmod go=--- centos
将Redhat的家目录改为/home/centos
  usermod -d /home/centos redhat
切换至Redhat用户,验证其家目录是否正常可用
  finger redhat 查看Redhat的家目录


创建文件 ./a.txt

你可能感兴趣的:(linux,linux,redhat,职场,休闲)