四、Centos7基础应用命令

一、Centos7基础应用命令

1、系统操作命令

1)系统相关运行命令
系统关机:
    halt 立刻关机
   2、poweroff 立刻关机
   3、shutdown -h now 立刻关机(root用户使用)
   4、shutdown -h 10 10分钟后自动关机
   shutdown -c命令取消重启
系统重启:
    reboot 普通重启
   2、shutdown -r now 立刻重启(root用户使用)
   3、shutdown -r 10 过10分钟自动重启(root用户使用)
   4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
   shutdown -c命令取消重启


2)目录路径相关命令
ls (list) 打印当前目录文件
  -l      打印当前详细文件列表
  -a    打印当前所有文件(包含隐藏文件)
  -d     ls -ld /tmp 只查看指定tmp目录自身信息,不查看tmp目录里面的文件信息
    例:ls /tmp -la 打印/tmp目录下所有文件详细文件列表
    例:[root@localhost ~]# ls /tmp/aa.txt
    ls: cannot access /tmp/aa.txt: No such file or directory 当前目录下没有该文件
  ls -ltr /etc/   -- 按照时间进行排序显示数据信息,并且是反向排序
mkdir(make directory) 创建目录
  -p 递归创建多个目录
  例:mkdir /tmp/centos 在/tmp目录下创建centos目录
  例:[root@localhost tmp]# mkdir /tmp/centos
  mkdir: cannot create directory ‘/tmp/centos’: File exists #当前目录己存在
  例: [root@localhost tmp]# mkdir /tmp/centos/aa/bb/cc -p
cd   切换目录
cd    /tmp 切换到/tmp目录
pwd   查看当前所在路径

绝对路径与相对路径
相对路径 如:cd .. 回到上级目录,cd ~ 进入家目录,cd - 返回进入此目录之前所在的目录
绝对路径 如:cd /tmp/centos


3)编辑文件的相关命 令
touch 创建文件
  如:touch /tmp/a.txt
vi 或 vim 编辑文件内容
  如:vi /tmp/a.txt 进入编辑窗口
  第一步:vi /tmp/a.txt 第二步:按键盘a键进入编辑状态 第三步:
  编辑完后按键盘ESC键退出编辑模式, 然后输入:wq 保存并退出,
  如果不想保存,可以按键盘ESC键退出编辑模式, 然后输入:q! 直接退出,
echo   在屏幕打印内容 echo "hello world"
>         标准输出重定向符号 echo "hello world" > /tmp/a.txt 先清空文件内容再添加新的信息
>>       echo "hello world" > /tmp/a.txt 不清空文件内容,把新的内容追加到文件最后一行


4)查看文件内容的命令
cat     查看文件内容 如: cat /tmp/a.txt
  cat文件生成用法:
  方法一:
  [root@dingjian tmp]# cat>>cc<<EOF
  > i am studying linux
  > EOF
  方法二:
  [root@dingjian tmp]# cat>cc.txt
  I am studying linux
  回车
  ctrl+c退出
  more 查看文件内容 如: cat /tmp/a.txt


5)复制保存文件命令
copy
  用法:cp 要复制的数据信息 复制到哪个目录
  复制文件 cp /tmp/a.txt /tmp/centos/
  cp /tmp/a.txt /tmp/centos/ 在cp命令前加符号,强行复制并覆盖目录下相同的文件
  复制目录 cp -r /etc /tmp/centos/


6)删除移动数据命令
rm  删除文件或目录
  rm -f /tmp/a.txt 强行删除文件
  rm -r /tmp/centos 删除目录
  rm -rf /tmp/centos 强行删除目录及目录里的数据
mv 移动文件或目录
  mv /etc/redhat.txt /tmp/ 移动文件
  mv -f a.txt /tmp/ 强行复制文件
  mv /etc /tmp/ 移动目录
  mv /tmp/a.txt /tmp/b.txt 修改文件名称

6)查看磁盘使用情况

