linux命令格式:

COMMAND [OPTIONS...] [ARGUMENTS...]

选项:用于启用或关闭命令的某个或某些功能;

参数:命令的作用对象,向命令提供数据;

(1)ls 

显示指定路径下的文件列表

ls [OPTION]... [DIR]...

-a, --all: 显示所有文件,包括隐藏文件;

-l: 长格式

-rw-r--r-- 1 root root 44800 Aug 14 14:32 install.log

-rw-r--r--:

最左侧的第一位:文件类型

-, d, l, b, c, p, s

后面的9位:访问权限,perm

数字:文件被硬链接的次数;

左root: 文件的owner

右root: 文件的group

44800:文件的size

Aug 14 14:32 : 文件的最近一次被修改的时间

install.log: 文件名

-h, --human-readable:单位换算

-d: 显示目录自身的相关属性;通常要与-l一起使用;

-r, --reverse: 逆序显示

-R, --recursive: 递归


    例子: 工作用偶尔会用到如下命令

        查看/etc目录下,文件size最大的几个文件:  ls -lhS  /etc/ |   head 

        查看/etc目录下,最新的几个文件: ls -lt /etc/ | head


(2)cd 

切换目录

cd 或 cd ~: 回当前用户的主目录

cd ~USERNAME: 切换至指定用户的主目录

cd -: 在上一个目录和当前目录之间来回切换


(3)type:查询命令类型

(4)tty : 查看当前的终端设备

(5)cat: 文件查看命令

(6)which:显示命令对应的程序文件路径
    which [OPTION] COMMAND  

    --skip-alias:禁止显示别名

定位可执行文件在系统中的位置。

(8)pwd: 当前目录

(9)echo: 回显命令

    -n: 禁止自动添加换行符号;

    -e: 允许使用转义符;

\n: 换行

\t: 制表符


    echo "$VAR_NAME": 变量会替换,双引号表弱引用

    echo '$VAR_NAME': 变量不会替换,强引用


(10)date: 显示及设置时间

date:

date [OPTION]... [+FORMAT]:显示

FORMAT: 格式符号

%D

%F

%T

       date [MMDDhhmm[[CC]YY][.ss]]:设置

       MM: 月分

       DD:几号

       hh: 小时

       mm: 分钟

       YY: 两位年份

       CCYY: 四位年份

       .ss: 秒钟


例如: 查看昨天时间:date +%Y%m%d -d '-1 day'

(11)关机 

halt, poweroff, shutdown, init 0

(12)重启

reboot, shutdown, init 6

(13)跟用户登录相关

who, whoami, w


(14)history: 命令历史

环境变量:

HISTSIZE:命令历史记录的条数;

HISTFILE:~/.bash_history;

HISTFILESIZE:命令历史文件记录历史的条数;


history -d OFFSET

-c

history #: 显示历史中最近的#条命令;

-a: 手动追加当前会话缓冲区的命令历史至历史文件中;


(15)mkdir : 创建目录

mkdir [options] /path/to/somewhere

-p: 存在于不报错,且可自动创建所需的各目录;

-v: 显示详细信息

-m MODE: 创建目录时直接指定权限;

(16)tree: 

-d: 只显示目录

-L level:指定显示的层级数目

-P pattern: 只显示由指定pattern匹配到的路径;

(17)rmdir:删除空目录

rmdir [OPTION]... DIRECTORY...

-v: 显示过程;

(18)查看文件类命令:

more

more [OPTIONS...] FILE...

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


less

less [OPTIONS...] FILE...


head

head [OPTION]... [FILE]...

-c #: 指定获取前#字节

-n #: 指定获取前#行

-#:


tail 

tail [OPTION]... [FILE]...

-c #: 指定获取后#字节

-n #: 指定获取后#行

-#:

-f: 跟踪显示文件新追加的内容;


(19)touch:文件的时间戳管理工具

touch [OPTION]... FILE...

-a: only atime

-m: only mtime

-t STAMP:

[[CC]YY]MMDDhhmm[.ss]

-c: 如果文件不存,则不予创建

(20)cp 复制命令

常用选项:

        -i:交互式

        -r, -R: 递归复制目录及内部的所有内容;

        -a: 归档,相当于-dR --preserv=all

        -d:--no-dereference --preserv=links

        --preserv[=ATTR_LIST]

        mode: 权限

        ownership: 属主属组

        timestamp: 

        links

        xattr

        context

        all

        -p: --preserv=mode,ownership,timestamp

        -v: --verbose

        -f: --force

(21)mv: 移动、重命名文件或目录

 mv [OPTION]... [-T] SOURCE DEST

       mv [OPTION]... SOURCE... DIRECTORY

       mv [OPTION]... -t DIRECTORY SOURCE...

       

       常用选项:

       -i: 交互式

       -f: 强制

(22)rm : 删除命令

rm [OPTION]... FILE...


    常用选项:

    -i: 交互式

    -f: 强制删除

    -r: 递归


    rm -rf 

