天天看点

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

继续阅读