df  查看磁盘使用情况

[root@mrxiong ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        36G  1.2G   34G   4% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G   12M  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1      1014M  138M  877M  14% /boot
tmpfs           378M     0  378M   0% /run/user/0

8)系统帮助
--help    如:查看mkdir命令的帮助 mkdir --help
man     如:查看mkdir命令的帮助 man mkdir

[root@localhost ~]# man mkdir
NAME #命令的作用说明
    mkdir - make directories

SYNOPSIS #命令的使用方法
    mkdir [OPTION]... DIRECTORY...

DESCRIPTION #命令的参数解译
    Create the DIRECTORY(ies), if they do not already exist.

    Mandatory arguments to long options are mandatory for short options too.

    -m, --mode=MODE
    set file mode (as in chmod), not a=rwx - umask

9)快捷方式的使用方法
ctrl+a 将光标快速移动到行首
ctrl+e 将光标快速移动到行尾
ctrl+?? ?? 将光标按单词快速左右移动
ctrl+w 将空格分隔的一个字符串整体进行删除(剪切)
ctrl+u 将光标所在位置到行首内容进行删除(剪切)
ctrl+k 将光标所在位置到行尾内容进行删除(剪切)
ctrl+y 粘贴剪切的内容
ctrl+s xshell进入到了锁定状态 suo锁
ctrl+q 解除锁定状态 quit推出锁定状态

10)查看远程服务没有开启 

服务端进行测试
systemctl status sshd
ss == netstat

[root@mrxiong ~]# ss -lntup
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port 
udp UNCONN 0 0 127.0.0.1:323 *:* users:(("chronyd",pid=908,fd=1))
udp UNCONN 0 0 ::1:323 :::* users:(("chronyd",pid=908,fd=2))
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=2540,fd=3))
tcp LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1433,fd=13))
tcp LISTEN 0 128 :::22 :::* 

-l list --- 列表显示网络服务信息
-n number --- 以数字方式进行显示
-t tcp --- 网络协议
-u udp --- 网络协议
-p process --- 显示服务进程信息
面试题:
1. 已知一个服务的名称,请告知服务的端口号是什么
2. 已知一个服务的端口,请给出端口号对应服务进程信息

如何有netstat命令
yum install -y net-tools

[root@mrxiong  ~]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3365/sshd 
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1433/master 
tcp6 0 0 :::22 :::* LISTEN 3365/sshd 
tcp6 0 0 ::1:25 :::* LISTEN 1433/master 
udp 0 0 127.0.0.1:323 0.0.0.0:* 908/chronyd 
udp6 0 0 ::1:323 :::* 908/chronyd

只检查有22端口的信息

[root@mrxiong  ~]# ss -lntup|grep "22"
tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=3365,fd=3))
tcp LISTEN 0 128 :::22 :::* users:(("sshd",pid=3365,fd=4))

11). 查看文件信息方法
1) 查看文件或者目录的属性信息
命令: ls查看数据信息
[root@centosdu ~]# ls /mrxiong --- 查看目录中有什么数据信息
mrxiong01 mrxiong.txt oldgirl.txt
[root@centosdu ~]# ls /mrxiong/mrxiong.txt --- 查看目录中文件信息是否存在
/mrxiong/mrxiong.txt
[root@centosdu ~]# ls -l /mrxiong/mrxiong.txt --- 查看文件属性信息
-rw-r--r--. 1 root root 50 Apr 1 10:24 /mrxiong/mrxiong.txt
[root@centosdu ~]# ls -ld /mrxiong/ --- 查看目录属性信息
drwxr-xr-x. 3 root root 59 Apr 11 10:23 /mrxiong/
[root@centosdu ~]# ls -la /mrxiong/ --- 查看目录中所有数据信息,包含隐藏文件
total 8
drwxr-xr-x. 3 root root 59 Apr 11 10:23 .
dr-xr-xr-x. 21 root root 282 Mar 29 16:21 ..
drwxr-xr-x. 3 root root 100 Apr 1 11:00 mrxiong01
-rw-r--r--. 1 root root 50 Apr 1 10:24 mrxiong.txt
-rw-r--r--. 1 root root 18 Apr 11 10:23 oldgirl.txt

