Linux 内核是什么
Linux 内核,即 Linux 操作系统的核心。它主要由以下模块组成:
1 2 3 4 5 6 7 8 9 10 11 进程管理 定时器 中断管理 内存管理 模块管理 虚拟文件系统接口 文件系统 设备驱动程序 进程间通信 网络管理 系统引导
Linux 默认有 7 个运行级,从运行级 0 到运行级 6,每一个运行级所对应的含义如下:
1 2 3 4 5 6 7 运行级0:关机。 运行级1:单用户模式,系统出现问题时可使用这种模式进入系统维护,典型的使用场景是在忘记root密码时可进入此模式修改root密码。 运行级2:多用户模式,但是没有网络连接。 运行级3:完全多用户模式,这也是Linux服务器最常见的运行级。 运行级4:保留未使用。 运行级5:窗口模式,支持多用户,支持网络。 运行级6:重启
通过多种方式来访问和使用 Shell
1 2 3 终端——Linux桌面提供基于GUI的登录系统。一旦登录你就可以通过运行X终端(XTerm)、Gnome终端(GTerm)或KDE终端(KTerm)应用程序来访问Shell。 安全Shell连接(SSH)——可以通过它远程登录服务器或工作站来访问其Shell。 控制台——一些Linux系统同样提供基于文本的登录系统。通常情况下,登录系统后就可以直接访问Shell。
以使用如下命令查看系统中所有可用的 Shell:cat /etc/shells
1 2 3 4 5 6 7 /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/ksh
Shell 脚本是 Linux/Unix 编程环境的基本组成部分。Shell 脚本一般由以下几部分构成:
1 2 3 4 5 6 Shell关键字——例如if …else ,for do …done 。 Shell命令——例如export ,echo ,exit ,pwd ,return 。 Linux命令——例如date ,rm ,mkdir 。 文本处理功能——例如awk,cut ,sed,grep。 函数——通过函数把一些常用的功能放在一起。例如,/etc/init.d目录中的大部分或全部系统Shell脚本所使用的函数都包含在文件/etc/init.d/functions中。 控制流语句——例如if …then …else 或执行重复操作的Shell循环。
chmod 755 myScript.sh
755
将给你读写和执行的权限,其他人将只有读和执行的权限 如果你希望你的脚本是私有的(即,只有你可以读写和 执行),则请使用 700
替代
Bash Shell
Bash
是一个与 Bourne Shell
兼容的、执行从标准输入设备或文件读取的命令的命令语言解释器。Bash 是 Bourne-Again Shell 的缩写。
与登录 Shell 相关的文件
1 2 3 4 5 6 7 8 /etc/profile——系统级的初始化文件,定义了一些环境变量,由登录Shell调用执行。 /etc/bash.bashrc或/etc/bashrc——其文件名根据不同的Linux发行版而异,每个交互式Shell的系统级的启动脚本,定义了一些函数和别名。 /etc/bash.logout——系统级的登录Shell清理脚本,当登录Shell退出时执行。部分Linux发行版默认是没有此文件。 $HOME /.bash_profile、$HOME /.bash_login、$HOME /.profile——用户个人初始化脚本,由登录Shell调用执行。这三个脚本只有一个会被执行,按照此顺序查找,第一个存在的将被执行。$HOME /.bashrc——用户个人的每个交互式Shell的启动脚本。$HOME /.bash_logout——用户个人的登录Shell清理脚本,当登录Shell退出时执行。$HOME /.inputrc——用户个人的由readline使用的启动脚本,定义了处理某些情况下的键盘映射
Bash 命令常识
当用户登录时,登录 Shell 会调用如下脚本:
1 2 3 4 5 /etc/profile——当用户在运行级别3登录系统时首先运行 /etc/profile.d——当/etc/profile运行时,会调用该目录下的一些脚本 $HOME /.bash_profile、$HOME /.bash_login和$HOME /.profile——在/etc/profile运行后,第一个存在的被运行$HOME /.bashrc ——上述脚本的中一个运行后即调用此脚本/etc/bashrc或/etc/bash.bashrc——由$HOME /.bashrc调用运行
当一个交互式的非登录 Shell 启动时,Bash 将读取并运行如下脚本:
1 2 3 4 $HOME /.bashrc——如果此文件存在即被运行。/etc/bashrc——将被$HOME /.bashrc调用运行。 /etc/profile.d——此目录下的脚本将被/etc/bashrc或 /etc/bash.bashrc调用运行
Bash 启动脚本主要设置的环境有:
1 2 3 4 5 6 设置环境变量PATH和PS1 通过变量EDITOR设置默认的文本编辑器 设置默认的umask (文件或目录的权限属性) 覆盖或移除不想要的变量或别名 设置别名 加载函数
Bash 退出脚本
1 2 3 4 5 当登录Shell 退出时,如果$HOEM /.bash_logout脚本存在的话,Bash会读取并执行此脚本的内容 此脚本主要用途: 使用clear命令清理你的终端屏幕输出; 移除一些临时文件 自动运行一些命令或脚本等
Shell 中的变量
1 2 3 4 5 变量是任何程序或脚本的重要组成部分。变量为程序或脚本访问内存中的可被修改的一块数据提供了简单的方式。 Linux Shell中的变量可以被指定为任意的数据类型,比如文本、或是数值。你也可以通过修改Shell中的变量来改变Shell的样式。 接下来就让我们来了解和学习一下Shell中的变量。
Shell 中变量的类型 Shell 中有两种变量的类型:系统变量(环境变量)和用户自定义的变量(本地变量或 Shell 变量)。 系统变量是由 Linux Bash Shell 创建和维护的变量。你可以通过修改系统变量,如 PS1、PATH、LANG、HISTSIZE 和 DISPLAY 等,配置 Shell 的样式。 ![](1-Shell 学习/d5315f89a299bc8d0a2318a6ae359453.png)
Shell 变量赋值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 1. varName=VaeValue 赋值语句=两边不能有空格 2. 注意Shell的默认赋值是字符串赋 如 var=1 var=$var +1 echo $var 输出 1+1 3. 在Bash中,如果要将算术表达式的数值赋值给一个变量,可以使用let 命令 let var=2+1 echo $var 输出 3 4. 将命令的执行结果赋值给变量,如下所示: var='pwd' echo $var 输出 /home/yantaol 5. 或者也可以使用$(…)来实现同样的功能: var=$(pwd ) echo $var 输出 /home/yantaol 6. Bash的内置命令read 读入的内容赋值给变量 echo -n "输入变量值:" ; read var Enter var:123 echo $var 输出 123 7. export 语句的使用 Bash的内置命令export 会将指定给它的变量或函数自动输出到后续命令的执行环境。export 命令的语法如下所示: export [-fnp] [变量或函数名称]=[变量设置值] -f选项表示export 一个函数; -n选项表示将export 属性从指定变量或函数上移除; -p选项打印当前Shell所有输出的变量,与单独执行export 命令结果相同。 8. 删除变量 unset 变量名 9. 命令历史 (命令历史保存在缓冲区或是默认文件~/.bash_history中,其保存命令的多少由环境变量 HISTSIZE 定义 ) history ctrl+r组合键后输入相应的关键字可以搜索历史命令 Shell命令行提示符下,可以简单地输入!!,来重复执行上一条执行过的命令 8. 回调最近一次执行的以指定字符开头的命令,如下所示:
![](1-Shell 学习/b7b5a1a2362c3ad780ef51257866e848.png)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 9 . 以使用由history 命令列出的列表的行号来重新调用相应的历史命令 $ history …… 990 uptime 991 uptime 992 man svn 993 history 994 pwd 995 history $ !991 10 . Shell中扩展的方式有8 种 按扩展的先后顺序排序: 大括号扩展、 波浪号扩展、 参数和变量扩展、 命令替换、 算术扩展、 进程替换、 单词拆分 文件名扩展 大括号扩展是一种能够生成任意字符串的机制 $ echo a{b,c,d}e abe ace ade 波浪号扩展 $ echo {a..z} a b c d e f g h i j k l m n o p q r s t u v w x y z 大括号扩展也可以是嵌套的。每个扩展字符串的结果是不排序的 $ echo {a,b{1 ..3 },c} a b1 b2 b3 c 波浪号扩展可用来指代你自己的主目录,或其他人的主目 $ cd ~ $ cd ~fred 如果波浪号前缀是“~+”,则它会被Shell变量PWD 的值代替 $ echo ~+ /tmp 如果波浪号前缀是“~-”,则它会被Shell变量LODPWD的替代 echo ~- /home/yantaol 命令替换是用命令的输出替换命令本身,命令替换有如下两种形式: $ (COMMAND) 或者 'COMMAND' Bash进行这个扩展时,先执行命令,然后用命令的标准输出结果取代命令替换,命令的标准输出结果中最后面的换行符会被删除 $ echo $ (uptime) 17 :10 :35 up 2 days, 11 :07 , 0 users, load average: 0.00 , 0.00 , 0.00 如果Bash中没有设置-f 选项,就会支持文件名扩展。Bash支持以下三种通配符来实现文件名扩展 * ——匹配任何字符串,包括空字符串。 ? ——匹配任意单个字符。 […]——匹配方括号内的任意字符。
命令别名 为了方便,对于频繁使用的命令可以在文件 ~/.bashrc
文件下为这些命令创建别名,创建别名语法如下
1 2 3 4 5 alias name ='command' name ——用户定义的用于别名的任意简短的名字。command——任意Linux命令 #alias 不带任何参数即列出所有别名 $ alias
Bash 的内置命令 set 和 shopt 可以用于设置 Shell 选项
每次登录时自动设置你的 Shell 提示符, 需要将环境变量 PS1 放在你的~/.bashrc 文件中,并使用 export 命令将其输出到其他子命令
查看文件和目录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 ll 、cat -n 、cat test test1 > test2、more /etc/inittab、 cat README | more 、less /etc/fstab、head -n 5 /etc/inittabtail -n 10 /etc/inittab$ file /etc/inittab /etc/inittab: ASCII English text 使用用-i选项,可以MIME类型的格式显示文件类型的信息 使用-N选项,输出的队列可以以在文件名之后无空白填充的形式显示,其格式对比 如下: $ file -N * wc 命令用于查看文件的行数、单词数和字符数等信息。其语法类似如下所示:wc filenameX Y Z filename X:表示行数。 Y:表示单词数。 Z:表示字节数。 filename:表示文件名 wc /etc/inittab53 229 1666 /etc/inittab find find /etc -name inittab 在当前目录下,查找名称为inittab的文件: find . -name inittab 找出当前目录下,文件名不区分大小写是example的所有文件: $ find . -iname example 找出当前目录下,目录名是tmp的目录: find . -type d -name tmp 找出当前目录下,文件权限是777的所有文件: find . -type f -perm 0777 找出当前目录下,文件权限不是777的所有文件: find . -type f ! -perm 777 找出/etc/目录下所有只读文件: find /etc -type f ! -perm /a+w 找出你账号的主目录下的所有可执行文件: find ~ -type f -perm /a+x 出/tmp目录下的.log 文件并将其删除: find /tmp/ -type f -name "*.log" -exec rm -f {} \; 找出当前目录下的所有空文件: find . -type f -empty 找出当前目录下的所有空目录 find . -type d –empty 找出/tmp目录下的所有隐藏文件: find /tmp/ -type f -name ".*" 找出/tmp目录下,所有者是root的文件和目录: find /tmp/ -user root 找出/tmp目录下,用户组是developer的文件和目录: find /tmp/ -group developer 找出你账号的主目录下,3天前修改的文件: find ~ -type f -mtime 3 找出你账号的主目录下,30天以前修改的所有文件: find ~ -type f -mtime +30 找出你账号的主目录下,30天以前60天以内修改的所有文件: find ~ -type f -mtime +30 -mtime -60 找出/etc目录下,一小时以内变更过的文件: find /etc -type f –cmin -60 找出/etc目录下,一小时以内访问过的文件: find /etc -type f -amin -60 找出你账号的主目录下,大小是50MB的所有文件: find ~ -type f -size 50MB 找出你账号的主目录下,大于50MB小于100MB的所有文件: find ~ -type f -size +50MB -size -100MB
操作文件和目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 touch 命令实例:创建文件touch 命令就可用于创建、变更和修改文件的时间戳。它是Linux操作系统的标准程序。touch 命令有如下选项。 -a:只改变访问时间。 -c:不创建任何文件。 -m:只改变修改时间。 -r:使用指定文件的时间替代当前时间。 -t:使用[[CC]YY]MMDDhhmm[.ss]替代当前时间。 你可以同时使用-c和-t选项,来明确设置文件的时间,命令格式如下所示: touch -c -t YYMMDDHHMM filename如果想使用文件myeffyl的时间戳更新文件effyl的时间戳,那么可以使用-r选项: touch -r myeffyl effylmkdir -p /home/yantaol/backup/oldmkdir -p -m a=rwx backup/oldcp 使用-p选项,可以使复制一个文件到新文件时,保留源文件的所有者、用户组、权限、修改和访问时间,以及一些扩展属性等信息: 使用-R或-r选项,可以递归地复制一个目录,即将一个目录及其下的所有文件和子目录都复制到另一个目录 cp -a * /home/yantaol/backup-a:存档模式。相当于-dpR。 -d:保留软链接。 -p:保留权限、所有权和时间戳等信息。 -R:递归地复制目录。 ln 软链接又称符号链接,是一类特殊的文件,这个文件包含了另一个文件或目录的路径名(绝对路径或相对路径)。在对符号文件进程读或写操作时,系统会自动把该操作转换为对源文件或目录的操作,但输出链接文件时,系统仅仅删除链接文件,而不删除源文件或目录本身。软链接可以链接不同文件系统的文件 硬链接可以理解为一个文件的一个或多个文件名。它引用的是文件在文件系统中的物理索引(也称为inode)。当你移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。如果你删除的文件有相应的硬链接,那么这个文件依然会被保留,直到所有对它的引用都被删除,即硬链接数为0。硬链接只能链接同一文件系统中的文件。 使用-s选项,可以创建一个软链接 ln -s /full/path/of/original/file /full/path/of/symbolic/link/file ls -l /home/yantaol/lib/ library.so 在目录/home/yantaol/lib下创建一个软链接library.so,链接到/home/yantaol/src/ library.so: ln -s /home/yantaol/src/library.so /home/yantaol/lib 当前目录下,创建文件src_original.txt的硬链接,名称为dst_link.txt。两个文件的inode编码应该相同: ln src_original.txt dst_link.txt mv 命令实例:重命名文件或目录rm 命令实例:删除文件或目录
管理文件或目录权限 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ls -l:显示文件和目录权限$ chmod \[OPTION\]…\[ugoa\]\[\[+-=\]\[rwxug\]\]\[,...\] FILE… 字母“ugoa”的组合控制哪些用户对文件的访问权限将被改 u:指文件或目录的所有者。 g:指文件或目录的用户组的成员。 o:指不在文件或目录的用户组中的其他用户。 a:指所有用户,即(ugo) 操作符“+-=”表示权限的授予或撤销。 +:选定的权限将被添加。 -:选定的权限将被移除。 =:文件只拥有选定的权限。
注意:如果使用 chmod 命令的符号表达式模式时,不给出“ugoa”的组合,则得到的结果和使用“a”相同。
1 2 3 4 5 6 7 8 9 10 11 赋予所有人对文件读、写和执行的权限: chmod ugo+rwx example.shchmod 777 example.sh$ chmod 664 example.sh chmod -R 755find . -type d -exec chmod -R 775 {} \
chown 命令用于修改文件或目录的所有者和用户组信息
1 2 3 4 5 6 7 chown [OPTION]… [OWNER][:[GROUP]] FILEchown root example.shchown yantaol:yantaol example.shchown -R -H yantaol:yantaol linux_symlnk
chgrp
命令与 chown
类似,只是不能修改其所有者setuid
(设置用户标识)是允许用户以文件所有者的权限执行一个程序的权限位setgid
(设置组标识)是允许用户以用户组成员的权限执行一个程序的权限位
文本处理 locale 配置
sort、uniq 等命令的输出结果,会受到 linux 系统中 locale 配置的影响。而大部分 linux 系统的默认 locale 配置,要么为空,要么为 “en_US.utf-8”。
顾名思义,locale 代表本地化的意思,它定义了系统运行时所依赖的语言环境。所以,不同的区域设置,注定会导致程序运行的输出格式不一致。
让我们来看下,locale 配置究竟包含哪些变量。输入 locale 命令,查看当前系统的环境设置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" ... LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= LANG:用于设定LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则会默认使用该值 LC_COLLATE:变量,决定排序能否正常执行 LC_ALL:是一个宏,如果该值指定了,则会覆盖所有LC_*的值。注意,LANG值并不受该宏的影响 locale设置的优先级关系:LC_ALL > LC_* > LANG LC_ALL=C sort a.txt | LC_ALL=C uniq
sort 命令实例:文本排序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 $ sort example.txtabc def def ghi jkl mno sort -t ',' -k2 ,2 example.txt[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ] sort -t ',' -k2nr ,2 example.txtsort -k 1.2 , 1.3 nr example.txt
uniq 文本去重 uniq
命令用于移除或发现文件中重复的条目
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 使用uniq 命令,不带有任何选项时,它将移除文件中重复的行并显示单一行: uniq example.txt 使用-c选项,可以统计重复行出现的次数: uniq -c example.txt 2 aaa 3 bbb 1 ccc 使用-d选项,只显示文件中有重复的行并只显示一次: uniq -d example.txt aaa bbb 使用-D选项,与-d选项类似,但它显示文件中所有重复的行 uniq -D example.txt aaa aaa bbb bbb bbb 使用-u选项,只显示文件中不重复的行: uniq -u example.txt ccc cat example.txt 使用-w选项,可以限制uniq 命令只比较每行的前N个字符。例如,下面的实例中,限制uniq 命令只比较每行的前3个字符是否重复: uniq -w 3 example.txt 使用-s选项,可以避免uniq 命令比较每行的前N个字符,即跳过每行的前N个字符,只比较后面的字符。例如,下面的实例中,避免uniq 命令比较每行的前3个字符,只比较后面的字符是否重复: uniq -s 3 example.txt 使用-f选项,可以避免uniq 命令比较前N列,即跳过前N列(这里列以空格分隔),只比较后面的字符。 避免uniq 命令比较第一列的内容,只比较后面的字符是否重复: uniq -f 1 example.txt
tr 命令:替换或删除字符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 tr 命令语法tr [OPTION]... SET1 [SET2]tr 功能:转换字符,如果把SET1和SET2同时指定,并没有指定-d选项,那么tr 命令将把每个s1的都换成s2的 下面将所有小写转换为大写 echo LinuxShell | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ LINUXSHELL 下面的实例同样可以将字符串中的所有小写字母转换为大写字母: echo linuxShell | tr [:lower:] [:upper:] echo linuxShell | tr a-z A-Z 使用tr 命令转换一个文件中的内容,并将转换的结果输出到另一个文件: tr '{}' '()' < inputfile > outputfile 使用-s选项压缩重复的空格 使用-d选项删除指定字符 echo "The Linux Shell" | tr -d a-z T L S echo "my username is yantaol123" | tr -d [:digit:] my username is yantaol 将-c和-d选项结合使用,删除字符串中除数字以外的所有字符: echo "my username is yantaol123" | tr -cd [:digit:]
grep 命令 查找字符串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 grep [OPTION]… PATTERN [FILE]… grep [OPTION]… [ -e PATTERN | -f FILE] [FILE]… 使用-i选项,可以强制grep命令忽略搜索关键字的大小写: grep -i YantaoL /etc/passwd 使用-r选项,可以递归搜索指定目录下的所有文件 grep -r yantaol /etc/ grep -R yantaol /etc/ 将-r选项与-l选项结合使用,grep命令可以只打印输出包含匹配指定模式的行的文件的名字: grep -rl yantaol /etc/ /etc/passwd /etc/shadow 使用-w选项,就可以强制grep命令只匹配包含指定单词的行,,查找文件/etc/passwd中只包含指定单词yantao grep -w yantaol /etc/passwd 使用-c选项,grep命令可以报告文件或文本中模式被匹配的次数 使用-n选项,grep命令可以显示每一个匹配的行的行号 使用-v选项,grep命令可以输出除匹配指定模式的行以外的其他所有行: 用--color选项,grep命令在输出中将匹配的字符串以彩色的形式标出
diff 命令实例:比较两个文件 1 2 3 4 5 6 7 8 diff命令语法 diff [OPTION]… from-file to-file使用-w选项,diff命令将在比较两个文件时忽略空格 使用-y选项,diff命令可以并排的格式输出两个文件的比较结果 使用-y选项时,每行显示的内容不完整,可以与-W选项结合使用,指定并列输出格式的列宽,使每行的内容可以完整地显示 diff -yw –W 160 nsswitch.conf nsswitch.conf.org 使用-c选项,diff命令会以上下对比的格式输出两个文件的比较结果: diff -cw nsswitch.conf nsswitch.conf.org
其他常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 hostname 使用hostname命令修改你的系统的主机名: hostname yantaol-system 注意:上述命令只是临时地修改系统的主机名。当系统重启后,这个新修改的主机名将不会被使用 w命令用于显示登录的用户及他们当前运行的进程 命令输出的第一行内容与uptime 命令默认输出的内容相同。第三行分别显示的是:登录账号的用户名、tty 名称、从哪台主机登录、登录时间、空闲时间、tty 上的所有进程所使用的CPU时间、当前进程所使用的CPU时间以及当前运行的进程。 who 命令的语法如下所示:(who 与w相似,比w强大)who [OPTION]… [ FILE | ARG1 ARG2 ]直接使用who 命令,不知道任何参数,将显示当前登录的所有用户的信息 使用-b选项,who 命令可以显示系统的启动时间 使用-l选项,who 命令会显示出系统登录进程 使用-m选项,who 命令将只显示与当前标准输入关联的用户信息 使用-r选项,who 命令将显示系统的运行级别 使用-q选项, who 命令将只显示所有登录用户的用户名和登录的用户数 uptime 查看系统运行时间uname 查看系统信息使用-n选项,uname 命令将只打印系统的主机名,其输出与hostname命令相同 使用-r选项,uname 命令将打印内核版本信息 使用-m选项,uname 命令将打印系统的硬件名 使用-p选项,uname 命令将打印系统的处理器类型的信息 使用-i选项,uname 命令将打印系统的硬件平台信息 使用-a选项,uname 命令将打印上述所有示例中的信息 date 使用-d或--date 选项,你可以指定日期和时间的字符串值,date 命令会将此输入的字符串转换为相应的日期时间格式: date --date ="10/1/2013" 使用-f或--file选项,date 命令可以从文件中读取多个日期时间字符串,并将其转换为相应的日期时间格式打印输出 date --file=datefile 使用-s或--set 选项,date 命令可以设定系统的日期和时间 使用-u或--utc或--universal选项,date 命令将打印输出世界标准时间 使用-r选项,date 命令可以打印输出指定文件的最近修改时间 用格式化选项来自定义date 命令打印输出的时间和日期的格式 date +%<format-option> id 命令显示用户属性id 命令用于打印输出用户的uid、gid、用户名和组名等用户身份信息使用-u选项,id 命令将只打印输出用户的uid 使用-u选项和-n选项结合使用,可以打印输出账号的用户名,而不是uid 使用-g选项,id 命令将只打印输出账号当前起作用的gid 使用-G选项,id 命令将打印输出账号所属于的所有群组的id 使用-G与-n选项结合使用,可以打印输出账号所属于的所有群组的名称