0 概述

本章内容如下

  • 强大的shell.
  • 帮助文档命令(1)
  • 系统工作命令(10)
  • 系统状态监测命令(8)
  • 工作目录切换命令(3)
  • 文本文件编辑命令(9)
  • 文件目录管理命令(7)
  • 打包压缩或搜索命令(3)

1 强大的shell

2 帮助文档命令

3 系统工作命令

4 系统状态监测命令

1)ifconfig

ifconfig 用于获取网卡配置与网络状态的命令,格式为:ifconfig [网络设备] [参数]。

  • 查看网络配置前的状态:ifconfig



    上图可以看出:网卡名是 eno16777736,MAC地址:000C2918DCD9. 没有IP地址。
  • 配置网络:ifconfig 网卡名 IP netmask 掩码



    配置之后可以看到:网卡名,MAC,IP,掩码,网关,发送字节,接收字节。

2)uname

uname用于查看系统内核与系统版本等信息,格式为:uname [-a].



-a 可以完整查看信息,上图从左到右分别是:系统的内核名称,主机名,内核发行版本,节点名,系统时间,硬件名称,硬件平台,处理器类型和操作系统名称。

如果要查看当前系统版本的详细信息,则需要查看 redhat-release。

[root@RHEL Desktop]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)

3) uptime

uptime用于查看系统的负载信息。格式为 uptime.

[root@RHEL Desktop]# uptime
21:46:41 up 4 min, 2 users, load average: 0.04, 0.19, 0.11

上面最后三个数值代表之前1分钟,5分钟,15分钟内的平均负载。该负载值越低越好,尽量不要长期超过1,在生成环境中不要超过5.

4) free

free用于显示当前系统中内存的使用情况,格式为: free [-h/-m].

-h 和-m效果一样,不同的是单位不一样。

[root@RHEL Desktop]# free -h
total used free shared buffers cached
Mem: 3.8G 889M 3.0G 9.9M 928K 301M
-/+ buffers/cache: 587M 3.3G
Swap: 2.0G 0B 2.0G
[root@RHEL Desktop]# free -m
total used free shared buffers cached
Mem: 3939 889 3049 9 0 301
-/+ buffers/cache: 587 3352
Swap: 2047 0 2047
[root@RHEL Desktop]#

上面每列数据分别代表的意思是:

5) who

who用于查看当前登入主机的用户终端信息,格式为: who [参数]。

6) last

last用于查看所有系统的登录记录,格式为: last [参数]。

7) history

history用于显示历史执行过的命令。格式为: history [-c].

默认1000条,可以修改/etc/profile 中的HISTSIZE变量值来更改最大值值。

[root@RHEL Desktop]# vim /etc/profile



history如下:

[root@RHEL Desktop]# history
1 man man
2 man ls
3 man echo
4 man man
、、、

使用 “! 编码数字” 来重复执行某一次命令。

-c参数会清空所有的history命令。

[root@RHEL Desktop]# history -c
[root@RHEL Desktop]# history
1 history

历史命令保存在 .bash_history 文件中。

[root@RHEL Desktop]# cat ~/.bash_history
man man
man ls

8) sosreport

sosreport用于收集系统配置以及架构信息并输出诊断文档,格式为:sosreport.

sosreport命令执行过程中需要敲3次回车键。

在打印的最后,有下面的提示:



加粗部分是收集好的资料压缩文件和校验码,发送给技术人员就可以了。

5 工作目录切换命令

1) pwd

pwd用于显示用户当前所处的工作目录。格式:pwd.

2) cd

cd 用来切换工作路径,格式: cd [目录]。

 cd /etc           #切换到/etc目录
cd /bin #切换到/bin目录
cd - #返回到上一次的目录(即/etc)
cd .. #返回到上一级的目录(即/etc的上一级,即/)
cd ~linuxprobe #切换到用户linuxprobe的家目录
cd ~ #切换到当前用户的家目录(其实直接cd就行)

3) ls

ls 用于查看目录中的文件信息,格式: ls [选项] [文件]。

-a :查看全部文件,包括隐藏文件。

-l :查看文件的属性,大小等详细信息。

-d :查看目录的属性信息。

 ls -al                    #查看当前目录的所有文件(包括隐藏文件)的详细信息
ls -ld /etc #查看/etc目录的详细信息
ls -Zd anaconda-ks.cfg #查看文件或目录的详细信息以及SELinux安全上下文值



