linux基本命令与概念

 

时间管理:
linux:  系统时间,硬件时间

date 查看系统时间   clock查看硬件时间
hwclock -w:表示系统时间是准确的,把硬件时间设定为与系统时间一致
        -s:相反
date mm[月]dd[日]hh[小时]yy[年].ss[秒]设定时间格式
date +FORMAT
  date "+%H"
    date "+%H:%M:%S"   %y简写的年份%Y完整的年份
         %d    %D    %y-%m-%d
        
cal  显示日历  cal  2011显示2011日历 
  cal 1 2011 显示2011年一月日历
  date "+%s"时间戳值
  bc 计算器


命令:
  内部:shell自身带的命令,所有的内部命令都没有对应的可执行文件
  外部:尤其相反

which +命令  查看是内部还是外部命令
type +命令  查看是内部还是外部命令

--help 通常是外部命令获得帮助的方式
  help cd
内部  help command
外部  command --help
man一个命令的使用手册 
  man ls
info command
  info主要讲述命令背后的故事 一般作为man 的补充信息使用
    /usr/share/doc/ls-2.1.3/

whatis commad 用于说明命令的简单意义
man 为命令提供的使用手册是分章节的
第一章节:普通用户的命令
第二章节:显示系统调用
第三章节:库调用
第四章节:特殊文件
第五章节:文件格式
第六章节:游戏说明
第七章节:杂项
第八章节:管理类命令
man n[章节数] command
whatis command
cd /usr/share/man

 

export LANG=c避免乱码
man内关注的信息:
NAME
DESCRIPTION
EXAMPLES
FILES
OPTIONS


man的使用:
空格 翻页 为一屏幕
输入b   会看

回车键  为翻一行
k  会翻一行

man -f ls = whatis ls
makewhatis 帮whatis生成一个数据库文件
man -k ls显示有ls 的简要信息
man -K ls在man 的数据库中查找
输入/查找的关键字/在man 内搜索
?也是 查找顺序相反 ?从尾部开始 用n切换下一个N切换上一个


文本查看命令:
cat,more,less,tail,head,tac
cat: concatinate,dump
连接,
cat -n
cat -e显示控制字符【换行符$】
tac 与cat
more 可以翻页cat不能
less 支持前后翻页man基于less


head -n -20 =head -20 前20行显示
tail -n -20 =tail -20 后20行显示
tail -f 显示文件不退出


wc:word count统计行数 单词书  字节数
wc -l  -w  -L   -c


如何实现用户管理:
user group permission
user:权限的集合  user name 会对应一个UID[用户表示]
验证用户
group:容器,用户的集合,主要用于实现权限指派
GID:0-65535 root:0永久  验证组
id root查看用户id
系统用户:1-499
普通用户:500-65534
nobody:65535
私有组,公共组
任何一个用户必然会属于某一个组,私有组,基本组
建立后加入多个组,附加组


安全上下文:Secure context

进程:资源分派的单位,一个实体,是以程序正在执行的副本
df -f


用户账号存放于/etc/passwd
    密码      /etc/shadow
组            /etc/group
    密码      /etc/gshsdow
useradd 用户名[添加用户]
username:x:UID:基本组的GID:备注[COMMENT]:家目录HOME:用户默认使用的shell
cat /etc/shells

/etc/shadow
student:$1$2UdlmYPt$XHJHaz8U79fzqPU1iKd8P/:15174:0:99999:7:::
用户名:加密的密码:从1970年开始到上次修改密码的时间:
密码的最短使用期限:密码最长使用期限:
提前多久提示用户密码即将过期:密码过期多少天以后账号将被禁用:
账号的使用期限:


MD5散列加密
对称加密
公钥加密
单项加密:提取数据的特征值[1.雪崩效应2.定长输出]MD5(128位定长输出),sha1(160位定长输出)
salt

dean:x:503:


创建用户并制定属性信息:
useradd:
   -u 指定UID
   -g     指定组
   -G     GROUP1,GROUP2指定附加组
   -c "comment[备注]"
   -d /path/to/home
   -s 指定非默认shell
   -r 把一个用户添加为系统组
groupadd:
   -g GID
   -r把一个组添加为系统组 

删除:
userdel -r 连同用户及其家目录全部删除
groupdel
修改用户属性:
usermod:与useradd类似
  -u 修改用户的UID
  -g
  -a -G修改额外组
  -s
  -c
  -M -d
  -l修改用户登录名称
  -e 修改用户的过期时间
  -U解锁用户允许登录
  -L锁定用户账号不允许登录
groupmod:
  -g 改变组的GID
  -n改变组名
passwd
  -l锁定用户账号
  -u解锁用户账号
  --stdin把标准输入改为别的输入
  -n
  -x
finger:
id:
who:当前系统用户登录


属主:rwx u
属组:rwx g
其他:rwx o    所有用a表示
chown:【chown用户名 文件名】来修改文件的所有者,
chown [options] USERNAME file
 -R 递归修改
 --reference=a.txt b.txt 把b改成与a相同的属组与属主
 
chgrp [options] USERNAME file
chown USERNAME:GROUPNAME file 同时更改属组与属主
chmod:
 chmod [optione] mode files
 chmod 777 a.txt
 chmod u=rw- a.txt
 +/-
 chmod g-w a.txt
 chmod a+x a.txt
 若改变目录则目录内的文件权限不改变
 若修改内部文件  则与chown类似 -R  --reference=

 

BASH:
history,
!$,esc+.,alt+.
1.命令行编辑:
ctrl+a直接到行首
ctrl+e直接到行尾
ctrl+u从光标开始到行首全部删除
ctrl+k          到行尾
ctrl+左右箭头,左右跳一个单词
2.文件名的通配:
*:表示任意长度的任意字符
?: 任意单个字符,只匹配一个字符
[]:匹配指定范围内的任意单个字符,[a-z]
[^a-z]表示去反   [a-zA-Z0-9]
[:keyword:] [:lower:],[:upper:],[:space:],[:punct:]
[:alnum:],[:digit:]
man 7 glob查看所有以上文件名通配
3.命令行补全和路径补全:tab键
   命令行补全:
   echo $PATH环境变量
   路径补全:在父目录下查找语气相关的路径补全
   cd /etc/sysconfig
4.命令行展开:
  ~:展开为对应用户的家目录
  {}:展开为多个路径:mkdir -pv x/{y,z/{1,2}}
                      mkdir -pv {x,y}_{1,2}
5.命令扩展:
$():
``:把一个命令执行结果当做一个对象来使用
都表示命令引用
变量引用“”
“”弱引用,可以进行变量替换
‘’强引用,不会进行变量替换

变量:命名的内存空间,通常只对当前有效,不会长久有效
bash可以使用变量,变量不需要声明,变量不区分类型,默认都是字符串型
不能参与数学运算
NAME=jerry
变量名=“strings”
set 变量名=“strings”
撤销用 unset 变量名
echo $NAME显示变量NAME的值
echo -n 不显示换行
     -e 控制转译字符
     ${NAME}标准格式

编程语言:
  脚本语言:以源程序的方式存在,执行前不需要编译,
    而是靠一个解释器解释解释执行;维护简便,执行效率差
    bash,per1,python,ruby,php
   
  编译型语言:
    编辑-->编译-->连接-->运行
    维护麻烦,执行效率高
   c,c++,
  
  
脚本:是命令的堆砌

#!/bin/bash

你可能感兴趣的:(linux,Date,加密,command,bash,日历)