1、date 显示或设置系统时间。 格式: date [OPTIONS] ["STRING"] [+"FORMAT"] 选项: -s # 设置系统时间 -u # 显示GMT时间 -d # 将后面"STRING"(STRING通常是时间)字符按FORMAT格式显示 FORMAT: %H 小时,24小时制(00~23) %I 小时,12小时制(01~12) %k 小时,24小时制(0~23) %l 小时,12小时制(1~12) %M 分钟(00~59) %p 显示出AM或PM %r 显示时间,12小时制(hh:mm:ss %p) %s 从1970年1月1日00:00:00到目前经历的秒数 %S 显示秒(00~59) %T 显示时间,24小时制(hh:mm:ss) %X 显示时间的格式(%H:%M:%S) %Z 显示时区,日期域(CST) %a 星期的简称(Sun~Sat) %A 星期的全称(Sunday~Saturday) %h,%b 月的简称(Jan~Dec) %B 月的全称(January~December) %c 日期和时间(Tue Nov 20 14:12:58 2012) %d 一个月的第几天(01~31) %x,%D 日期(mm/dd/yy) %j 一年的第几天(001~366) %m 月份(01~12) %w 一个星期的第几天(0代表星期天) %W 一年的第几个星期(00~53,星期一为第一天) %y 一年的最后两个数字(1999则是99) 修改时间: date -s "07/01/2017 13:01:30" 其他时间显示: date -d "[-4|4] year|month|day|hour|minute|second ago" "+%Y-%m-%d-%H:%M:%S" 2、hwclock|clock 显示硬件时钟。 选项: -s --hctosys # 以硬件时间为准,校准系统时间 -w --systohc # 以系统时间为准,校准硬件时间 3、cal cal # 默认显示当月时间 cal -y # 显示全年时间 cal 日 月 年# 显示指定日期 4、shutdown 选项: -r # 重启 -h # 关机 -c # 取消关机 格式: shutonwn option TIME ["MESG"] MESG: 提示信息。超过十五分钟的信息不会发送 TIME: 相对时间:+time。例如+3,三分钟之后 绝对时间:时:分 now 马上关机 5、screen 选项: -ls # 显示已经打开的会话 -r # 恢复已经打开的会话 -S NAME # 新建一个会话,可以定义一个会话名称 -x NAME|ID # 进入一个会话 Ctrl+a d # 临时离开会话 exit # 关闭会话 以同一身份登录同一台主机,进入同一个会话,可以同步显示双方的操作。 6、echo 将输入的字符串输出到标准输出,并在最后默认加上换行符。 选项: -n # 不自动换行 -e # 启用字符'\'的解释功能 \a # 蜂鸣 \b # 退格键,覆盖前面的一个字符 \c # 最后不加换行符号 \n # 换行且光标移动至行首 \r # 回车,光标移动到首行,不换行 \t # 插入tab键 \\ # 插入\符号 \0... # 插入八进制 \x.. # 插入十六进制 示例: echo {1..10} echo {a-z} echo {z-a} echo {1..100..3} # 1 7、bc Linux下的计算器 进制转换: obase=8 # 输出为八进制 | ibase=8 # 输入为八进制 65 101 8、history 1、$HISTSIZE 变量中保存内存中历史记录的最大条数,本地登录的历史记录,不会记录到.bash_history文件中。默认历史保存在 内存中。 2、.bash_history 文件中保存历史记录。 3、开机系统会读取.bash_history文件中的记录到内存中 4、$HEITFILESIZE 变量中保存文件中保存的最大历史记录数 $HISTTIMEFORMAT='%F %T ' # 定义命令历史文件中时间格式 $HISTIGNORE="STR1:STR2........" # 定义忽略某些命令记录到历史命令文件中,支持使用通配符,(*),例如systemctl* $HISTCONTROL=ignoredups(默认)|ignorespace|ignoreboth|erasedups # 忽略重复连续且相同|忽略空白行打头的命令|dups,sapca的组合|删除重复命令 $HISTFILE # 指定历史记录文件 选项: -c # 清除内存总所有历史记录 -w # 将当前内存中历史记录写入历史记录文件 -d N # 删除历史记录中第N条历史记录 N # 显示最近的N条历史记录 -a # 将当前会话中心增加的历史记录追加到文件中 -n # 将文件中的可能是其他会话新增的历史记录读取到内存的历史记录列表中 -p # 不将执行记录记录到历史记录中 -s # 将命令放入历史记录中,但事实上命令没有执行。伪造历史记录 其他使用: !-4 # 执行倒数第四条历史记录 !N # 执行历史记录的第N条命令 !!|Ctrl+p # 执行上一条命令 !?STRING # 执行最近命令中包含STRING字符的历史记录命令 !STRING:p # 仅显示符合结果的历史命令但不执行 ^STRING # 删除上一条历史命令中的STRING字符并执行 ^STRING1^STRING2 # 将历史记录中的最近的一条命令中的STRING1替换为STRING2 !:gs/STRING1/STRING2 # 将STRING1全部替换为STRING2 !* # 引用上一条命令的全部参数 9、pwd 选项: -P # 显示物理的真实路径 10、cd 选项: -P # 进入物理路径而非软链接路径 cd - # 返回上一次的工作目录。$OLDPWD变量保存上一次的工作目录路径 11、stat 查看文件元数据信息 File: ‘test.file’ Size: 4 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 33902779 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2017-07-06 18:10:46.050957503 +0800 # 访问时间,atime,读取文件的内容(保护机制,避免频繁的读写操作) # 时间改变条件:一天之内没有访问或则mtime比atime时间早,访问就会改 # echo 12 >> file # 只改变mtime时间戳 Modify: 2017-07-06 18:10:31.365957816 +0800 # 修改时间,mtime,改变文件内容(数据)(ls命令默认显示mtime) Change: 2017-07-06 18:10:31.365957816 +0800 # 改变时间,ctime,元数据发生改变 关闭atime的改变: charrt +A FILE 12、ls 选项: -R # 递归显示目录下的文件 -1 # 文件分行显示 -S # 按照从大到小排序 -t # 按mtime时间戳排序 -u # 按atime时间戳排序,从新到旧 -c # 按ctime时间戳排序 -d # 只显示目录本身,不显示目录下的内容 -r # 反向排序 -A # 除. 和 .. 目录不显示 -U # 按目录存放先后顺序显示 -X # 按文件后缀排序 只显示某目录下的非隐藏目录:ls -d /etc/*/ 注意: ll -d /bin lrwxrwxrwx. 1 root root 7 Jun 28 06:21 /bin -> usr/bin ll -d /bin/ dr-xr-xr-x. 2 root root 45056 Jul 19 08:47 /bin/ 13、touch 刷新所有的时间戳。 选项: -a # 仅仅改变atime和ctime -m # 改变mtime和ctime -t # 指定修改时间戳atime,mtime,格式201707070941.30 -c # 不创建任何文件,如果文件存在,则刷新其时间戳 14、cp 格式: cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 选项: -i # 覆盖前询问,交互式 -r,R # 递归复制目录及内部的所有内容 -a # 归档。相当于-dR,-d表示不追踪软链接的源 -d|-P # 若源文件是一个链接文件,则复制后还是链接文件 --preserv= # 值可以是mode(权限)|ownership(属主属组)|timestamp(时间戳)|links(链接属性)|xattr(特殊属性)|context(安全上下文)|all -p # 保留权限、属主、时间戳,包括特殊权限 -v # 显示复制过程 -f # 强制[覆盖].注意:普通用户对本用户家目录内的文件可能没有访问权限,但一定有权限删除。 -f选项可以先强制删除然后覆盖本用户家目录内没有权限访问的文件或目录 注意: 复制一个软链接目录时,复制命令:cp -r /bin/ . ;如果cp -r /bin/ . 则复制的是一个链接文件 15、mv 格式: mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... 选项: -i # 交互式 -f # 强制 16、rm 选项: -r # 递归 -f # 强制删除。忽略不存在的文件和参数,不提示 注意: rm -rf dir/ # 表示删除dir目录及其目录下的所有文件 rm -rf dir/* # 表示删除dir目录下是所有文件,dir目录保留 注意:生产环境中,当磁盘已满的时候,立刻删除大文件,用df查看磁盘使用情况,发现磁盘空闲容量并没有减少, 可能是因为那个大文件正在有程序在读取,所以磁盘空闲容量并没有减少。例如用cat命令查看 在这种情况下,可以使用 > bigfile 将大文件覆盖,即可立刻释放磁盘容量。 17、rename 格式: rename '.txt' '.txt.bak' *.txt 原名称后缀 修改后缀 修改那些后缀的文件 18、tree 显示目录结构 选项: -d # 只显示目录 -L level # 指定目录显示层级 -P pattern # 显示由指定pattern匹配到的路径 19、mkdir 选项: -p # 递归创建目录 -m MODE # 创建目录的同时指定权限 -v # 显示详细信息过程 20、rmdir 只能用于删除空目录 选项: -p # 递归删除,逆向删除,直到遇到非空目录 -v # 显示详细过程 注意: 可以删除当前正处的目录 21、shred 粉碎文件 shred -zvn5 FILENAME 22、hexdump hexodump -C -n 1-24 FILENAME 查看二进制文件 23、dos2unix unix2dos 文件格式转换 24、watch 即时窗口显示 watch -n 1 'COMD' 25、ln 选项: -f # 删除现有的链接文件 硬链接: ln /path/to/file1 /path/to/file2 # 硬连接。用一个文件,只是文件名不同 属性完全相同 删除其中一个,不影响另一个文件 有相同的inode 不允许对目录进行创建硬链接 不支持跨驱动和跨分区创建 硬链接和源文件处于平等身份 软链接: 删除软链接,源文件不受影响 删除源文件,则不能用软链接访问 可以跨设备跨分区进行创建软链接 创建软链接时写绝对路径 可以对目录创建软链接 链接数不会增长 不是同一个文件,软链接文件的信息是源文件的路径,软链接文件的大小为路径字符的长度 不能对设备文件创建软链接 操作软链接文件和原始文件的效果是一样的 软链接是通过路径找原始文件的 26、file 选项: -b # 列出文件类型结果,不显示文件名 -f FILELIST # 列出FILELIST文件中的文件的类型结果。在文件中填写文件名路径,然后执行,批量查看文件的类型 -F 'CHAR' # 结果用指定的分割符号分割 -L # 查看软链接对应的文件的类型 27、wall wall "STRING" 向所有终端用户发送消息 28、set set命令用来设置或取消shell的选项或属性。 set -C # 如果设置,则不允许通过重定向的方式覆盖现有文件 set +c # 关闭覆盖保护的设置 29、less 一页一页的查看输出,可以翻页,可以滚动行j,k 30、ldd ldd ... 查看程序调用的库文件 31、time 统计运行指令所消耗的时间 real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。 user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。 sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间 32、runlevel 查看当前运行级别和上次运行级别 33、id 选项: -g # 显示主组GID -G # 显示主组和附加组GID -u # 显示UID -n # 显示名称而非数字,和gGu搭配使用 34、who 选项: -H # 显示由标签格式的 -r # 显示运行级别 -m # 仅显示当前用户的信息 -q # 显示登录用户的个数 35、init 选项: init 0 # 关机 init 1 # 单用户模式 init 5 # 图形界面 init 6 # 重启 36、iconv 编码转换工具,windows默认编码格式的gb2312 选项: -l # 列出支持的编码 -f # 指定源文件编码 -t # 指定目标文件编码 -o # 指定输出文件路径名称 示例: iconv -f gb2312 win.txt -o wintounix.txt iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt 37、blkid 查看设备的UID 38、timedatectl 查询或改变系统时间 选项: set-time "2012-10-30 18:17:16" # 设置系统时间 list-timezones # 列出时区 set-timezone TIMEZONE # 设置系统时区 status # 查看时间状态 39、ntpdate ntpdate 172.18.0.1 # 从时间服务器同步时间 40、xargs 选项: -p # 每执行一个参数,询问一次 -n # 每次执行,给后面的指令几个参数 示例: # 一次删除系统创建的普通用户 cat /etc/passwd | cut -d ':' -f 1 | tail -18 | xargs -p -n 1 userdel -r 41、install 用于复制文件或者创建目录 格式: install [OPTION]... [-T] SOURCE DEST # 复制 install [OPTION]... SOURCE... DIRECTORY # 复制 install [OPTION]... -t DIRECTORY SOURCE... # 复制 install [OPTION]... -d DIRECTORY... # 创建目录 选项: -d DIR_NAME # 创建目录 -m MODE # 指明权限 -o OWNER # 指明属主 -g GROUP # 指明属组 45、tcpdump 语法格式: tcpdump [-AbdDefhHIJKlLnNOpqRStuUvxX] [ -B buffer_size ] [ -c count ] [ -C file_size ] [ -G rotate_seconds ] [ -F file ] [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ] [ -P in|out|inout ] [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret,... ] [ -y datalinktypetype ] [ -z postrotate-command ] [ -Z user ] 选项: -i # 指定网卡 示例: # 抓ARP包 tcpdump -i ens33 -nn -x arp # 抓icmp包 tcpdump -i ens33 -nn icmp http://linuxwiki.github.io/NetTools/tcpdump.html#211ssh 46、logger 测试生成一条日志。 logger "this is a log" 会记录到 /var/log/messages 文件中