(23)wc命令:查看文件内容中有多少行或多少个单词

wc [OPTION]... [FILE]...

-l: lines

-w: words

-c: characters

(24)cut命令:切割文件

cut [OPTION]... [FILE]...

-d DELIMITER: 指明分隔符

-f FILEDS:

#: 第#个字段

#,#[,#]:离散的多个字段,例如1,3,6

#-#:连续的多个字段, 例如1-6


混合使用:1-3,7

--output-delimiter=STRING

(25)sort命令: 文本内容排序

sort [OPTION]... [FILE]...

-f: 忽略字符大小写

-r: 逆序

-t DELIMITER: 字段分隔符

-k #:以指定字段为标准排序

-n: 以数值大小进行排序

-u: uniq,排序后去重


(26)uniq命令:文件内容去重

uniq [OPTION]... [FILE]...

-c: 显示每行重复出现的次数;

-d: 仅显示重复过的行;

-u: 仅显示不曾重复的行;


Note: 连续且完全相同方为重复

(27)useradd:用户创建

useradd [options] LOGIN

-u UID: [UID_MIN, UID_MAX], 定义在/etc/login.defs

-g GID:指明用户所属基本组,可为组名,也可以GID;

-c "COMMENT":用户的注释信息;

-d /PATH/TO/HOME_DIR: 以指定的路径为家目录;

-s SHELL: 指明用户的默认shell程序,可用列表在/etc/shells文件中;

-G GROUP1[,GROUP2,...[,GROUPN]]]:为用户指明附加组;组必须事先存在;

-r: 创建系统用户

CentOS 6: ID<500

CentOS 7: ID<1000

(28)groupadd: 组创建

groupadd [OPTION]... group_name


-g GID: 指明GID号;[GID_MIN, GID_MAX]

-r: 创建系统组;

CentOS 6: ID<500

CentOS 7: ID<1000

(29)id : 查看用户相关的ID信息

id [OPTION]... [USER]

-u: UID

-g: GID

-G: Groups

-n: Name


(30) su :切换用户或以其他用户身份执行命令

su [options...] [-] [user [args...]]


切换用户的方式:

su UserName:非登录式切换,即不会读取目标用户的配置文件;

su - UserName:登录式切换,会读取目标用户的配置文件;完全切换;


Note:root su至其他用户无须密码;非root用户切换时需要密码;


换个身份执行命令:

su [-] UserName -c 'COMMAND'


选项:

-l:“su -l UserName”相当于“su - UserName”



(31)usermod: 用户属性修改:

usermod [OPTION] login


-u UID: 新UID

-g GID: 新基本组

-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;

-s SHELL:新的默认SHELL;

-c 'COMMENT':新的注释信息;

-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;

-l login_name: 新的名字;

-L: lock指定用户

-U: unlock指定用户

-e YYYY-MM-DD: 指明用户账号过期日期;

-f INACTIVE: 设定非活动期限;


(32)passwd: 给用户添加密码

passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限

passwd: 修改自己的密码;


常用选项:

-l: 锁定指定用户

-u: 解锁指定用户


-n mindays: 指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-i inactivedays:非活动期限;


--stdin:从标准输入接收用户密码;

echo "PASSWORD" | passwd --stdin USERNAME


Note: /dev/null, bit buckets

     /dev/zero, 

(33)userdel :  删除用户

userdel [OPTION]... login

-r: 删除用户家目录;


(34)groupmod : 组属性修改

groupmod [OPTION]... group

-n group_name: 新名字

-g GID: 新的GID;


(35)groupdel:组删除


(36)gpasswd:组密码


(37)chage:修改用户属性

chage [OPTION]... LOGIN

-d LAST_DAY

-E, --expiredate EXPIRE_DATE

-I, --inactive INACTIVE

-m, --mindays MIN_DAYS

-M, --maxdays MAX_DAYS

-W, --warndays WARN_DAYS

(38)chmod: 修改文件权限

chmod [OPTION]... OCTAL-MODE FILE...


-R: 递归修改权限


chmod [OPTION]... MODE[,MODE]... FILE...

MODE:

修改一类用户的所有权限:

u=

g=

o=

ug=

a=

u=,g=


修改一类用户某位或某些位权限

u+

u-


chmod [OPTION]... --reference=RFILE FILE...

参考RFILE文件的权限,将FILE的修改为同RFILE;

(39)chown: 修改文件的属主

chown [OPTION]... [OWNER][:[GROUP]] FILE...


用法:

OWNER

OWNER:GROUP

:GROUP


Note: 命令中的冒号可用.替换;


-R: 递归


chown [OPTION]... --reference=RFILE FILE...

(40)chgrp: 修改文件的属组

chgrp [OPTION]... GROUP FILE...

        chgrp [OPTION]... --reference=RFILE FILE...


(41)umask: 文件或目录创建时的遮罩码

        FILE: 666-umask

     Note: 如果某类的用户的权限减得的结果中存在x权限,则将其权限+1

     DIR: 777-umask


     umask: 查看

     umask #: 设定