linux基础命令

man COMMAND:
手册页: /usr/share/man
man1: 用户命令
man2: 系统调用
man3: C库的调用
man4: 设备及特殊文件
man5: 配置文件格式
man6: 游戏
man7: 杂项
man8: 管理类的命令
man命令的配置文件: /etc/man.config

man命令的操作方法
    向文件尾部翻屏: space,^V,^F,^f
    向文件首部翻屏: b,^B
    向文件尾部翻半屏: d,^D
    向文件首部翻半屏: u, ^U
    向文件尾部翻一行:ENTER, ^N, e, ^E, j, ^J
    向文件首部翻一行:y, ^Y, ^P, k, ^K
    退出: q
    跳转至第#行: #
    回到文件首部: 1G
    翻至文件尾部: G
    
    文本搜索: 
        /KEYWORD: 以KEYWORK指定的字符串为关键字,从当前位置向文件尾部搜索,不区分字符大小写
            n: 下一个
            N:上一个
        ? KEYWORK: 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索,不区分字符大小写
            n: 下一个
            N: 上一个

date命令
date [OPTIONS] +[FORMAT]
FORMAT: 格式符号
%D,%F,%T等
date [MMDDhhmm[[CC]YY].ss: 设置时间
MM: 月份
DD: 几号
hh: 小时
mm: 分钟
YY: 两位年份
CCYY: 四位年份
.ss: 秒钟

hwclock: 显示硬件时钟(root用户可用)
-s, --hctosys: 设置系统时间为硬件时间
-w, --systohc: 设置硬件时间为当前系统时间
cal: 日历

ping:
-c count: 发送数据包数,默认为4
-w timeout: 和-c一起使用,指定超时间隔
-a: 将地址解析为计算机名
-i size: 发送size大小的数据量的数据包,默认为32个

系统管理类命令
关机: halt, poweroff, shutdown, init 0
重启: reboot, shutdown, init 6
reboot:
-f: 强制,不调用shutdown
-p: 切断电源
shutdown:
-r: reboot
-h: halt
-c: cancel

        TIME: 
            now: 立刻
            +m: 相对时间表示法,从命令提交开始多久之后,例如+5
            hh:mm: 绝对时间表示法,指明具体时间

 查看跟用户登录相关的信息
    who, whami, w
        who: 系统当前所有的登录会话
        whoami: 显示当前登录有效用户
        w: 系统当前所有的登录会话及所做的操作

目录管理类命令:cd, pwd, ls, mkdir, rmdir, tree
cd
cd 或 cd ~: 回到当前目录的主目录
cd ~USERNAME: 切换至指定用户的主目录
cd -: 在上一个目录和当前目录之间来回切换

pwd: 显示当前目录
   相关环境变量
        PWD:保存了当前目录路径
        OLDPWD:上一次所在目录路径

ls [OPTIONS]... [DIR]...
        -a,--all: 显示所有文件,包括隐藏文件
        -l:长格式
        -h, --human--readable:单位换算
        -d: 显示目录自身的相关属性,通常与-l一起使用
        -r,--reverse: 逆序显示    
        -R,--recursive: 递归

mkdir: 
    -p: 不存在时不报错,且可自动创建所需的各目录
    -v: 显示详细信息
    -m MODE: 创建目录时直接指定权限

rmdir: 删除空目录

tree:     
    -d: 只显示目录
    -L level: 指定显示的层级数据
    -P pattern: 只显示由指定pattern匹配到的路径

文件查看命令:stat, file, cat,tac, echo,which, whatis, more, less, tail, head
文件元数据查看: stat
# stat /PATH/TO/SOMEFILE:

文件内容类型查看: file
    # file /PATH/RO/SOMEWHERE

cat: 
    -E: 显示行结束符$
    -n:对显示出的每一行进行编号
    cat heredoc: 
        cat << EOF
               内容
        EOF

 echo: 回显命令
    -n: 禁止自动添加换行符号
    -e: 允许使用转义符
        
: 换行
        	: 制表符

which: 显示命令对应的程序文件路径
    which [OPTION] COMMAND
            --skip-alias: 禁止显示别名
    
whatis:
    使用mkwhatis命令可将当前系统上所有的帮助手册与之对应的关键字创建为一个数据库

more: 
    -d: 显示翻页及退出提示

head:
    -c # : 指定获取前#字符
    -n # : 指定获取前#行
        -#
 
tail:用法和head类似
    -f:追踪显示文件新追加的内容

文件管理类命令: touch, mktemp, install,cp, mv, rm
touch:文件的时间戳管理工具
-a: access time,访问时间,简写为atime
-m: modify time,修改时间, mtime

  修改时间要和-t一起使用
    -t : stamp, 格式为[[CC]YY]MMDDhhmm[.ss]
    -c: 如果文件不存在,则不创建

mktemp:创建临时文件
	mktemp [option]... [TEMPLATE]
		TEMPLATE: filename.XXX
			XXX至少要出现三个
		OPTION:
			-d: 创建临时文件目录
			--tmpdir=/PATH/TO/SOMEDIR:指明临时文件目录位置

 install命令:复制文件
	    选项:
		-m MODE
		-o OWNER
		-g GROUP

cp: 复制命令
    CP [OPTION]... [-T] SOURCE DEST
CP [OPTION]... SOURCE... DIRECTORY
CP [OPTION]... -t DIRECTORY SOURCE...

    cp SRC DEST
        SRC是文件:
            如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
            如果目录存在:
                如果DEST是文件:将SRC的内容覆盖至DEST中,此时建议为cp命令使用-i选项
	    如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

    cp SRC... DEST
        SRC... 多个文件
            DEST必须存在,且为目录,其他情形均为出错

    cp SRC DEST
        SRC是目录
            则使用选项: -r
            
            如果DEST不存在:
		 则创建指定目录,复制SRC目录中所有文件至DEST中
	如果DEST存在:
		 如果DEST是文件:报错
		 如果DEST是目录:直接复制
    常用选项:
        -r,-R: 递归复制目录及内部的所有内容
        -i: 交互式
        -a: 归档,相当于-dR --preserv=all
            -d: --no-dereference --preserv=links
        --preserv=[ATTRA_LIST] 保持某一项属性
                mode: 权限
                ownership: 属主属组
                timestamp
                links
                xattr
                context
                all
        -p: --preserv=mode,ownership,timestamp 保持权限,属主属组,时间戳
        -P, --no-dereference: 不跟踪符号链接的源文件
        -v: --verbose
        -f: --force

mv: move,移动文件
    mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
        常用选项:
            -i:交互式
            -f: 强制

rm:remove,删除
        -i:交互式
        -f: 强制删除
        -r: 递归

文本处理工具: wc, cut, sort, uniq
wc命令
-l: line
-w: words
-c: characters

cut命令:
    -d: DELIMITER,指明分隔符
    -f FIELDS
        #: 第#个字段
        #,#[,#]: 离散的多个字段
        #-#:连续的多个字段
    --output-delimiter=STRING:指明输出时的分隔符

sort命令:
    -f: 忽略字母大写小
    -r: 逆序显示    
    -t DELIMITER: 字段分隔符
    -k #:以指定字段为标准排序
    -n: 以数值大小进行排序
    -u: uniq,排序后去重

uniq命令:
    Note: 连续且完全相同方为重复
    -c: 显示每行重复出现的次数
    -d: 仅显示重复过的行
    -u: 仅显示不曾重复的行

练习:以冒号分隔,取出/etc/passwd文件的第6至第10行的各自的第1个字段,并将这些信息按第三个字段的数值大小排序
# head -10 /etc/passwd | tail -5 | sort -t: -k3 -n | cut -d: -f1

 字符处理命令 :
      tr --转换或删除字符
      tr [OPTION]... SET1 [SET2]
          -d : 删除出现在字符集中的所有字符
          # tr AB ab 大写字母替换为小写字母
          # tr -d AB 删除输入的字符中AB