linux终端和shell
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux终端和shell相关的知识,希望对你有一定的参考价值。
第一章 介绍和安装linux
请自行百度
第二章 linux终端和shell
linux终端
虚拟终端由mingetty程序产生
切换终端 ctrl+alt+fn n=1-6
虚拟终端(输入tty显示当前是那个终端)
[[email protected] ~]# tty
/dev/tty1
模拟终端 (使用ssh通过网络连接到linux)
[[email protected] ~]# tty
/dev/pts/0
linux的shell
查看系统使用的shell
[[email protected] ~]# echo $SHELL
/bin/bash
查看系统可用的shell
[[email protected] ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
bash功能
命令行编辑
1) 光标快速移动
ctrl+a 跳到行首
ctrl+e 跳到行尾
2) 删除命令中的内容
ctrl+w 删除光标前一个单词
ctrl+u删除光标行首的字符
ctrl+k删除光标行尾的字符
3) 清屏
ctrl+l windows命令提示符 cls
4) 取消不执行的命令
ctrl+c
内部命令和外部命令
内部命令shell自带的命令
外部命令 在系统的某个路径下的可执行程序,依赖于PATH环境变量进行查找命令
查看是内部命令还是外部命令
[[email protected] ~]# type ls
ls is aliased to `ls --color=auto‘
[[email protected] ~]# type alias
alias is a shell builtin
也可用以下命令查看哪些属于内部命令
[[email protected] ~]# man builtin
查看外部命令搜索路径
[[email protected] ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
命令补全 路径补全
使用tab键进行命令和路径补全操作
命令历史
echo $HISTSIZE 缓存多少条命令
[[email protected] ~]# echo $HISTSIZE
1000
echo $HISTFILE 查看历史文件
[[email protected] ~]# echo $HISTFILE
/root/.bash_history
echo $HISTFILESIZE 命令历史文件能保存的条数
[[email protected] ~]# echo $HISTFILESIZE
1000
cat /root/.bash_history 查看保存命令历史
[[email protected] ~]# cat /root/.bash_history |head -1 #通过管道过滤显示一条命令
ifconfig
1) 显示历史记录规则
[[email protected] ~]# echo $HISTCONTROL
ignoredups
含义:
igonredups 不记录后面重复的命令,只记录一个
ignorespace 不记录以空格开头的命令
ignoreboth 不记录后面重复的命令和不记录以空格开头的命令
永久生效
echo ‘export HISTCONTROL=ignoreboth‘ >> /etc/profile
通过export 修改历史记录规则
[[email protected] ~]# export HISTCONTROL=ignoreboth
[[email protected] ~]# history |tail -2
480 history |tail -1
481 history |tail
前面有空格则不记录历史命令
2) 执行以前的命令(快捷键)
!!执行上一条命令
history查看历史命令
!6 执行命令历史中第6行命令
!-1执行命令历史中倒数第一条命令
上下键可以翻命令
ctrl+p向上翻
ctrl+n向下翻
3) 当前命令调用上一条命令的最后一个参数
方法一:
ESC松开按.
方法二:
新命令后加!$
[[email protected] ~]# head !$
head /etc/passwd
history命令参数
-c 清空历史命令
-w覆盖命令到历史文件
-a 追加命令到历史文件
-d 4 删除命令历史的第4条命令
479 export HISTCONTROL=ignoreboth
480 history |tail -1
481 history |tail
482 history |tail -3
[[email protected] ~]# history -d 480
[[email protected] ~]# history |tail -5
479 export HISTCONTROL=ignoreboth
480 history |tail
481 history |tail -3
482 history -d 480
483 history |tail -5
文件名通配符
通配符是特殊的字符,不表示字符的表面意义而是能够匹配符号指定特征的字符
* 代表任意长度的字符
[[email protected] lisi]# touch a acb addb cdb ateb
[[email protected] lisi]# ls a*
a acb addb ateb
[[email protected] lisi]# ls a*b
acb addb ateb
? 代表任意单个字符
[[email protected] lisi]# touch a acb addb cdb ateb
[[email protected] lisi]# ls a?
ls: cannot access a?: No such file or directory
[[email protected] lisi]# ls a?b
acb
[] 代表指定范围的单个字符
[[email protected] lisi]# ls a[0-9]*
a23b a3b a4b a9b
[[email protected] lisi]# ls a[0-9]b
a3b a4b a9b
^ 排除
[[email protected] lisi]# touch a23b a3b a9b a4b
[[email protected] lisi]# ls a[^0-5]b
a9b acb
查找文件中间有空格的文件
[[email protected] lisi]# touch ‘a b‘
[[email protected] lisi]# ls *[‘ ‘]b
a b
[[email protected] lisi]# ls *[‘ ‘]*
a b
使用专门的方法识别特定字符
[[email protected] lisi]# ls a[[:space:]]b #空格
a b
[[email protected] lisi]# ls a[[:digit:]]b #[0-9]
a3b a4b a9b
特定字符的含义:
[[:space:]] 空格
[[:digit:]] [0-9]
[[:lower:]] [a-z]
[[::upper:]] [A-Z]
[[:alpha:]] [a-Z]
命令别名
格式: alias cmdalias=‘command [option] [argument]‘
查看别名类型
[[email protected] ~]# type alias
查看定义的别名
[[email protected] ~]# alias
定义别名
[[email protected] ~]# alias if=‘ifconfig eth0‘
[[email protected] ~]# alias ifconfig=‘ifconfig eth0‘
调用命令本身(去掉别名含义)
[[email protected] ~]# alias ifconfig=‘ifconfig eth0‘
[[email protected] ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:41:FA:11
......
[[email protected] ~]# \ifconfig #去掉别名,使用命令本身
eth0 Link encap:Ethernet HWaddr 00:0C:29:41:FA:11
......
eth1 Link encap:Ethernet HWaddr 00:0C:29:41:FA:1B
......
lo Link encap:Local Loopback
......
将别名添加到用户配置文件
[[email protected] ~]# vim .bashrc
编辑/etc/bashrc添加别名,对所有用户生效(全局)
[[email protected] ~]# vim /etc/bashrc
删除别名
[[email protected] ~]# unalias if1
[[email protected] ~]# if1
-bash: if1: command not found
命令替换
使用命令执行的结果替换该命令
格式: 命令 $(命令)
[[email protected] home]# echo "The current directory is $(pwd)"
The current directory is /home
[[email protected] home]# touch file-$(date +%Y-%m-%d-%H:%M:%S)
[[email protected] home]# ls
file-2017-01-05-11:47:38
格式:使用反引号实现命令替换
[[email protected] home]# touch file-`(date +%Y-%m-%d-%H:%M:%S)`
[[email protected] home]# ls
file-2017-01-05-11:47:38
bash中" "是弱引用能够实现命令替换
[[email protected] home]# echo "The current directory is $(pwd)"
The current directory is /home
bash中‘ ‘ 是强引用不能实现命令替换
[[email protected] home]# echo ‘The current directory is $(pwd)‘
The current directory is $(pwd)
命令行展开{}多项式
工作中会遇到如新建很多文件,使用一条命令来解决此问题,这时就需要使用命令行展开来实现,例:
[[email protected] lisi]# touch a.txt b.txt.c.txt.d.txt
[[email protected] lisi]# ls
a.txt b.txt.c.txt.d.txt
这样写很繁琐,他们有共通点,这时我们用命令行展开来写,需要用到{}来实现。
[[email protected] lisi]# touch {a..d}.txt
[[email protected] lisi]# ls
a.txt b.txt c.txt d.txt
怎么样?这样写是不是很方便。还可以创建更复杂的。
比如我们想创建
/home/lisi/a.txt
/home/lisi/b.txt
/home/lisi/a/a.txt
/home/lisi/a/b.txt
/home/lisi/c
/home/lisi/d
但是不能创建目录,需要先创建目录,如果是创建目录则不会存在次问题。
[[email protected] lisi]# mkdir a
[[email protected] lisi]# touch {a,b}.txt a/{a,b}.txt {c,d}
[[email protected] lisi]# touch {{a,b}.txt,a/{a,b}.txt,{c,d}} #同上一条命令
[[email protected] lisi]# ls
a a.txt b.txt c d
[[email protected] lisi]# tree
.
├── a
│ ├── a.txt
│ └── b.txt
├── a.txt
├── b.txt
├── c
└── d
重定向
重定向的用途
可以将命令输出保存到文件,可以向配置文件增加内容,可以合并文件内容。
查看标准输入输出设备
[[email protected] ~]$ ls -l /dev/std*
lrwxrwxrwx 1 root root 15 Jan 8 18:29 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Jan 8 18:29 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Jan 8 18:29 /dev/stdout -> /proc/self/fd/1
查看文件内容
[[email protected] ~]$ tail -2f /etc/passwd
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
ctrl+z将进程转到后台
ps 查看运行的进程
[[email protected] ~]$ ps
PID TTY TIME CMD
5954 pts/0 00:00:00 bash
6004 pts/0 00:00:00 tail
6009 pts/0 00:00:00 ps
[[email protected] ~]$ ls -l /proc/6004/fd #查看6004进程下的文件描述符
total 0
lrwx------ 1 lisi lisi 64 Jan 10 22:01 0 -> /dev/pts/0 #标准输入
lrwx------ 1 lisi lisi 64 Jan 10 22:01 1 -> /dev/pts/0 #标准输出
lrwx------ 1 lisi lisi 64 Jan 10 22:00 2 -> /dev/pts/0 #标准错误输出
lr-x------ 1 lisi lisi 64 Jan 10 22:01 3 -> /etc/passwd #进程指向的文件
lr-x------ 1 lisi lisi 64 Jan 10 22:01 4 -> inotify
重定向 标准输出
[[email protected] ~]$ ifconfig eth0 1>abc
重定向 标准错误输出
[[email protected] ~]$ ifconfig eth1 2>123
将标准输出和标准错误输出重定向到不同文件
[[email protected] ~]$ find /etc -name "*.conf" 1>a 2>b
将标准输出和标准错误输出重定向到同一个文件
[[email protected] ~]$ find /etc -name "*.conf" 1>a 2>b
重定向 追加
[[email protected] ~]$ find /etc -name "*.conf" 1>>a 2>>b
管道
1.在管道后面的命令都不应该再跟文件名。如果跟的话则是后面命令的结果。
[[email protected] ~]$ tail /etc/passwd |head -2 /etc/passwd #管道后面这条命令加了文件名,列出后面命令的值
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[[email protected] ~]$ tail /etc/passwd |head -2 #不加则是需要的值
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
2.在管道中只有标准输出才传递给下一个命令;标准错误输出直接输出到终端,可以把标准错误输出给重定向。
[[email protected] ~]$ find /etc/ -name "*.conf" 2>/dev/null |grep rc #把标准错误输出到空设备去,过滤包含rc内容的文件
/etc/latrace.d/resource.conf
/etc/libreport/events.d/vimrc_event.conf
/etc/init/rcS.conf
/etc/init/rc.conf
/etc/init/rcS-emergency.conf
/etc/init/rcS-sulogin.conf
3.有些命令不支持管道,让xargs支持这些命令。
[[email protected] home]# which cat |ls -l #列出的是当前目录下的内容
total 8
drwx------ 2 500 500 4096 Jan 10 21:39 lisi
drwxr-xr-x 9 root root 4096 Feb 26 2016 vmware-tools-distrib
[[email protected] home]# which cat |xargs ls -l #加上xargs后得到需要的值
-rwxr-xr-x. 1 root root 48568 Oct 15 2014 /bin/cat
第三章 文件管理类命令
命令和选项
command [options] [arguments]
命令 选项 参数
选项
短选项- 例(-h -l -a)
短选项可组合 例(-hla)
有些命令短选项可以不带-, 通常称作BSD风格的选项 例(ps aux ,tar xf)
有些选项需要带参数 tail -n 2 /etc/passwd
长选项不能组合 --help --list
如果需要参数 长选项的参数通常需要=号 --size=1G
命令后的参数就是命令的作用对象
例:ls /root
cat /etc/passwd
命令帮助
内部命令
help command
外部命令
command --help
通过type查看命令是内部命令还是外部命令
目录管理
cd(change directroy)
[[email protected] ~]# cd ~ #切换目录到主(家)目录
[[email protected] ~]# cd #切换目录到主(家)目录
[[email protected] ~]# cd /home/
[[email protected] home]# cd - #来回切换
/root
[[email protected] ~]# echo $PWD #当前路径变量
/root
[[email protected] ~]# echo $OLDPWD #上一次路径变量
/home
[[email protected] ~]# cd .. #上级目录
[[email protected] /]# cd . #当前目录
..上级目录
. 代表当前目录
绝对路径 以根目录开始的路径
相对路径 以当前目录为参照
ls(list)
列出文件的信息(默认为当前目录)
-a列出目录中所有文件,包含隐藏文件
-l 长格式显示
-R 递归显示
-d 只显示目录属性
-r 逆序输出
mkdir(make directory)
创建目录
-p --parents 需要时创建目标目录的上层目录
-v --verbose 每次创建新目录都显示信息(显示创建目录的过程)
rmdir(remove directory)
删除目录
-p --parents 删除指定目录及其上级目录
-v --verbose 输出处理的目录详情(显示删除目录的过程)
tree
显示目录结构
最小化安装系统则没有该命令,需要安装该命令
[[email protected] ~]# mkdir /mnt/cdrom #创建需要挂载光盘目录
[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/ #挂载光盘到创建的光盘目录
mount: block device /dev/sr0 is write-protected, mounting read-only
[[email protected] ~]# find /mnt/cdrom/Packages/ -name "tree*" #查找光盘内有无该命令的安装包
/mnt/cdrom/Packages/tree-1.5.3-3.el6.x86_64.rpm
[[email protected] ~]# rpm -i /mnt/cdrom/Packages/tree-1.5.3-3.el6.x86_64.rpm
package tree-1.5.3-3.el6.x86_64 is already installed #该提示是之前安装过该命令
[[email protected] ~]# tree #列出该目录结构
.
├── 2.txt
├── anaconda-ks.cfg
├── c
│ ├── a.c
│ ├── num
│ ├── num.c
│ └── sum
├── install.log
├── install.log.syslog
└── old.txt
1 directory, 9 files
文件管理
linux文件类型
1、普通文件 标识 -
2、目录文件 标识 d
3、链接文件
软链接 标识l
硬链接 标识-
4、特殊文件 用于作为硬件设备访问的文件
块设备 标识b 随机按块进行读取
字符设备 标识c 安装输入的顺序来读取
5、套接字文件(socket) 标识s 让两个进程进行通信使用软件模拟的设备
6、命名管道(pipe) 标识p
cp(copy)
拷贝目录及文件
格式: cp_源_目标
-d 保留文件的链接属性
-a 保留所有属性
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
-p 包含属性一起
拷贝过程不指定目标文件名,则目标文件名和源文件名一样
[[email protected] lisi]# cp 91/1.txt 51cto/
拷贝过程指定目标文件名(改名)
[[email protected] lisi]# cp 91/1.txt 51cto/2.txt
[[email protected] lisi]# ls
123 51cto 91
将51cto文件夹中扩展名是txt的文件拷贝到当前目录
[[email protected] lisi]# cp 51cto/*.txt .
[[email protected] lisi]# ls
123 1.txt 2.txt 51cto 91
将51cto文件夹拷贝到/tmp文件夹
[[email protected] lisi]# cp -R 51cto/ /tmp/
[[email protected] lisi]# ls 123
123
只有管理员能够将文件拷贝权限不变
[[email protected] lisi]# chmod 777 123 #改变123的权限
[[email protected] lisi]# ll 123
-rwxrwxrwx 1 root root 0 Jan 16 14:03 123
[[email protected] lisi]# cp 123 91/ #直接复制过去则文件属性会发生改变
[[email protected] lisi]# ll 91/
total 0
-rwxr-xr-x 1 root root 0 Jan 16 14:08 123
-rw-r--r-- 1 root root 0 Jan 16 14:04 1.txt
[[email protected] lisi]# cp -p 123 91/ #加-p参数后文件属性不变
[[email protected] lisi]# ll 91
total 0
-rwxrwxrwx 1 root root 0 Jan 16 14:03 123
-rw-r--r-- 1 root root 0 Jan 16 14:04 1.txt
rm(remove)
删除文件或目录
-r递归
-f强制
查看rm帮助
[[email protected] ~]# rm --help
删除单个文件
[[email protected] ~]# rm 2.txt
rm: remove regular file `2.txt‘? y
-r删除51cto目录中的文件和目录
[[email protected] lisi]# ls 51cto/
1.txt 2.txt
[[email protected] lisi]# mv -r 51cto/*
mv: invalid option -- ‘r‘
Try `mv --help‘ for more information.
[[email protected] lisi]# rm -r 51cto/*
rm: remove regular empty file `51cto/1.txt‘? y
rm: remove regular empty file `51cto/2.txt‘? y
[[email protected] lisi]# ls
123 1.txt 2.txt 51cto 91
删除目录
[[email protected] lisi]# rm 51cto/
rm: cannot remove `51cto/‘: Is a directory
[[email protected] lisi]# rm -r 51cto/
rm: remove directory `51cto‘? y
-f强制删除,无提示
[[email protected] lisi]# ls 51cto/
123
[[email protected] lisi]# rm -f 51cto/123
mv(move)
移动文件或目录;重命名功能
查看mv帮助
[[email protected] lisi]# mv --help
把目录123移动到91下
[[email protected] lisi]# mv 1
123 1.txt
[[email protected] lisi]# mv 123 91/
mv: overwrite `91/123‘? y
[[email protected]rn lisi]# ls 91/
123 1.txt
把91/123重命名为91/456
[[email protected] lisi]# ls 91/
123 1.txt
[[email protected] lisi]# mv 91/123 91/456
[[email protected] lisi]# ls 91
1.txt 456
touch
改变文件的时间戳
最近一次访问时间(access time)
最近一次修改时间(modify time) 改变文件的内容;内容变元数据变
最近一次改变时间(change time) 元数据(文件名、大小、权限)的改变
通过stat命令查询文件3个时间(元数据)
[[email protected] lisi]# stat 1.txt
File: `1.txt‘
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-16 14:13:43.566016527 +0800
Modify: 2017-01-16 14:13:43.566016527 +0800
Change: 2017-01-16 14:13:43.566016527 +0800
更改访问时间和改变时间
[[email protected] lisi]# touch homework
更改修改时间和改变时间
[[email protected] lisi]# touch -a 1.txt
[[email protected] lisi]# stat 1.txt
File: `1.txt‘
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-17 17:13:42.939001409 +0800
Modify: 2017-01-17 17:13:16.254001264 +0800
Change: 2017-01-17 17:13:42.939001409 +0800
使用指定的时间更改修改时间
[[email protected] lisi]# touch -m 1.txt
[[email protected] lisi]# stat 1.txt
File: `1.txt‘
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-17 17:13:42.939001409 +0800
Modify: 2017-01-17 17:13:57.920001327 +0800
Change: 2017-01-17 17:13:57.920001327 +0800
如果没有则创建文件,如果存在则更改三个时间
[[email protected] lisi]# touch -m -t 201611110930.12 1.txt
[[email protected] lisi]# stat 1.txt
File: `1.txt‘
Size: 5 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 787306 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-17 17:14:08.478001013 +0800
Modify: 2016-11-11 09:30:12.000000000 +0800
Change: 2017-01-17 17:21:07.863002188 +0800
如果文件不存在不创建
[[email protected] lisi]# touch -c hjhj
[[email protected] lisi]# ls
1.txt 2.txt 51cto 91 c homework
file
可以查看文件类型
文件类型有ASCII , LSB(二进制)executable(可执行)
[[email protected] lisi]# file 1.txt
1.txt: ASCII text
[[email protected] lisi]# which cat
/bin/cat
[[email protected] lisi]# file /bin/cat #二进制可执行文件
/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
find
查找文件
按名称和文件类型查找
-name 按名称
-type 按文件类型
-o 或者
! 非(取反)
文件时间查找
-amin n 查找系统中最后n分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后n分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后n分钟被改变文件数据的文件
-mmtime n 查找系统中最后n*24小时被改变文件数据的文件
+n表示此值之前; n表示此值; -n表示此值以内
例: +7表示7天后;7表示第7天;-7表示7天内
默认查找当前路径
[[email protected] ~]# find -name "*.txt"
./old.txt
默认查找列出当前路径下所有文件包含子目录内的文件
[[email protected] ~]# find
.
./.tcshrc
./install.log
./anaconda-ks.cfg
./.cshrc
./old.txt
./.bash_logout
./.ssh
./.ssh/authorized_keys
./c
./c/num.c
./c/a.c
./c/sum
./c/num
./.viminfo
./install.log.syslog
./.bash_profile
./.bashrc
./.bash_history
查找指定路径的文件
[[email protected] ~]# find /home -name "*.txt"
/home/lisi/2.txt
/home/lisi/91/1.txt
/home/lisi/1.txt
/home/vmware-tools-distrib/doc/open_source_licenses.txt
查找满足两个条件的文件 都满足
[[email protected] ~]# find /home -name "*.txt" -name "*.h"
查找满足两个条件的文件 或者
[[email protected] ~]# find /home -name "*.txt" -o -name "*.h"
/home/lisi/2.txt
/home/lisi/91/1.txt
/home/lisi/1.txt
/home/vmware-tools-distrib/lib/include/vmci/vmci_sockets.h
/home/vmware-tools-distrib/doc/open_source_licenses.txt
除了某个条件的文件
[[email protected] ~]# find /home ! -name "*.txt"
查找/home目录中最近一天更改过的文件
[[email protected] ~]# find /home -mtime -1
/home
/home/123
查找/home目录中60分钟内(小于)修改过的文件
[[email protected] ~]# find /home -mmin -60
/home
/home/123
查找/home目录中60分钟以前(大于)更改过的文件
[[email protected] ~]# find /home -mmin +60
查找所属主(lisi)的文件
[[email protected] ~]# find /home -user lisi
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
查找所属组(lisi)的文件
[[email protected] ~]# find /home -group lisi
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
使用主id和组id查找文件
[[email protected] ~]# id lisi
uid=501(lisi) gid=501(lisi) groups=501(lisi)
[[email protected] ~]# find /home -uid 501
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
[[email protected] ~]# find /home -gid 501
/home/lisi
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.bash_history
按大小查找
查找空文件
[[email protected] ~]# find . -empty
./1
查找大于1M的文件
[[email protected] ~]# find /home -size +1M |xargs ls -lh
-rwxr-xr-x 1 root root 1.2M Feb 26 2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libCommAmqpIntegration.so
-rwxr-xr-x 1 root root 2.8M Feb 26 2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libFramework.so
-r-xr-xr-x 1 root root 1.6M Feb 26 2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libglib-2.0.so.0.3400.3
查找小于1M的文件
[[email protected] ~]# find /home -size -1M |xargs ls -lh
-rw-r--r-- 1 root root 0 Jan 19 21:45 /home/123
-rw-r--r-- 1 root root 0 Jan 16 14:13 /home/lisi/2.txt
-rw-r--r-- 1 root root 0 Jan 16 14:04 /home/lisi/91/1.txt
-rwxrwxrwx 1 root root 0 Jan 17 09:19 /home/lisi/91/456
-rw-r--r-- 1 root root 0 Jan 17 17:14 /home/lisi/c
-rw-r--r-- 1 root root 0 Jan 17 17:14 /home/lisi/homework
-rw-r--r-- 1 root root 0 Feb 26 2016 /home/vmware-tools-distrib/etc/not_configured
文本查看命令
cat
显示文本文件内容单个或多个
-n 显示行号
-E 显示换行符
查看并显示当文件
[[email protected] ~]# cat old.txt
111
222
333
444
555i name is
i what
what is
查看并显示多个文件
[[email protected] ~]# cat old.txt oldboy.txt
111
222
333
444
555i name is
i what
what is
11111
显示文件内容行号
[[email protected] ~]# cat -n old.txt
1 111
2 222
3 333
4 444
5 555i name is
6 i what
7 what is
显示文件换行符
[[email protected] ~]# cat -E old.txt
111$
222$
333$
444$
555i name is$
i what $
what is$
tac
按行号逆向显示文本内容
[[email protected] ~]# tac old.txt
what is
i what
555i name is
444
333
222
111
more
分屏显示文本文件内容,从前往后翻;
b键往前翻一行,翻到文件的尾部显示结束则不能往前翻。
回车 往下翻一行;空格 往下翻一屏
less
分屏显示
向下翻一行 向下键或回车
向上翻一行 向上键
向下翻一屏 pgdn或空格键
向上翻一屏 pgup或b
查找功能 /或?
退出less命令 q
head
显示文本文件的前几行;默认是10行,可加参数定义需要的行数 -n 2
[[email protected] ~]# head old.txt
111
222
333
444
555i name is
i what
what is
[[email protected] ~]# head -2 old.txt
111
222
[[email protected] ~]# head -n 2 old.txt
111
222
tail
显示文本文件的后几行;默认是10行,可加参数定义需要的行数 -n 2
-f(follow) 一直(实时)跟踪 不再退出
默认显示
[[email protected] ~]# tail /etc/passwd
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
显示2行
[[email protected] ~]# tail -2 /etc/passwd
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
[[email protected] ~]# tail -n 2 /etc/passwd
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
实时显示(一直跟踪)
[[email protected] ~]# tail -f /etc/passwd
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
li:x:500:500::/home/li:/bin/bash
lisi:x:501:501::/home/lisi:/bin/bash
文本编辑器
vi 或vim
nano
winscp
文本操作命令
按照我们想要的格式显示文件内容,可以对文件内容进行过滤、改变样式输出。
cut(切开)
将文件使用指定的字符切开,显示我们想要的
使用冒号分割passwd文件,显示第1,3至5列
tr(translate翻译、转化)
能把文件中指定的字符进行替换,该命令后面只能使用标准输入重定向
使用A替换passwd文件中的a字符
[[email protected] ~]# tr ‘a‘ ‘A‘ <passwd
root:x:0:0:root:/root:/bin/bAsh
删除passwd文件中的:字符
[[email protected] ~]# tr -d ‘:‘ <passwd
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
删除passwd文件中的空格,原理同上。
显示passwd文件中后2行,并以:号分割取1,5列,替换:号为空格
[[email protected] ~]# tail -2 passwd |cut -d: -f 1,3 |tr ":" " "
li 500
lisi 501
wc(word count)
字数统计,可以统计文件的行数、单词数量、字符数量
-l统计行数
-w统计单词数
-c统计字符数量(包含空格)
统计行数、单词数、字符数
[[email protected] ~]# wc passwd
26 35 1126 passwd
统计行数
[[email protected] ~]# wc -l passwd
26 passwd
统计单词数
[[email protected] ~]# wc -w passwd
35 passwd
统计字符数
[[email protected] ~]# wc -c passwd
1126 passwd
利用分割命令显示指定分割数
[[email protected] ~]# wc -c passwd |cut -d ‘ ‘ -f 1
1126
[[email protected] ~]# wc -c passwd |cut -d ‘ ‘ -f 2
passwd
[[email protected] ~]# wc -c passwd |cut -d ‘ ‘ -f 3
sort
对文件中的行进行排序(默认按字符(a-z)排序(生序))
-r 反转(z-a)排序(降序)
-t 指定分割符
-k 指定列
-u 去重
-n 按数值排序
-f 忽略大小写
把users文件的行进行排序输出(升序)
[[email protected] ~]# sort users
jia aa 33
li bb 12
wang bb 23
zhang aa 12
把users文件的行进行排序输出(降序)
[[email protected] ~]# sort -r users
zhang aa 12
wang bb 23
li bb 12
jia aa 33
使用空格把users文件分割 使用第3列排序
[[email protected] ~]# sort -t ‘ ‘ -k 3 users
li bb 12
zhang aa 12
wang bb 23
jia aa 33
使用空格把users文件分割 使用第3列排序 去掉重复行
[[email protected] ~]# sort -t ‘ ‘ -k 3 -u users
zhang aa 12
wang bb 23
jia aa 33
按数值排序
[[email protected] ~]# sort -t‘ ‘ -k3 -n users
bin aa 9
li bb 12
zhang aa 12
wang bb 23
jia aa 33
uniq(unique)
唯一的意思;针对文本中的连续的重复行进行操作
-d 只显示重复的行
-D 显示全部重复的行
-c 显示重复次数
不显示重复行
[[email protected] ~]# uniq uniqtest
zhang aa 12
wang bb 11
li bb 11
zhang aa 12
li bb 11
只显示重复的行
[[email protected] ~]# uniq -d uniqtest
zhang aa 12
li bb 11
显示全部重复的行
[[email protected] ~]# uniq -D uniqtest
zhang aa 12
zhang aa 12
zhang aa 12
li bb 11
li bb 11
显示重复次数
[[email protected] ~]# uniq -c uniqtest
3 zhang aa 12
1 wang bb 11
1 li bb 11
1 zhang aa 12
2 li bb 11
1
grep
grep(global re printing)全局搜索正则表达式并将搜索到的行打印出来
re(regular expression)正则表达式,由一些元字符和其他组成的表达式;元字符是由特定意义的字符并不代表这个字符本身。
文本过滤工具能够根据指定的正则表达式逐行扫描文件的内容,只要行中有满足正则表达式的内容则整行被显示。
re
basic re 基本正则表达式
extended re 扩展正则表达式
1) grep命令语法
grep[option]...‘re‘ file...
-v 显示不匹配的行
-i 不区分大小写
-o 只显示匹配的字符串
-A# 显示找到的行以及后面的行 #表示数字
-B# 显示找到的行以及前面的行 #表示数字
-C# 显示找到的行以及前后的行 #表示数字
-E 表示后面的表达式是扩展的正则表达式
--color=auto 将匹配的字符串改变颜色显示
显示匹配的行
[[email protected] ~]# grep ‘cpu‘ /proc/cpuinfo
cpu family : 6
cpu MHz : 2600.069
cpu cores : 1
cpuid level : 13
显示匹配行进行取反
[[email protected] ~]# grep -v ‘cpu‘ /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
model : 60
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
stepping : 3
microcode : 28
cache size : 3072 KB
physical id : 0
siblings : 1
core id : 0
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase smep
bogomips : 5200.13
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
显示匹配行并将匹配的字符加色
[[email protected] ~]# grep ‘cpu‘ --color=auto /proc/cpuinfo
cpu family : 6
cpu MHz : 2600.069
cpu cores : 1
cpuid level : 13
[[email protected] ~]# grep ‘cpu‘ --color=auto -o /proc/cpuinfo
cpu
cpu
cpu
cpu
显示匹配行不区分大小写并显示颜色
[[email protected] ~]# grep ‘cpu‘ --color=auto -i /proc/cpuinfo
cpu family : 6
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
cpu MHz : 2600.069
cpu cores : 1
cpuid level : 13
显示匹配行以及后一行
[[email protected] ~]# grep ‘cpu‘ --color=auto -A1 /proc/cpuinfo
cpu family : 6
model : 60
--
cpu MHz : 2600.069
cache size : 3072 KB
--
cpu cores : 1
apicid : 0
--
cpuid level : 13
wp : yes
显示匹配行以及后两行
[[email protected] ~]# grep ‘cpu‘ --color=auto -A2 /proc/cpuinfo
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
--
cpu MHz : 2600.069
cache size : 3072 KB
physical id : 0
--
cpu cores : 1
apicid : 0
initial apicid : 0
--
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase smep
显示匹配行以及前一行
[[email protected] ~]# grep ‘cpu‘ --color=auto -B1 /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 6
--
microcode : 28
cpu MHz : 2600.069
--
core id : 0
cpu cores : 1
--
fpu_exception : yes
cpuid level : 13
显示匹配行以及前后一行
[[email protected] ~]# grep ‘cpu‘ --color=auto -C1 /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 6
model : 60
--
microcode : 28
cpu MHz : 2600.069
cache size : 3072 KB
--
core id : 0
cpu cores : 1
apicid : 0
--
fpu_exception : yes
cpuid level : 13
wp : yes
将命令结果通过管道匹配相关行
[[email protected] ~]# ifconfig |grep ‘addr‘
eth0 Link encap:Ethernet HWaddr 00:0C:29:41:FA:11
inet addr:192.168.99.189 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe41:fa11/64 Scope:Link
eth1 Link encap:Ethernet HWaddr 00:0C:29:41:FA:1B
inet addr:192.168.10.100 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe41:fa1b/64 Scope:Link
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
基本正则表达式
文件名通配符
*代表任意长度任意字符
?代表任意单个字符
[]指定范围内的任意单个字符
[^]指定范围外的任意当字符
1) 正则表达式的元字符
.匹配任意单个字符
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
.*任意长度任意字符
匹配任意单个字符
[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a.c‘ --color=auto
a2c a3c abc adb bad
[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘[a.c]‘ --color=auto
a2c a3c abc adb bad
匹配指定范围内的任意单个字符
[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘[a]‘ --color=auto
a2c a3c abc adb bad
[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a[a-z]c‘ --color=auto
a2c a3c abc adb bad
匹配指定范围外的任意单个字符
[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a[^a-z]c‘ --color=auto
a2c a3c abc adb bad
匹配任意长度任意字符
[[email protected] ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘a.*c‘ --color=auto
ac asc assc asssc asdc
7) 匹配次数
* 匹配前一个字符0次1次或多次 写法:ab*c ac abc abbc abbdc
\? 匹配前一个字符0次或1次 写法:ab\?c ac abc abbc
\{m,n\} 匹配前一个字符最少m次,最多n次
\{0,n\} 最多n次
\{m\} 最少m次
as\{0,2\}c ac asc assc asssc asdc
匹配前一个字符0次或多次
[[email protected] ~]# echo ‘ac abc abbc abbdc abbbc‘ |grep ‘ab*c‘ --color=auto
ac abc abbc abbdc abbbc
匹配前一个字符0次或1次
[[email protected] ~]# echo ‘ac abc abbc‘ |grep ‘ab\?c‘ --color=auto
ac abc abbc
匹配最少0次最多2次
[[email protected] ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘as\{0,2\}c‘ --color=auto
ac asc assc asssc asdc
[[email protected] ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘a[a-z]\{0,2\}c‘ --color=auto
ac asc assc asssc asdc
8) 分组匹配
\(\)实现分组匹配
连续引用
[[email protected] ~]# echo ‘91abcabcabcabc51 fdsfsf‘ |grep ‘91\(abc\)*51‘ --color=auto
91abcabcabcabc51 fdsfsf
[[email protected] ~]# echo ‘91abcabcabcabc51 fdsfsf‘ |grep ‘91\(abc\)\{4\}51‘ --color=auto
91abcabcabcabc51 fdsfsf
[[email protected] ~]# echo ‘91abcabcabcabc51 91abcabcabc51 fdsfsf‘ |grep ‘91\(abc\)\{0,4\}51‘ --color=auto
91abcabcabcabc51 91abcabcabc51 fdsfsf
不连续引用
[[email protected] ~]# cat 123
zhangsan,math=good,english=bad
han,math=good,english=good
yixiu,math=bad,english=good
xiaomo,math=bad,english=bad,music=good,geography=good
yuan,math=good,english=bad,music=good,geography=good
[[email protected] ~]# grep ‘.*,math=\(.*\),english=\1‘ 123 --color=auto
han,math=good,english=good
xiaomo,math=bad,english=bad,music=good,geography=good
向后引用;
前后取值一致,前面括号内正则的值通过数字(用数字表示第几个括号)取值到后面。
[[email protected] ~]# grep ‘.*,math=\(.*\),english=\1,music=\(good\),geography=\2‘ 123 --color=auto
xiaomo,math=bad,english=bad,music=good,geography=good
9) 锚定符
\< 锚定词首
\> 锚定词尾
\< \> 锚定单词
[[email protected] ~]# grep ‘\<r..t‘ --color=auto t1
root chroot rooter
this is root
[[email protected] ~]# grep ‘r..t\>‘ --color=auto t1
root chroot rooter
this is root
[[email protected] ~]# grep ‘\<r..t\>‘ --color=auto t1
root chroot rooter
this is root
^ 锚定行首
$ 锚定行尾
匹配行首为空一个或多个后面是root开始的行
[[email protected] ~]# grep ‘^[[:space:]]*root‘ --color=auto t1
root chroot rooter
匹配r任意字符t结尾的行
[[email protected] ~]# grep ‘r..t$‘ --color=auto t1
root chroot rooter root
匹配标点字符(punct)结尾的行
[[email protected] ~]# grep ‘root[[:punct:]]\?$‘ --color=auto t1
root chroot rooter root
this is root.
[[email protected] ~]# grep ‘root[[:punct:]]\{1\}$‘ --color=auto t1
this is root.
[[email protected] ~]# grep ‘root[[:punct:]]‘ --color=auto t1
this is root.
10) POSIX定义了一些只能在正则表达式中使用的字符类
alnum 字母和数字
alpha 字母
blank 仅表示空格或制表符
cntrl 控制字符
digit 十进制数
graph 打印字符,不包含空格
lower 小写字母
print 打印字符,包括空格
punct 打印字符,不包含字母和数字。
space 空白
upper 大写字母
xdigit 十六进制数
11) 练习题
1.找出ifconfig命令结果中1-255之间的数字。
[[email protected] ~]# ifconfig eth0|grep ‘[1-9]\{1,3\}‘ --color=auto -o |xargs
29 41 11 192 168 99 189 192 168 99 255 255 255 255 6 8 2 29 41 11 64 15 1 211 31 1 662 1 221 679 21 25 751 6 2 3
2.找出ifconfig命令结果中的ip地址。
[[email protected] ~]# ifconfig eth0|grep ‘\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}‘ --color=auto -o
192.168.99.189
192.168.99.255
255.255.255.0
3.分析文件rc 找出第4位字符数值和最后一位字符数值一样的行
[[email protected] ~]# cat rc
L1:1:wait:/etc/rc.d/rc 1
L3:3:wait:/etc/rc.d/rc 3
L1:1:wait:/etc/rc.d/rc 3
L3:1:wait:/etc/rc.d/rc 3
[[email protected] ~]# grep ‘L.:\(.\).*\1‘ rc
L1:1:wait:/etc/rc.d/rc 1
L3:3:wait:/etc/rc.d/rc 3
4.找出当前系统上名字为li的用户账户相关信息/etc/passwd,注意不要找到lisi或li1这样的用户
[[email protected] ~]# grep ‘^li:‘ /etc/passwd
li:x:500:500::/home/li:/bin/bash
扩展正则表达式
1) 元字符
.匹配任意单个字符
[]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
12) 匹配次数
* 匹配前一个字符0次1次或多次
\? 匹配前一个字符0次或1次
新增
+至少匹配一次
[[email protected] ~]# echo "rooteeeeer" |egrep ‘ro+te*‘ --color
rooteeeeer
{m,n}括号前不需要转义字符\
[[email protected] ~]# echo ‘rooteeeeer‘ |egrep ‘e{2,6}‘ --color
rooteeeeer
[[email protected] ~]# echo ‘rooteeeeer‘ |egrep ‘ro+te{2,6}‘ --color
rooteeeeer
13) 锚定符
^ 锚定行首
$ 锚定行尾
新增
\< or \b 锚定词首
\> or \b 锚定词尾
[[email protected] ~]# echo ‘chroot root rooter123‘ |egrep ‘\bro+ter[[:digit:]]*\b‘ --color
chroot root rooter123
14) 或者
| 如abc|wer
[[email protected] ~]# echo ‘abcde abwde abc wde‘ |egrep ‘abc|wde‘ --color
abcde abwde abc wde
[[email protected] ~]# echo ‘abcde abwde abc wde‘ |egrep ‘ab(c|w)de‘ --color
abcde abwde abc wde
15) 分组
( )分组不用转义字符\
[[email protected] ~]# echo ‘a=10b=20c=10d=20‘ |egrep ‘a=(..)b=(..)c=\1d=\2‘ --color
a=10b=20c=10d=20
[[email protected] ~]# echo ‘a=10b=20c=10d=20‘ |egrep ‘a=(..)b=(..)c=\1‘ --color
a=10b=20c=10d=20
[[email protected] ~]# echo ‘a=10b=20c=10d=20‘ |grep -E ‘a=(..)b=(..)c=\1‘ --color
a=10b=20c=10d=20
16) fgrep
不解析正则表达式直接搜索文本
[[email protected] ~]# echo ‘abcfr123a{1,2}wde‘ |fgrep ‘wde‘ --color
abcfr123a{1,2}wde
[[email protected] ~]# echo ‘abcfr123a{1,2}wde‘ |fgrep ‘abc‘ --color
abcfr123a{1,2}wde
17) 写正则表达式需要注意的两点
1. 转义字符\
[[email protected] ~]# echo ‘91xueit\(han\)*51cto‘ |grep ‘91xueit\(han\)*51cto‘ --color
[[email protected] ~]# echo ‘91xueit\(han\)*51cto‘ |grep ‘91xueit\\(han\\)\*51cto‘ --color
91xueit\(han\)*51cto
将正则表达式中元字符转换成字符本身
2. 如果正则表达式中有命令替换,正则表达式只能使用" " 弱引用
如果正则表示式中没命令替换,可以使用 ‘ ‘ 强引用 " " 弱引用
[[email protected] ~]# echo ‘abc/root123‘ |grep ‘abc$(pwd)123‘ --color
[[email protected] ~]# echo ‘abc/root123‘ |grep "abc$(pwd)123" --color
abc/root123
第四章 常用命令
不是所有命令
关机命令shutdown,halt,poweroff
提示所有终端要进行关机操作
shutdown -c 取消关机操作
shutdown -r 重启
shutdown -r now现在重启
shutdown +5 过5分钟关机
shutdown -h 02:23 & 后台运行在2点23分关机
shutdown -r 02:23 & 后台运行在2点23分重启
日常使用shutdown命令关机,此命名有提示其他终端。其他两个命令无提示。
重启命令reboot
时间命令
cal
日历
[[email protected] ~]# cal
February 2017
Su Mo Tu We Th Fr Sa
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
date
显示系统时间
-s 设置系统时间
[[email protected] ~]# date -s ‘2017/02/04 21:27‘
Sat Feb 4 21:27:00 CST 2017
hwclock
查看主板时间
[[email protected] ~]# hwclock
Sat 04 Feb 2017 09:26:19 PM CST -0.798354 seconds
-w将系统时间写入主板时间
[[email protected] ~]# hwclock -w
[[email protected] ~]# hwclock
Sat 04 Feb 2017 09:27:19 PM CST -0.768415 seconds
以上是关于linux终端和shell的主要内容,如果未能解决你的问题,请参考以下文章
linux下的shell命令,命令行,终端运行概念的解释???