linux常用命令
linux常用命令(一)对文件和目录进行操作的命令pwdcdlstouchmkdirrmdircpmvrmwcdupwd:显示工作目录路径命令语法:pwd [选项]选项含义-L目录链接时,输出链接路径-P输出物理路径cd:更改工作目录路径命令语法:cd[选项][目录]选项含义c...
linux常用命令(一)
对文件和目录进行操作的命令
- pwd
- cd
- ls
- touch
- mkdir
- rmdir
- cp
- mv
- rm
- wc
- du
pwd:显示工作目录路径
命令语法:pwd [选项]
选项 | 含义 |
---|---|
-L | 目录链接时,输出链接路径 |
-P | 输出物理路径 |
cd:更改工作目录路径
命令语法:cd[选项][目录]
选项 | 含义 |
---|---|
cd或cd ~ | 回到用户主目录 |
cd .. | 变当前工作目录路径位置至当前目录的父目录。 |
cd -P | 如果是链接路径,则进入链接路径的源物理路径 |
cd ~li | 改用户工作目录路径位置至用户li的主目录。 |
ls:列出目录和文件信息
选项 | 选项含义 |
---|---|
-a | 显示指定目录下所有子目录的文件,包括隐藏文件 |
-A | 显示指定目录下所有子目录与文件,包括隐藏文件,但不列出“.”和“..” |
-c | 配合-lt:根据车体么排序并显示ctime |
-d | 如果参数是目录,只显示其名称而不显示其下的歌文件和子目录 |
-F | 显示文件类型 |
-i | 在输出的第一列显示文件的inode号 |
-l | 以长格式显示文件的详细信息 |
-r | 逆序排列 |
-t | 根据修改时间排序 |
-s | 一块数形式先生每个文件分配的尺寸 |
-S | 根据文件大小排序 |
例子:显示目录/var下文件的子目录的简单信息
~]# ls /var
显示/root目录下所以文件和子目录的详细信息,包括隐藏文件
~]# ls -al /root
显示/etc目录下的文件和子目录信息,用标记标出文件类型
~]# ls -F /etc
touch:创建空文件、更改文件时间
命令语法:touch [选项] [文件]
选项 | 选项含义 |
---|---|
-a | 只更改访问时间(atime) |
-m | 更改文件的修改时间记录(mtime) |
-c | 假如目标文件存在,则不会建立新的文件 |
-r<文件> | 使用指定文件的时间属性而非当前时间 |
-d<字符串> | 使用指定字符串表示时间而非当前时间 |
-t<日期时间> | 使用[CC]YY]MMDDhhmm[.ss]格式的时间而非当前时间 |
例如:在当前目录下创建文件file1、file2、file3
[root@localhost ~]# touch file1
[root@localhost ~]# touch file2 file3
[root@localhost ~]# ls -l file1 file2 file3
-rw-r--r--. 1 root root 5 Aug 3 22:12 file1
-rw-r--r--. 1 root root 6 Aug 3 22:12 file2
-rw-r--r--. 1 root root 0 Aug 3 22:12 file3
将文件file1的时间记录改为9月17日19点30分
[root@localhost ~]# ls -l /root/file1
-rw-r--r--. 1 root root 5 Aug 4 2019 /root/file1
[root@localhost ~]# touch -c -t 09171930 /root/file1
[root@localhost ~]# ls -l /root/file1
-rw-r--r--. 1 root root 5 Sep 17 2019 /root/file1
时间格式是MMDDHHmm,如果要加上2019年年份
[root@localhost ~]# touch -c -t 09171930 /root/file1
mkdir:创建目录
命令语法:mkdir [选项] [目录]
选项 | 选项含有 |
---|---|
-m<权限模式> | 对新创建的目录设置权限,在没有-m选项时,默认权限是755 |
-v | 每次创建新目录都显示信息 |
-p | 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动创建那些尚不存在的目录,即以此可以建立多个目录 |
例子:创建目录newdir1 ,其默认权限为755
[root@localhost ~]# touch -c -t 09171930 /root/file1
[root@localhost ~]# ls -ld newdir1
drwxr-xr-x. 2 root root 6 Jun 22 22:27 newdir1
创建目录newdir2,其权限为777
[root@localhost ~]# mkdir -m 777 newdir2
[root@localhost ~]# ls -ld newdir2
drwxrwxrwx. 2 root root 6 Aug 3 22:39 newdir2
rmdir:删除空目录 命令语法:rmdir [选项] [目录]
选项 | 选项含义 |
---|---|
-p | 递归删除目录,当子目录删除后其父目录为空时,也一同被删除 |
-v | 输出处理的目录详情 |
例子:同时删除/root/newdir2和/root/newdir2/newdir3这两个空目录
[root@localhost ~]# mkdir /root/newdir2
[root@localhost ~]# mkdir /root newdir2/newdir3
[root@localhost ~]# rmdir -pv /root/newdir2/newdir3
rmdir: removing directory, ‘/root/newdir2/newdir3’
rmdir: removing directory, ‘/root/newdir2’
rmdir: removing directory, ‘/root’
rmdir: failed to remove directory ‘/root’: Device or resource busy
cp:复制文件的和目录
命令语法:cp [选项] [源文件|目录] [目标文件|目录]
选项 | 选项含义 |
---|---|
-a | 在复制目录时保留链接、文件属性、并递归地复制目录,等同于-dpr选项 |
-d | 复制时保留链接 |
-f | 在覆盖目标文件之前不给出提示信息要求用户确认 |
-i | 和-f选项相反看,在覆盖目标文件之前给出提示信息,要求用户确认 |
-p | 出复制源文件的内容外,还把其修改时间和访问权限也复制到新文件中 |
-l | 不做复制,只是链接文件 |
-r | 如果给出的源文件是一个目录文件,将递归复制该目录下所有的子目录和文件。此时目标必须为一个目录名 |
例子:将/etc/grub2.cfg文件复制到/root目录下,并改名为grub
[root@localhost ~]# cp /etc/grub2.cfg /root/grub
cp: overwrite ‘/root/grub’? y
[root@localhost ~]# ls
anaconda-ks.cfg grub newdir1
将/etc/grub2.cfg文件复制到/root目录下
[root@localhost ~]# cp /etc/grub2.cfg /root
[root@localhost ~]# ls
anaconda-ks.cfg grub grub2.cfg newdir1
[root@localhost ~]#
将/boot目录以及该目录中的所有文件和子目录都复制到/root目录中
[root@localhost ~]# cp -r /boot /root
[root@localhost ~]# ls -l /root
total 24
-rw-------. 1 root root 1260 Jun 9 14:21 anaconda-ks.cfg
dr-xr-xr-x. 5 root root 4096 Jun 22 23:21 boot
-rw-r--r--. 1 root root 4287 Jun 22 23:15 grub
-rw-r--r--. 1 root root 4287 Jun 22 23:18 grub2.cfg
drwxr-xr-x. 2 root root 6 Jun 22 22:27 newdir1
mv:文件和目录改名、移动文件和目录路径
命令语法:mv [选项] [源文件|目录] [目标文件|目录]
选项 | 选项含义 |
---|---|
-i | 覆盖前询问 |
-f | 覆盖前不询问 |
-n | 不覆盖已存在的文件 |
-u | 只有在源文件文件比目标文件新,或目标文件不存在时才进行移动 |
-T | 将目标文件视作普通文件处理 |
例子:将/root/pic目录下所以的后缀名为“.png”的文件移动到/usr/local/share/pic目录下
[root@localhost ~]# mv -f /root/pic/*.png /usr/local/share/pic
把/root/pic/kpic.png文件改名为/root/pic/life.png
[root@localhost ~]# mv /root/pic/kpic.png /root/pic/life.png
[root@localhost ~]# ls /root/pic
{kpic.png life.png
把/root/pic目录名称更改为/root/mypic
root@localhost ~]# mv /root/pic /root/mypic
[root@localhost ~]# ls /root
123.png} anaconda-ks.cfg boot grub grub2.cfg mypic newdir1
rm:删除文件或目录
命令语法:rm [选项] [文件|目录]
选项 | 选项含义 |
---|---|
-f | 强制删除。忽略不存在的文件,不给出提示信息 |
-r | 递归删除目录及其内容 |
-i | 在删除前需要确认 |
例子:删除当前目录下的file4文件
root@localhost ~]# rm file4
rm: remove regular empty file ‘file4’? y
[root@localhost ~]# ls
123.png} anaconda-ks.cfg boot grub grub2.cfg mypic newdir1
连同/root/ab/a文件和/root/ab目录一起删除
[root@localhost ~]# mkdir /root/ab
[root@localhost ~]# touch /root/ab/a
[root@localhost ~]# ls -l /root/ab/a
-rw-r--r--. 1 root root 0 Jun 22 23:51 /root/ab/a
[root@localhost ~]# rm -rf /root/ab
[root@localhost ~]# ls /root
123.png} anaconda-ks.cfg boot grub grub2.cfg mypic newdir1
wc:统计文件行数、单词数、字节数和字符数
命令语法:wc [选项] [文件]
选项 | 选项含义 |
---|---|
-l | 统计行数 |
-w | 统计单词数 |
-c | 统计字节数 |
-m | 统计字符数 |
-L | 统计文件中最长行的长度 |
例子:统计/root/aa文件的行数、单词数和字节数
[root@localhost ~]# wc -l /root/aa/ce.log
3 /root/aa/ce.log
统计/root目录下有多少子目录和文件
[root@localhost ~]# ls /root|wc -l
8
du:计算机文件或目录的容量
命令语法:du [选项]...[文件或目录]...
选项 | 选项含义 |
---|---|
-h | 人性化显示容量信息 |
-a | 查看所有目录以及文件的容量信息 |
-s | 仅显示总容量 |
-c | 显示总计信息 |
-l | 如果是硬连接,就多次计算其尺寸 |
-x | 跳过处于不同文件系统之上的目录 |
-S | 不包括子目录的占用量 |
-L | 找出任何符号链接指示的真正目的地 |
查看/root目录及子目录的容量信息
[root@localhost ~]# du /root
[root@localhost ~]# du -a /root
查看/root所占磁盘空间总和
[root@localhost ~]# du -sh /root
100M /root
以MB为单位显示/root目录磁盘占用量
[root@localhost ~]# du -sh /root
100M /root
选项 | 选项含义 |
---|---|
-h | 人性化显示容量信息 |
-a | 查看所有目录以及文件的容量信息 |
-s | 仅显示总容量 |
-c | 显示总计信息 |
-l | 如果是硬连接,就多次计算其尺寸 |
-x | 跳过处于不同文件系统之上的目录 |
-S | 不包括子目录的占用量 |
-L | 找出任何符号链接指示的真正目的地 |
查看/root目录及子目录的容量信息
[root@localhost ~]# du /root
[root@localhost ~]# du -a /root
查看/root所占磁盘空间总和
[root@localhost ~]# du -sh /root
100M /root
以MB为单位显示/root目录磁盘占用量
[root@localhost ~]# du -sh /root
100M /root
对文本进行显示的相关命令
- cat
- more
- less
- head
- tail
- echo
cat:显示文本文件
命令语法:cat [选项] [文件]
选项 | 选项含义 |
---|---|
-n | 对输出的所有行编号 |
-b | 对非空输出行编号 |
-s | 当遇到有连续两行以上的空白行时,就将其替换为一行的空白行 |
-E | 在每行结束出显示$ |
例子:显示/etc/inittab文件的内容
[root@localhost ~]# cat /etc/inittab
把文cs.log的文件内容加上行号后输入到cs1.log文件中
[root@localhost ~]# cat -n cs.log > cs1.log
[root@localhost ~]# cat cs1.log
1 wewe
2 wewe
3 uoij
4 124
使用cat命令创建mm.txt文件
[root@localhost ~]# cat >mm.txt<<EOF
> hello * 此次输入小写是错的,必须区分大小写
> linux * 此次输入小写是错的,严格区分大小写
> eof * 此次输入小写是错的,严格区分大小写,正确的格式见下面代码
> Hello
> Linux
> EOF
more:分页显示文本文件
命令语法:more [选项] [文件名]
选项 | 选项含义 |
---|---|
-f | 计算行数时,使用实际的行数,而不是自动换行过后的行数 |
-p | 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容 |
-c | 跟-p选项相似,不同的是先显示内容再清除其他旧资料 |
-s | 当遇到有连续两行以上的空白行时,就将其替换为一行的空白行 |
-u | 不显示下引号(根据环境变量TERM指定的终端而有所不同) |
+n | 从第n行开始显示文件内容,n代表数字 |
-n | 一次显示的行数,n代表数字 |
例子:分页显示/etc/services文件的内容
[root@localhost ~]# more /etc/services
从第3行开始显示/root/cs.log
[root@localhost ~]# more +3 /root/cs.log
uoij
124
一次两行显示/etc/passwd
[root@localhost ~]# more -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
--More--(7%)
less[1]:回卷显示文本文件
命令语法:less [选项] [文件名]
选项 | 选项含义 |
---|---|
-N | 显示每行的行号 |
-S | 行过长时间将超出部分舍弃 |
-e | 当文件显示结束后,自动离开 |
-g | 只表示最后搜索到的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分百 |
-f | 强迫打开特殊文件,比如外围设备代号、目录和二进制文件 |
-s | 显示连续空行为一行 |
-o <文件名> | 将less输出的内容保存到指定文件中 |
-x <数字> | 将tab键显示为规定的数字空格 |
例子:回卷显示/etc/services文件的内容
[root@localhost ~]# less /etc/services
head:显示指定文件前若干行
命令语法:head [选项] [文件]
选项 | 选项含义 |
---|---|
-n <K> | 显示每个文件的前K行内容;如果附加“-”参数,则除了每个文件的最后K行外显示剩余全部内容,这里K是数字 |
-c <K> | 显示每个文件的前K字节内容;如果附加“-”参数,则除了每个文件的最后K字节数据外显示数全部内容,这里K是数字 |
-v | 总是显示保护给定文件名的文件头 |
例子:查看/etc/passwd文件的前100个字节数据内容
[root@localhost ~]# head -c 100 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nol[root@localhost ~]# 200
tail:查看文件末尾数据
命令语法:tail [选项] [文件名]
选项 | 选项含义 |
---|---|
-n <K> | 输出最后K行,这里K是数字,使用-n +K则从每个文件的第K行输出 |
-c <K> | 输出最后K个字节,这里K是数字,使用-c +K则从每个文件的第K字节输出 |
-f | 即时输出文件变化后追加的数据 |
例子:查看/etc/passwd文件末尾3行的数据内容
[root@localhost ~]# tail -n 3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
li:x:1000:1000::/home/li:/bin/bash
echo:显示一行指定的字符串
命令语法:echo [选项] [字符串]
选项 | 选项含义 |
---|---|
-n | 不输出换行,默认echo输出内容后会换行 |
-e | 支持反斜线开始的转义字符,屏蔽反斜线后面字符的原本含义 |
例子:直接输出指定字串
[root@localhost ~]# echo "hi"
hi
-
“less is more than more”说明"less"功能比“more”要更加全面。 ↩
- 摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
linux系统显示的命令
- uname
- hostname
- free
- du
uname:显示计算机及操作系统相关信息
命令语法:uname [选项]
选项 | 选项含义 |
---|---|
-a | 显示全部的信息 |
-m | 显示计算机硬件架构名称 |
-n | 显示在网络上的主机名称 |
-r | 显示操作系统的内核发行号 |
-s | 显示操作系统名称 |
例子:显示操作系统的内核发行号
[root@localhost ~]# uname -r
3.10.0-957.el7.x86_64
显示操作系统的全部信息
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
hostname:显示或修改计算机主机名
命令语法:
-
hostname [选项] [主机名|-F <文件>]
-
hostname [选项]
选项 | 选项含义 |
---|---|
-s | 显示短主机名 |
-i | 显示IP地址 |
-f | 显示长主机名 |
-d | 显示DNS |
例子:显示当前计算机主机名
[root@localhost ~]# hostname
localhost.localdomain
设置当前计算机的主机名为linux[1]
[root@localhost ~]# hostname linux
[root@localhost ~]# hostname
linux
free:查看内存信息
命令语法:free [选项]
选项 | 选项含义 |
---|---|
-c <次数> | 显示指定次数结果数据 |
-t | 显示内存加上swap总的容量 |
-b | 以字节为单位显示内存使用情况 |
-k | 以KB为单位显示内存使用情况 |
-m | 以MB为单位显示内存使用情况 |
-g | 以GB为单位显示内存使用情况 |
例子:查看系统物理内存和swap使用情况
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 995896 148252 403780 7828 443864 621672
Swap: 2097148 0 2097148
显示系统的物理内存加上swap总的容量
[root@localhost ~]# free -t
total used free shared buff/cache available
Mem: 995896 147960 404052 7828 443884 621964
Swap: 2097148 0 2097148
Total: 3093044 147960 2501200
cal:显示日历信息
命令语音:cal [选项] [[[日]月]年]
选项 | 选项含义 |
---|---|
-j | 显示出给定月中的每一天是一年总的第几天(从1月1日算起) |
-y | 显示出整年的日历 |
-m | 以星期一为每周第一天的方式显示 |
-s | 以默认的格式显示星期天为一个星期的第一天 |
-l | 只显示当前月份的日历(默认) |
-3 | 显示系统前一个月、当前月和下一个月的日历 |
例子:显示本月的日历
[root@linux ~]# cal
June 2019
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 29
30
显示公元2019年的日历
[root@linux ~]# cal 2019
2019
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30
31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 4 1
7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8
14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15
21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22
28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29
30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7
7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14
14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21
21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28
28 29 30 31 25 26 27 28 29 30 31 29 30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2 3 4 5 6 7
6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14
13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21
20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28
27 28 29 30 31 24 25 26 27 28 29 30 29 30 31
以1月1日起的天数显示今年的日历
[root@linux ~]# cal -jy
2019
January February
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 32 33
6 7 8 9 10 11 12 34 35 36 37 38 39 40
13 14 15 16 17 18 19 41 42 43 44 45 46 47
20 21 22 23 24 25 26 48 49 50 51 52 53 54
27 28 29 30 31 55 56 57 58 59
March April
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
60 61 91 92 93 94 95 96
62 63 64 65 66 67 68 97 98 99 100 101 102 103
69 70 71 72 73 74 75 104 105 106 107 108 109 110
76 77 78 79 80 81 82 111 112 113 114 115 116 117
83 84 85 86 87 88 89 118 119 120
90
May June
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
121 122 123 124 152
125 126 127 128 129 130 131 153 154 155 156 157 158 159
132 133 134 135 136 137 138 160 161 162 163 164 165 166
139 140 141 142 143 144 145 167 168 169 170 171 172 173
146 147 148 149 150 151 174 175 176 177 178 179 180
181
July August
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
182 183 184 185 186 187 213 214 215
188 189 190 191 192 193 194 216 217 218 219 220 221 222
195 196 197 198 199 200 201 223 224 225 226 227 228 229
202 203 204 205 206 207 208 230 231 232 233 234 235 236
209 210 211 212 237 238 239 240 241 242 243
September October
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
244 245 246 247 248 249 250 274 275 276 277 278
251 252 253 254 255 256 257 279 280 281 282 283 284 285
258 259 260 261 262 263 264 286 287 288 289 290 291 292
265 266 267 268 269 270 271 293 294 295 296 297 298 299
272 273 300 301 302 303 304
November December
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
305 306 335 336 337 338 339 340 341
307 308 309 310 311 312 313 342 343 344 345 346 347 348
314 315 316 317 318 319 320 349 350 351 352 353 354 355
321 322 323 324 325 326 327 356 357 358 359 360 361 362
328 329 330 331 332 333 334 363 364 365
date:显示和设置系统日期和时间
命令语法:date [选项] [显示日期格式] (以+开头,后面接格式)
选项 | 选项含义 |
---|---|
-d <字符串> | 显示指定字符串所描述的时间,而非当前的时间 |
-s <字符串> | 设置指定字符串来分开时间 |
-r <文件> | 显示文件指定文件的最后修改时间 |
-u | 输出或者设置协调的通用时间 |
-f<日期时间> | 从日期文件中按行读入时间描述 |
在显示日期时间时,可以使用时间域[1]
例子:设置计算机日期和时间为2028年2月2日19点14分[2]
[root@linux ~]# date 020219142028
Wed Feb 2 19:14:00 EST 2028
[root@linux ~]# date
Wed Feb 2 19:14:07 EST 2028
[root@linux ~]# date 0202191428
Wed Feb 2 19:14:00 EST 2028
设置计算机时间为上午9点16分
[root@linux ~]# date -s 09:16:00
Wed Feb 2 09:16:00 EST 2028
hwclock:查看和设置硬件时钟
命令语法:hwclock [选项]
选项 | 选项含义 |
---|---|
-s | 把系统时间设置成和硬件时钟一致。由于这个动作将会造成系统全面更新文件的存取时间,所以最好在系统启动是就执行它 |
-r | 读取并显示硬件时钟 |
-w | 使用当前系统时间设置硬件时钟 |
--test | 仅做测试,并不真的将时间写入硬件时钟或系统时间 |
-u | 把硬件时钟设置成UTC |
-c | 定期比较系统时钟与CMOS时钟 |
例子:以系统时间更新硬件时间
[root@linux ~]# date
Wed Feb 2 09:22:45 EST 2028
[root@linux ~]# hwclock -w
[root@linux ~]# hwclock
Wed 02 Feb 2028 09:23:19 AM EST -0.250224 seconds
以硬件时间更新系统时间
root@linux ~]# hwclock -s
sort:对文件中数据进行排序,并将结果显示在标准输出上
命令语法:sort [选项] [文件]
选项 | 选项含义 |
---|---|
-m | 如果给定文件已排好序,那么合并文件 |
-u | 对排序后认为相同的行只留其中一行 |
-d | 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义 |
-f | 将小写字母与大写字母同等对待 |
-r | 按逆序输出排序结果 |
-c | 检查给定文件是否已经排好序,如果他们没有排好序,则打印一个出错信息,并以状态值1退出 |
例子:将文件cs.log数据排序,并显示在屏幕上
[root@localhost ~]# sort cs.log
读取文件cs.log内容,以倒序排序该文件并显示在屏幕上
[root@localhost ~]# sort -r cs.log
uniq:将重复行从输出文件中删除
命令语法:uniq [选项] [文件]
选项 | 选项含义 |
---|---|
-c | 显示输出中在每行行首加上本行在文件中出现的次数 |
-d | 只输出重复的行 |
-D | 显示所有重复的行 |
-u | 只显示文件不重复的行 |
-s k | 比较时跳过钱K个字符,K是数字 |
-w K | 对每行第K个字符以后的内容不做对照,K是数字 |
-f K | 比较时跳过前K列,K是数字 |
-i | 在比较的时候不区分大小写 |
例子:查看文件cs.log中不重复行数据的内容
[root@localhost ~]# cat cs.log
wewe
wewe
uoij
124
[root@localhost ~]# uniq -u cs.log
uoij
124
cut:从文件每行中显示出选定的字节、字符或字段(域)
命令语法:cut [选项] [文件]
选项 | 选项含义 |
---|---|
-b<列表> | 只选中指定的这些字节 |
-c<列表> | 只选中指定的这些字符 |
-d<分界符> | 使用指定分解符代替制表符昨晚区域分界 |
-f<列表> | 指定文件中设想被定界符(缺省情况下为制表符)隔开的字段的列表 |
-n | 取消分割多字节字符。仅和-b选项一起使用。如果字符的最后一个字节落在有-b选项的列表参数指示的范围之内,该字符将被写出;否则改字符将被排除 |
-s | 不打印没有包含分界符的行 |
例子:显示文件/etc/passwd中的用户登录名和用户全称字段,这是第1个和第5个字段,由冒号隔开。
[root@localhost ~]# cut -f 1,5 -d: /etc/passwd
root:root
bin:bin
daemon:daemon
adm:adm
lp:lp
sync:sync
shutdown:shutdown
halt:halt
mail:mail
operator:operator
games:games
ftp:FTP User
nobody:Nobody
systemd-network:systemd Network Management
dbus:System message bus
polkitd:User for polkitd
sshd:Privilege-separated SSH
postfix:
chrony:
li:
comm:逐行比较两个已排过序的文件
命令语法:comm [选项] [文件1] [文件2]
选项 | 选项含义 |
---|---|
-1 | 不输出文件1特有的行 |
-2 | 不输出文件2特有的行 |
-3 | 不输出文件3特有的行 |
例子:比较文件file1和file2的文件内容
[root@localhost ~]# cat file1
a
aa
[root@localhost ~]# cat file2
a
bb
[root@localhost ~]# comm file1 file2
a
aa
bb
comm: file 2 is not in sorted order
比较文件file1和file2,只显示文件file1和file2中相同行的数据内容
[root@localhost ~]# comm -12 file1 file2
a
comm: file 2 is not in sorted order
diff:逐个比较两个文本文件,列出其不同之处
命令语法:diff [选项] [文件1] [文件2]
选项 | 选项含义 |
---|---|
-b | 忽略行尾的空格,二字符串中的一个或多个空格符都视为相等 |
-c | 使用上下文输出格式 |
-r | 当比较目录时,递归比较任何找到的子目录 |
-y | 以两列并排格式输出 |
-W<n> | 在并列格式输出时,使用指定的列宽,n代表数字 |
-u | 使用通用的输出格式 |
-i | 文件内容中忽略大小写差异 |
-w | 忽略所有的空白 |
-a | 所有的文件都视为文本文件来逐行比较 |
-B | 忽略插入删除空行引起的变化 |
-q | 只比较简短的输出文件是否不同 |
-s | 当两个文件相同时报告 |
-t | 在输出时扩展tab为空格,保护输入文件的tab对齐方式 |
-x<模式> | 排除匹配模式的文件 |
-X<文件> | 比较目录的时候,忽略和目录中与任何包含在指定文件的样式相配的文件和目录 |
例子:比较file1和file2文件,列出其不同之处
[root@localhost ~]# cat file1
a
aa
[root@localhost ~]# cat file2
a
bb
[root@localhost ~]# diff file1 file2
2c2,3
< aa
---
> bb
>
摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
-
使用hostname命令修改主机名的方法在系统重启之后将失效,主机名还是原来的,如果需要永久设置,需要修改/etc/hostname文件,将主机名添加进去。 ↩
- 摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
-
用于查看日期和时间的相关命令
- cal
- date
- hwclock
-
时间域概念后面将详细说明 ↩
-
0202181428=020219142028 ↩
- 摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
-
用于文本内容处理的相关命令
- sort
- uniq
- cut
- comm
- diff
用于查找系统文件的相关命令
- grep
- find
- locate
grep:查找文件中符号条件的字符串(关键词)
命令语法:grep [选项] 查找模式 [文件名]
选项 | 选项含义 |
---|---|
-E | 模式是一个可扩展的正则表达式 |
-F | 模式是一组有断行符分隔的定长字符串 |
-P | 模式是一个Perl正则表达式 |
-b | 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 |
-c | 只显示匹配行的数量 |
-i | 比较时不区分大小写 |
-h | 抑制输出的文件名前缀 |
-l | 只显示匹配的文件名 |
-L | 只显示不匹配的文件名 |
-n | 在输出前加上匹配字符串所在行的行号(文件首行行号为1) |
-v | 只显示不包含匹配字符的行 |
-x | 强制模式仅完全匹配一行 |
-w | 强制模式仅完全匹配字词 |
-e<模式> | 用模式来进行匹配操作 |
-f<文件> | 从文件取得模式 |
-r | 递归读取每个目录下的所有文件 |
-q | 禁止一切注册输出 |
-I | 强制认为该二进制文件没有包含任何搜索样式 |
-s | 取消错误消息 |
--color | 显示颜色 |
例子:在/etc/passwd文件中过滤出包含sy的行
[root@localhost ~]# grep sy /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
对匹配的关键词显示颜色
[root@localhost ~]# grep --color sy /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
显示所有以d开头的文件中包含“test“的行数据内容
[root@localhost ~]# cat d1
1
test1
[root@localhost ~]# cat d2
2
test2
[root@localhost ~]# grep "test" d*
d1:test1
d2:test2
在/root/aa文件中找出以b开头的行内容
[root@localhost ~]# cat aa
bbb
111
[root@localhost ~]# grep ^b /root/aa
bbb
在/root/kkk文件种蔬菜以le结尾的行内容
[root@localhost ~]# cat kkk
test file
test file1
123
abc
[root@localhost ~]# grep le$ /root/kkk
test file
查找sshd进程信息
[root@localhost ~]# ps -ef|grep sshd
root 7078 1 0 18:50 ? 00:00:00 /usr/sbin/sshd -D
root 7642 7078 0 20:38 ? 00:00:00 sshd: root@pts/1
root 7958 7646 0 22:04 pts/1 00:00:00 grep --color=auto sshd
find:搜索文件系统内符号条件的文件和目录
命令语法:find [命令选项] [路径] [表达式选项]
选项 | 选项含义 |
---|---|
-name<文件名> | 按文档名称查找文件 |
-perm<权限> | 按照文件的权限来查找文件 |
-user<用户名> | 按照文件德语所有者来查找文件 |
-group<组名> | 按照文件的组群所有者来查找文件 |
-atime n | 在过去n天内被访问过(atime)的文件,n代表数字 |
-amin n | 在过去n分钟内被访问过(atime)的文件,n代表数字 |
-ctime n | 在过去n天内被更改过(ctime)的文件,n代表数字 |
-cmin n | 在过去n分钟内被更改过(ctime)的文件,n代表数字 |
-mtime n | 在过去n天内被修改过(mtime)的文件,n代表数字 |
-mmin n | 在过去n分钟内被修改过(mtime)的文件,n代表数字 |
-size n[ckMG] | 查找大写为n的文件,n代表数字,c代表字节,k代表KB,M代表MB,G代表GB |
-empty | 查找空文件,可以是普通的文件或目录 |
-type<文件类型> | 按文档类型查找,文件(f)、目录(d)、设备(b,c)、链接(l)等 |
-fstype<文件系统类型> | 按照指定文件系统类型来查找文件 |
-nogroup | 没有组群的文件 |
-nouser | 没有用户的文件 |
-uid<用户UID> | 按照文件的用户所有者的UID来查找文件 |
-gid<组群GID> | 按照文件的组群所有者的GID来查找文件 |
-inum n | 按照文件的inode号码来查找文件 |
-readable | 匹配只读文件 |
-samefile<文件名> | 查找和指定文件相同inode文件 |
-writable | 匹配可写文件 |
-links n | 按照文件链接数来查找文件,n代表数字 |
在查找文件时可以定义不同的文件类型
字符 | 含义 |
---|---|
b | 块设备文件 |
d | 目录 |
c | 字符设备文件 |
p | 管道文件 |
l | 符号链接文件 |
f | 普通文件 |
s | socket文件 |
例子:查找/boot目录下的启动菜单配置文件grub.cfg
[root@localhost ~]# find /boot name grub.cfg
查找“/"目录下所有以".conf"为扩展名的文件
[root@localhost ~]# find / -name "*.conf"
列出当前目录及其子目录下所有最近20天内更改过的文件
[root@localhost ~]# find . -ctime -20
查找/root目录中为空的文件或子目录
[root@localhost ~]# find /root -empty
查找/boot目录中查找文件类型为目录的文件
[root@localhost ~]# find /boot -type d
查找/home目录下用户所有者UID为1000的文件
[root@localhost ~]# find /home -uid 1000
查找inode号码是33582158的文件,(使用"start [文件]"命令可以查看文件inode号码)
[root@localhost ~]# find /root -inum 33582158
/root/anaconda-ks.cfg
不区分大小写查找文档jacob
root@localhost ~]# find -iname "cs.log"
./cs.log
查找计算机中2天前的当天被修改过的文档
root@localhost ~]# find / -mtime 2
查找当前目录下大于10MB的文档
[root@localhost ~]# find ./ -size +10M
./boot/initramfs-0-rescue-7ad525c9157940e3847220b1bdb8be06.img
./boot/initramfs-3.10.0-957.el7.x86_64.img
查找当前目录下所有普通文件
[root@localhost ~]# find ./ -type f
查找计算机中tom所拥有的所有文档
[root@localhost ~]# find ./ -user tom
查找大于1MB的文件后列出文件的详细信息
[root@localhost ~]# find ./ -size +1M -exec ls -l {} \;
查找计算机中所有大于1MB的文件
[root@localhost ~]# find / -size +1M -a -type f
locate:在数据库中查找文件
使用locate命令可以通过数据库(var/lib/mlocate/mlocate.db文件)来查找文件,这个数据库每天由cron程序来建立。当创建好这个数据库后,就可以方便地搜索所需文件了,它比find命令搜索速度还要快。 命令语法:locate [选项] [范本样式]
选项 | 选项含义 |
---|---|
-q | 安静模式,不会显示任何错误信息 |
-r | 使用正则表达式作为搜索的条件 |
-i | 匹配模式是忽略区分大小写 |
-c | 显示找到的条目数 |
-w | 匹配完整路径名 |
例子:查找httpd.conf文件
[root@localhost ~]# locate
-bash: locate: command not found
[root@localhost ~]# yum -y install mlocate
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.cn99.com
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 166 kB 00:00:02
(2/4): extras/7/x86_64/primary_db | 205 kB 00:00:02
(3/4): base/7/x86_64/primary_db | 6.0 MB 00:00:04
(4/4): updates/7/x86_64/primary_db | 6.4 MB 00:00:04
Resolving Dependencies
--> Running transaction check
---> Package mlocate.x86_64 0:0.26-8.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Installing:
mlocate x86_64 0.26-8.el7 base 113 k
Transaction Summary
===========================================================================================================
Install 1 Package
Total download size: 113 k
Installed size: 379 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/mlocate-0.26-8.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for mlocate-0.26-8.el7.x86_64.rpm is not installed
mlocate-0.26-8.el7.x86_64.rpm | 113 kB 00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
Package : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mlocate-0.26-8.el7.x86_64 1/1
Verifying : mlocate-0.26-8.el7.x86_64 1/1
Installed:
mlocate.x86_64 0:0.26-8.el7
Complete!
[root@localhost ~]# updatedb
[root@localhost ~]# locate httpd.conf
/root/httpd.conf
摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
用于系统内信息交流的相关命令
- echo
- mesg
- wall
- write
echo:在显示器上显示文字
命令语法:echo[选项] [字符串]
选项 | 选项含义 |
---|---|
-n | 表示输出文字后不换行 |
例子:将文本“hello linux”添加到新文件/root/notes中
[root@localhost ~]# echo hello linux > /root/notes
[root@localhost ~]# cat /root/notes
hello linux
显示$HOME变量的值
[root@localhost ~]# echo $HOME
/root
mesg:允许或拒绝写消息
用户使用mesg命令可以控制系中的其他用户是否能够用write命令或talk命令向自己发送消息。不带选项的情况下,mesg命令显示当前主机消息许可设置 命令语法:mesg [选项]
选项 | 选项含义 |
---|---|
y | 允许本地网络上的所有主机发送消息到自己的主机 |
n | 只允许root用户发送消息到自己的主机 |
例子:显示当前的消息许可设置
[root@localhost ~]# mesg
is y
只允许root用户发送消息到自己的主机
[root@localhost ~]# mesg n
[root@localhost ~]# mesg
is n
wall:对全部已登录用户发送消息
命令语法:wall [消息]
例子:向所有用户发出“Shut down the computer after work”的消息
[root@localhost ~]# wall Shut down the computer after work
[root@localhost ~]#
Broadcast message from root@localhost.localdomain (pts/0) (Sat Jun 29 21:49:54 2019):
Shut down the computer after work
write:向用户发送消息
命令语法:write [用户] [终端名称]
例子:在tty2终端上向tty3终端上的root用户发送信息
[root@localhost ~]# tty
/dev/pts/0
[root@localhost ~]# write root /dev/pts/2
hello i am /dev/pts/0
^C[root@localhost ~]#
在tty2终端上显示的是
[root@localhost ~]#
Message from root@localhost.localdomain on pts/0 at 22:02 ...
hello i am /dev/pts/0
EOF
摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
分类: linux
更多推荐
所有评论(0)