上图中,文件前缀为.的是隐藏文件,文件名是黑色的是普通文件,蓝色的是目录文件。

6 文本文件编辑命令

1) cat

cat用于查看纯文本文件(内容较少),格式: cat [选项] [文件]。

-n则可以显示行号。

cat -n initial-setup-ks.cfg

作用等同于less.

[root@RHEL Desktop]# less man.txt

2) more

more用于查看内容较多的纯文本文件。格式:more [选项] 文件。

more 会在最下面用百分数显示已经阅读了多少。

可以用空格或者回车键向下翻页,按q键退出。

more man.txt

3) head

head 用于查看纯文本文档的前N行,格式:head [选项] [文件]。

-n 用于指定多上行,后面跟具体数字。如

head -n 10 man.txt

4) tail

tail 用于查看纯文本文档的后N行或持续刷新内容,格式为: tail [参数] [文件]。

tail -n 10 man.txt #可查看man.txt的后10行内容。

tail的强悍功能是可以持续刷新一个文件的内容。

tail -f man.txt #可以实时查看man.txt内容

5) tr

tr 用于替换文本文件中的字符,格式为:tr [原始字符] [目标文件]。

tr [a-z] [A-Z] #将小写替换为大写

[root@RHEL Desktop]# tr [a-z] [A-Z]
i love you #这行是输入
I LOVE YOU #这行是打印,ctrl +c 退出

6) wc

wc用于统计文本的行数,字数,字节数,格式为: wc [参数] 文本。

-l :显示行数。

-w:显示单词数。

-c :显示字节数。

[root@RHEL Desktop]# wc -lwc man.txt
728 4880 37341 man.txt

7) stat

stat 用于查看文件的具体存储信息和时间等信息,格式为:stat 文件名。

该命令会显示出文件的三种状态(已加粗):access ,Modify,Change。

Access: 文件访问时间,也叫atime.

Modify: 文件修改时间,也叫mtime.

Change: 文件权限修改时间,也叫ctime.

8) cut

cut用于按“列”提取出文本字符,格式为:cut [参数] 文本。

-f:设置需要看的列数。可以是单个,也可是范围。

-d:设置间隔符号。

#查询passwd的1到3和第6列的数据,分隔符为:#
[root@RHEL ~]# cut -d : -f 1-3,6 /etc/passwd
root:x:0:/root
bin:x:1:/bin
daemon:x:2:/sbin
adm:x:3:/var/adm
lp:x:4:/var/spool/lpd

9) diff

diff用于比较多个文本文件的差异,格式为:diff [参数] 文件。

–brief:用于确认两个文件是否相同,只输出结果。

-c 详细比较出多个文件的差异之处,输出具体的差异之处。

[root@RHEL Desktop]# diff --brief test.txt test2.txt
Files test.txt and test2.txt differ
[root@RHEL Desktop]# diff -c test.txt test2.txt
*** test.txt 2019-08-26 01:49:31.318430043 -0400
--- test2.txt 2019-08-26 01:50:16.518435344 -0400
***************
*** 1,5 ****
! i
love
! you
!
-
--- 1,6 ----
! I
!
love
! yoU
! too
!

上面可以看出,前面有!表示不一样。

7 文件目录管理命令

1) touch

touch用于创建空白文件或设置文件的时间,格式为:touch [选项] [文件]。

touch 简单用法是创建空白文件。

touch 的困难操作是 修改文件的时间。



[root@RHEL7 Desktop]# touch -d "2019-10-01 22:30" test.txt

2) mkdir

mkdir 用于创建空白的目录,格式为:mkdir [选项] 目录。

-p 参数来递归创建出具有嵌套层关系的文件目录。

[root@RHEL Desktop]# mkdir -p a/b/c

3) cp

cp 命令用于复制文件或目录, 格式为:cp [选项] 源文件 目标文件。

有三种情况:

  • 如果目标文件是目录,则会把源文件复制到该目录文件中。
  • 如果目标文件也是普通文件,则会询问是否覆盖它。
  • 如果目标文件不存在,则执行正常的操作。

[root@RHEL Desktop]# cp test.txt a/b
[root@RHEL Desktop]# cp test.txt test2.txt
cp: overwrite ‘test2.txt’? y #这里需要输入y,直接按enter无用。
[root@RHEL Desktop]# cat test.txt test2.txt