企业工作的一个问题:
多个运维人员维护服务器,下班着急回家,交代:将mrxiong目录中最新的数据文件需要继续编辑好
ls -ltr /etc/ -- 按照时间进行排序显示数据信息,并且是反向排序

2) 查看文件内容信息方法
命令: cat
[root@centosdu ~]# cat /mrxiong/mrxiong.txt --- 查看单个文件
hello world
mrxiong shenzhen 01
mrxiong shenzhen 02
[root@centosdu ~]# cat /mrxiong/mrxiong.txt /mrxiong/oldgirl.txt --- 查看多个文件
hello world
mrxiong shenzhen 01
mrxiong shenzhen 02
mrxiong01
mrxiong02
[root@centosdu ~]# cat -n /mrxiong/mrxiong.txt --- 查看文件时,显示每行的行号
1 hello world
2 mrxiong shenzhen 01
3 mrxiong shenzhen 02
命令: less/more

less /etc/service --- 类似于看书,一点点查看文件内容
向下逐行显示: 回车
向下逐页显示: 空格
向上逐行显示: 方向键上
向上逐页显示: 字母b
搜索信息: /搜索的字符串信息
[root@centosdu ~]# less -N /etc/services
1 # /etc/services:
2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
3 #
4 # Network services, Internet style
5 # IANA services version: last updated 2013-04-10
按q结束查看

more /etc/service --- 类似于看书,一点点查看文件内容
向下逐行显示: 回车
向下逐页显示: 空格
向上逐行显示: 字母f/b

head 前几行
tail 后几行

04. 直接编辑文件命令方法
a 如何直接在文件中添加单行内容
echo "mrxiong" >>/mrxiong/mrxiong.txt
补充: echo命令用法说明:
01. 请在屏幕上输出 centosdu.com信息
02. 请在屏幕上输出 1 2 3 .... 100 的数字信息
输出序列信息
a 显示连续的序列

[root@centosdu ~]# echo {1..100}
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
[root@centosdu ~]# echo {01..100}
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100

b 显示不连续的序列
a 不连续有规律的序列
问题:
显示1..10 的奇数信息 1 3 5 7 9
显示1..10 的偶数信息
[root@centosdu ~]# echo {01..10..2}
01 03 05 07 09
[root@centosdu ~]# echo {02..10..2}
02 04 06 08 10
b 不连续无规律的序列

mkdir -p /mrxiong/mrxiong01/mrxiong02/{www,bbs,blog}

练习题一:
在mrxiong目录下面创建出20个文件,二十个文件名称为 mrxiong01,mrxiong02 ..mrxiong20
touch

b 如何直接在文件中添加多行内容

[root@centosdu ~]# cat /mrxiong/mrxiong.txt 
hello world
mrxiong shenzhen 01
mrxiong shenzhen 02
[root@centosdu ~]# cat >> /mrxiong/mrxiong.txt <<EOF
> mrxiong01
> mrxiong02
> mrxiong03
> EOF
[root@centosdu ~]# cat /mrxiong/mrxiong.txt 
hello world
mrxiong shenzhen 01
mrxiong shenzhen 02
mrxiong01
mrxiong02
mrxiong03
[root@centosdu ~]# cat >> /mrxiong/mrxiong.txt <<mrxiong
> mrxiong04
> mrxiong05
> mrxiong
[root@centosdu ~]# cat /mrxiong/mrxiong.txt 
hello world
mrxiong shenzhen 01
mrxiong shenzhen 02
mrxiong01
mrxiong02
mrxiong03
mrxiong04
mrxiong05