4) mv

mv用来剪切文件或者将文件重命名。格式为:mv [选项] 源文件 [目标文件|目标路径]。

在同一个目录对同一个文件进行剪切,则是对该文件进行重命名。

[root@linuxprobe ~]# mv x.log linux.log

## 将x.log重命名为linux.log

5) rm

rm用于删除文件或目录,格式为:rm [选项] 文件。

-f 用于强制删除。

-r 用于删除

[root@RHEL Desktop]# rm -rf a/b/

6) dd

dd命令用于按照指定大小和个数的数据块来复制文件和转换文件,格式为 dd [参数]。

dd命令比较重要且有特色,可以让用户按照指定大小和个数的数据块来复制文件的内容。

linux 系统中的/dev/zero 设备文件,不会占用系统存储空间,却可以提供无穷的数据,所以可以作为dd命令的输入文件或测试文件。

[root@RHEL ~]# dd if=/dev/zero of=mytest.txt count=1 bs=512M
1+0 records in
1+0 records out
536870912 bytes (537 MB) copied, 9.53711 s, 56.3 MB/s

linux系统下还可以直接用dd命令来压制光盘镜像文件,是它变成一个可立即执行的iso镜像。

[root@RHEL ~]# dd if=/dev/zero of=mytest.txt count=1 bs=512M
1+0 records in
1+0 records out
536870912 bytes (537 MB) copied, 9.53711 s, 56.3 MB/s

7) file

file 用于查看文件的类型,格式为 file 文件名。

[root@RHEL Desktop]# file test.txt
test.txt: ASCII text

8 打包压缩或搜索命令

1) tar

tar用于对文件进行打包压缩或者解压, 格式为:tar [选项] [文件]。

可以用来生成或解压.tar 或.tar.gz 或.tar.bz2 格式文件。



比较常用的参数为 c ,x ,z, j ,v ,C, f,其中f必须放到最后来指定目标名称。

“tar -czvf 压缩包名.tar.gz 待压缩文件|目录” 来打包文件。

"tar -xzvf filename.tar.gz " 来解压缩文件。也可以指定文件夹。

[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc   ##压缩整个etc文件夹
[root@linuxprobe ~]# tar xzvf etc.tar.gz -C /root/etc ##将压缩包解压到指定的目录

2)grep

grep用于在文本中执行关键词搜索,并显示匹配的结果,格式为:grep [选项] [文件]。



-n 用来显示搜索到的信息的行号。

-v 用于反选,即没有包含的信息。

[root@RHEL ~]# grep -n /sbin/nologin /etc/passwd   ##在/etc/passwd中查找包含 /sbin/nologin 的行,并显示行号
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
#############################################
[root@RHEL ~]# grep -nv /sbin/nologin /etc/passwd #和上一个搜索结果相反,即不包含 /sbin/nologin
1:root:x:0:0:root:/root:/bin/bash
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
38:felix:x:1000:1000:felix:/home/felix:/bin/bash

3) find

find用于按照指定条件查找文件,格式为 find [路径] 寻找条件 操作。



其中 -exec 参数比较重要,它是把find的结果交给其他命令做进一步处理。其中find结果存在{}中, \;在最后结束时必须用的。

[root@linuxprobe ~]# find /etc -name "host*" -print  # 在etc下查找名字包含host的文件或文件夹
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
######################
[root@linuxprobe ~]# find / -perm -4000 -print ##查找权限为SUID 的文件
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
#################
#在整个系统中查找归属linuxprobe 的文件并复制到/root/findresults 目录下。如果在当前目录中查找则可以使用.代表当前目录。
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ \; #############
[root@RHEL Desktop]# find . -user root -exec cp -a {} a/ \;
cp: cannot copy a directory, ‘.’, into itself, ‘a/.’
cp: cannot copy a directory, ‘./a’, into itself, ‘a/a’
cp: ‘./a/linucprobe’ and ‘a/linucprobe’ are the same file