05. 过滤筛选文件内容命令
三剑客命令
老三: grep 过滤筛选信息
老二: sed 修改替换文件内容 擅长对文件中的行进行操作
老大: awk 擅长统计分析文件内容 擅长对文件中列进行操作

grep命令如何进行过滤:
编辑一个测试文件

[root@centosdu ~]# cat >> /mrxiong/test.txt <<EOF
> mrxiong01
> oldgirl01
> olddog01
> mrxiong02
> oldgirl02
> olddog02
> EOF
[root@centosdu ~]# cat /mrxiong/test.txt 
mrxiong01
oldgirl01
olddog01
mrxiong02
oldgirl02
olddog02

需求01: 请筛选出有mrxiong的信息

[root@centosdu ~]# grep "mrxiong" /mrxiong/test.txt 
mrxiong01
mrxiong02

需求02: 筛选有oldgirl的信息,但是要有oldgirl信息的上一行信息也显示

[root@centosdu ~]# grep -B 1 "oldgirl" /mrxiong/test.txt 
mrxiong01
oldgirl01
--
mrxiong02
oldgirl02

需求03: 筛选有oldgirl的信息,但是要有oldgirl信息的下一行信息也显示

[root@centosdu ~]# grep -A 1 "oldgirl" /mrxiong/test.txt 
oldgirl01
olddog01
--
oldgirl02
olddog02

需求04.筛选有oldgirl的信, 但是要有oldgirl信息的下一行和下一行信息也显示

[root@centosdu ~]# grep -C 1 "oldgirl" /mrxiong/test.txt 
mrxiong01
oldgirl01
olddog01
mrxiong02
oldgirl02
olddog02

需求05. 统计oldgirl信息在文件中出现了几次
[root@centosdu ~]# grep -c "oldgirl" /mrxiong/test.txt

sed命令如何进行过滤信息

[root@centosdu ~]# sed -n "/mrxiong/p" /mrxiong/test.txt 
mrxiong01 edu.com
mrxiong02

p print 将过滤信息输出
-n 取消原文件的所有内容输出(取消默认输出)

[root@centosdu ~]# awk "/mrxiong/" /mrxiong/test.txt 
mrxiong01 edu.com
mrxiong02

06. 修改文件部分内容信息
01. sed命令 (师傅: 真正修改文件内容)
需求: 修改test.txt文件内容 将所有mrxiong信息修改替换为 python
vim 替换: :%s#mrxiong#python#g
sed 's#mrxiong#python#g' /mrxiong/test.txt

实践操作

[root@centosdu ~]# sed 's#mrxiong#python#g' /mrxiong/test.txt
python01 edu.com
oldgirl01
olddog01
python02
oldgirl02
olddog02
[root@centosdu ~]# cat /mrxiong/test.txt 
mrxiong01 edu.com
oldgirl01
olddog01
mrxiong02
oldgirl02
olddog02
[root@centosdu ~]# sed -i 's#mrxiong#python#g' /mrxiong/test.txt
[root@centosdu ~]# cat /mrxiong/test.txt 
python01 edu.com
oldgirl01
olddog01
python02
oldgirl02
olddog02

02. tr命令 (徒弟: 假装修改文件内容)
需求: 修改test.txt文件内容 将所有python信息修改替换为 mrxiong

[root@centosdu ~]# tr "python" "mrxiong" </mrxiong/test.txt 
mrxiong01 edu.com
oldgirl01
olddog01
mrxiong02
oldgirl02
olddog02
[root@centosdu ~]# cat /mrxiong/test.txt
python01 edu.com
oldgirl01
olddog01
python02
oldgirl02
olddog02

tr用法
[root@centosdu ~]# echo 123|tr "123" "abc"
abc
小于号用法1:
[root@centosdu ~]# tr "123" "abc" < /mrxiong/test01.txt
abc
[root@centosdu ~]# cat /mrxiong/test01.txt
123

原文地址:https://www.cnblogs.com/mr-xiong/p/13702792.html