Linux 就该这么学 CH02新手必须掌握的Linux命令的更多相关文章

  1. linux就该这么学之新手必须掌握的linux命令

    常用的系统工作命令 1echo:用于在终端显示字符串或变量 格式为:“echo [字符串|变量]” 2date:用于显示/设置系统的时间或日期 格式为:“data[选项][+指定格式]” 3rebot ...

  2. 《linux就该这么学》找到一本不错的Linux电子书,《Linux就该这么学》。

    本帖不是广告贴,只是感觉有好的工具书而已 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国 ...

  3. 《Linux就该这么学》培训笔记_ch00_认识Linux系统和红帽认证

    <Linux就该这么学>培训笔记_ch00_认识Linux系统和红帽认证 文章最后会post上书本的笔记照片. 文章主要内容: 认识开源 Linux系统的种类及优势特性 认识红帽系统及红帽 ...

  4. Linux系统学习之 一:新手必须掌握的Linux命令1

    2018-10-03 16:04:12 一.常用系统工作命令 1.wget 命令 作用:用于在终端中下载网络文件. 格式:wget [参数] 下载地址 参数及作用: -b : 后台下载模式 -d:显示 ...

  5. 《linux就该这么学》第三节课 第二节命令笔记

    命令笔记 (随笔原创,借鉴请修改) linux系统中一切都是文件 2.4  系统状态的命令:  ifconfig   :    查看系统网卡信息,包括网卡名称,ip地址,掩码,mac地址,收到数据包大 ...

  6. Linux系统学习之 三:新手必须掌握的Linux命令3

    内容预览 1.输入输出重定向 2.管道命令符 3.命令行的通配符 4.常用的转义符号 5.重要的环境变量 一.输入输出重定向 重定向技术的5种模式:1 标准覆盖输出重定向 错误覆盖输出重定向 错误追加 ...

  7. Linux系统学习之 二:新手必须掌握的Linux命令2

    2018-10-03 22:20:48 一.文件目录管理命令 1.touch 命令 用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”. 参数: -a :仅修改“读取时间(at ...

  8. 《Linux就该这么学》

    参加了第19期课程的培训,感谢刘老师的辛苦付出,课程讲的很好,真心推荐老刘的这本书真是<Linux就该这么学>!!! 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的 ...

  9. 《Linux就该这么学》day3

    ps:原谅我的书法出自鲁迅的<野草> <Linux就该这么学>书本介绍: 本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极 ...

随机推荐

  1. Linux输入输出重定向练习

    1.date >> 123 date > 123 2.abc 2>123 abc 2>>123 abc 2>/dev/null  标准输出重定向到回收站 3. ...

  2. 在阿里云CentOS服务器上安装Python3.7并设置为默认Python

    1.引言 Linux操作系统自带一个python2.7,没有python3,在开发的时候非常不便,因此需要安装一个python3,并且将python3设置系统默认python,同时还不能影响那些Lin ...

  3. LeetCode 865. Smallest Subtree with all the Deepest Nodes

    原题链接在这里:https://leetcode.com/problems/smallest-subtree-with-all-the-deepest-nodes/ 题目: Given a binar ...

  4. sqlg rdbms 上实现的Apache TinkerPop

    sqlg 可以让关系型数据库支持Apache TinkerPop,当前支持的数据库有postgresql,hsqldb,h2,mariadb,mysql,mssqlserver 以下是一个简单的使用 ...

  5. 使用openrc 管理容器中的服务

    对于后台任务一般是不建议在容器中运行的,但是如果我们为了简化应用的部署,可能会使用后台任务进行服务的管理,类似的 工具很多,supervisor,systemd , init.d 同时对于docker ...

  6. CF241E Flights 题解

    题目 做了一下这道题,突然发现自己忘了差分约束,赶紧复习一下. 设当前有n个变量 a1,a2,...,an ,有若干组限制形如 ai≤aj+k (其中k为常数),则由点j向点i连一条边权为k的边,再从 ...

  7. ex3

    #include <stdio.h> int main() { char ch; printf("please input:\n"); scanf("%c&q ...

  8. MySQL性能优化 分区

    简述 分区是指根据一定的规则,数据库将表分解为多个更小的,更容易管理的部分,就访问数据库而言,逻辑上只有一张表或一个索引,但实际上这张表可能又多个物理分区共同构成,每一个分区都是一个独立的对象,可以独 ...

  9. 欧拉法求解常微分方程(c++)

    #include<iostream> #include<iomanip> using namespace std; int main() { double x, y, h;   ...

  10. Android Studio 之 ViewModel

    ViewModel 是 JetPack 类库中的一个功能,可以保存控件的状态 ,在整个Activity 生命周期中,状态不会失效 如屏幕翻转时,状态可保留,不会失效! 与 LiveData 配合使用! ...