CentOS 7常用Linux指令

Linux常用指令

      • 一、处理目录常用命令
        • 1 关机重启
        • 1 清屏
        • 2 ls 指令
        • 3 pwd命令
        • 4 cd 指令
        • 5 touch
        • 6 mkdir
        • 7 rm
        • 8 cp
        • 9 mv
        • 10 tree
        • 11 软链接和硬链接
      • 二、文件内容查看
        • 1 cat
        • 2 more
        • 3 less
        • 4 head
        • 5 tail
        • 5 关于重定向
        • 6 echo
        • 7 关于管道 |
        • 8 date 命令
        • 9 find查找文件
        • 10 grep查找文件
        • 11 定位命令所在位置
        • 12 查阅命令帮助信息help和man
      • 三、查看系统状态
        • 1 ps、pstree、top查看进程信息
        • 2 终止进程
        • 3 top负载情况(CPU情况)
        • 4 top内存情况
        • 5 IO情况iostat
        • 6 netstat 端口号占用情况
        • 7 df、du 磁盘信息
        • 8 ifconfig ping
        • 9 磁盘挂载与卸除
      • 四、数据处理
        • 1 awk
      • 五、文件下载及打包
        • 1 yum
        • 2 curl
        • 3 wget
        • 4 打包压缩
          • (1) tar
          • (2) zip
      • 六、基本属性
        • (1)文件属性
        • (2)修改文件属性
      • 七、账号管理和用户组管理
        • (1)添加用户
        • (2)删除用户
        • (3)修改用户
        • (4)切换用户
        • (5)配置密码
        • (6)用户组管理
        • (7)查看用户信息

发行版:

  • Debian运行起来极其稳定,这使得它非常适合用于服务器。
  • Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至在一些移动设备上很常见。
  • Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。
  • Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。
  • 红帽企业级Linux 这是第一款面向商业市场的Linux发行版
  • CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。CentOS使用YUM来管理软件包。

常用目录简介:
CentOS 7常用Linux指令_第1张图片
各个发行版本的操作指令都大同小异,下面介绍一下Linux的常用指令。

一、处理目录常用命令

1 关机重启

关机重启:reboot、shutdown、init

reboot重新启动操作系统
shutdown –r now重新启动操作系统,shutdown会给别的用户提示,加-r
shutdown -h now立刻关机,其中now相当于时间为0的状态
shutdown now立刻关机
shutdown -h 20:25系统在今天的20:25 会关机
shutdown -h +10系统再过十分钟后自动关机
shutdown -c取消之前的关机计划

1 清屏
clear	或  ctrl + l
2 ls 指令
ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

  • -a 列出目录下的所有文件,包括以. 开头的隐含文件。
  • -d 将目录像文件一样显示,而不显示其下的文件。如:ls –d 指定目录
  • -k 以k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)

ls通配符的使用

  • * 代表文件名中所有字符
    ls te*查找以te开头的文件
    ls *html查找结尾为html的文件
  • 代表文件名中任意一个字符
    ls ?.c只找第一个字符任意,后缀为.c的文件
    ls a.?只找3个字符,前2字符为a.,最后一个字符任意的文件
  • []将字符组括起来,表示可以匹配字符组中的任意一个“-”用于表示字符范围。
    [abc]匹配a、b、c中的任意一个
    [a-f]匹配从a到f范围内的的任意一个字符
    ls [a-f]*找到从a到f范围内的的任意一个字符开头的文件
    ls a-f查找文件名为a-f的文件,“-”处于方括号之外失去通配符的作用
  • \如果要使通配符作为普通字符使用,可以在其前面加上转义字符“?”“*”处于方括号内时失去通配符的作用。
    ls \*a查找文件名为*a的文件
3 pwd命令

显示用户当前所在的目录:

pwd 
4 cd 指令
cd 目录名

功能: 将当前工作目录改变到指定的目录下。

cd .. : 返回上级目录
cd ~或者 cd:进入用户家目录
cd -:返回最近访问目录

几个特殊的目录:
/ 称为根目录
. 称为当前目录
.. 称为当前目录的上级目录

绝对路径和相对路径

  • 形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.
  • 形如: ./logs. 或者.. 开头的, 称为相对路径

使用tab 键补全
所有的Linux 命令, 都可以使用tab 键来尝试补全。

使用ctrl + c 重新输入
如果命令或者目录敲错了, 可以ctrl + c 取消当前的命令,重起一行输入。

  • . 开头的文件为隐藏文件
5 touch
touch [选项]... 文件... 

功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

6 mkdir
mkdir [选项] 目录名 

功能:在当前目录下创建目录

-p连续创建多个目录

mkdir –p a/b/c
7 rm
rm [-f-i-r-v] [dirName/dir] 

功能:删除文件或目录
常用选项

  • -f 即使文件属性为只读(即写保护),亦直接删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件
8 cp

复制文件:

cp [选项] 源文件 目标文件

复制目录:

cp -r 源目录 目标目录

常用选项

  • -f 强行复制文件或目录
  • -i 覆盖文件之前先询问用户
  • -r若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
  • -R 递归处理,将指定目录下的文件及子目录一并处理
  • -v 显示拷贝进度
  • -a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
9 mv
 mv [选项] 源文件 目标文件

功能:移动文件(目录)或者目录(文件),重命名(同一目录下移动)。

常用选项

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖.
  • -i :若目标文件(destination) 已经存在时,就会询问是否覆盖.
10 tree
tree [目录名] 

功能:以树状图列出文件目录结构
tree -d:只显示目录

11 软链接和硬链接

Linux链接文件类似于Windows下的快捷方式。链接文件分为软链接和硬链接。linux中文件名和文件数据是分开保存的。在Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。

  • 硬链接:硬链接只能链接普通文件,不能链接目录。硬链接就是多个文件名指向同一索引节点,删除任何一个都不会影响另一个的访问。只有全部硬链接全部删除,文件的数据块及目录的连接才会被释放。
  • 软链接:软链接又称符号连接。它实际上是一个文本文件,内部包含有另一个文件的位置信息,即存放了另一个文件的路径信息,即软链接文件和被链接文件指向的是不同的索引节点。如果被链接文件删除了,那么软链接就会失效。

注意:
硬链接数:有多少种方式可以访问到当前目录/文件。如:绝对路径 cd . cd …

ln 源文件 链接文件 (硬链接)
ln -s 源文件 链接文件 (软链接)

二、文件内容查看

1 cat
cat [选项] [文件]

功能:查看目标文件的内容
常用选项

  • cat -b 显示内容时对非空输出行编号
  • cat -n 对输出的所有行编号
2 more

按空格翻页,不能向上翻页,可以显示阅读进度。

more 文件名

功能:分屏显示文件内容(文件内容较多时用more)

3 less

less和more类似,可以上下翻页。

less [参数] 

功能:查看文件内容. 不会立刻把所有文件内容加载到内存中. 也能进行查找.

常用选项

  • j k 或者 方向键 : 向上向下滚动屏幕.
  • -N 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • q: 退出
4 head
head [参数]... [文件]... 

功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项

  • -n<行数> 显示的行数
5 tail
tail [必要参数] [选择参数] [文件]  

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用于查看日志文件。

选项

  • -f 循环读取
  • -n<行数> 显示行数

举例:有一个文件共有100行内容,请取出第50行内容
方法1:

head -n50 test > tmp # 将前50行装入临时文件tmp
tail -n1 tmp # 得到test的中间行

方法2:

head -n50 test | tail -n1
5 关于重定向

Linux 的很多指令, 如cat head tail 等都是默认输出到"标准输出" 中, 也就是显示器上的. 可以通过> 这样的符号把本来要输出到标准输出上的内容写到特定文件中. 这样的操作称为"重定向"

重定向有三种方式:
(1) 标准输入重定向(<)

先构造一个文件, 里面添加一些内容.
cat < test.txt

(2) 标准输出重定向(>)

cat test.txt > test2.txt

(3) 标准错误重定向(2>), 注意2 和> 之间不能有空格.

尝试删除一个不存在的文件
输出结果rm: cannot remove ‘aaa’: No such file or directory
重定向到test.txt 文件中.

rm aaa 2> test.txt

标准输入, 标准输出, 标准错误是三个特殊的文件, 每个进程在启动的时候都会默认打开.
在Java 中, 分别对应到System.in , System.out , System.err

追加重定向
>>> 把将要在终端显示的内容输出到文件中

  • >:表示输出,会覆盖文件原有的内容
  • >>:表示追加,会将内容追加到已有文件的末尾
6 echo
echo

功能:将输入的的内容显示在终端

echo hello >> hello.txt
7 关于管道 |

管道是一种古老的"进程间通信" 方式. 将前一个指令标准输出的内容, 作为第二个指令的标准输入内容.
例:

ls -lha | more
ls -lha | grep Do

管道和重定向原理类似,每一个进程都有System.in,System.out,System.err:
CentOS 7常用Linux指令_第2张图片

8 date 命令

date 指定格式显示时间:date +%Y:%m:%d
date 用法:date [OPTION]... [+FORMAT]

(1) 在显示方面,使用者可以设定格式,格式设定为一个加号后接数个标记

  • %H : 小时(00…23)
  • %M : 分钟(00…59)
  • %S : 秒(00…61)
  • %X : 相当于%H:%M:%S
  • %d : 日(01…31)
  • %m : 月份(01…12)
  • %Y : 完整年份(0000…9999)
  • %F : 相当于%Y-%m-%d

(2) 时间戳获取
时间转换为时间戳:date +%s 结果:1589512791
时间戳转换为时间:date -d@1589512791
时间戳(Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

date #查看系统时间
cal -y #calendar查看日历, -y 选项可以查看一年的日历

9 find查找文件
find 路径 -name

find ./ -name test.sh查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh'查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*"查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M查找在/tmp 目录下等于2M的文件
find /tmp -size +2M查找在/tmp 目录下大于2M的文件
find /tmp -size -2M查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M查找当前目录下大于4k,小于5M的文件
find ./ -perm 777查找当前目录下权限为 777 的文件或目录

10 grep查找文件
grep [-选项] ‘搜索内容串’文件名

在grep命令中输入字符串参数时,最好引号或双引号括起来。

grep -n:显示匹配行及行号
grep -v:显示不包含匹配文本的所有行
grep -i: 查找时忽略大小写

示例:
grep as 1123.txt :查找1123文件中的as
grep “hello python” 123.txt:查找内容多时用引号括起来
grep -n '^a' 1.txt 行首,搜寻以a开头的行
grep -n 'ke$' 1.txt 行尾,搜寻以Ke结束的行
grep -n '[Ss]igna[Ll]' 1.txt 匹配 [] 里中一系列字符中的一个
grep -n 'e.e' 1.txt 匹配一个非换行符的字符;

11 定位命令所在位置

(1)which(查看执行命令所在的位置)
which ls 结果:/usr/bin/ls

(2)whereis ls

/etc/passwd#用于保存用户信息的文件
/usr/bin/passwd #用于修改用户密码的程序

linux中的大多数可执行文件都保存在/bin、/sbin、/usr/bin、/usr/sbin

  • /bin (binary)#二进制执行文件目录,主要用于具体应用
  • /sbin (system binary)#系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/bin (user commands for applications) #后期安装的软件
  • /usr/sbin (super user commands for applications) #超级用户的一些管理程序
12 查阅命令帮助信息help和man

(1) help

[command] --help

(2) man

man [选项] [command] 

常用选项

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • man man 能够看到man 手册中的若干个章节及其含义

空格键:显示手册的下一屏
Enter键:一次滚动手册页的一行
b:回滚一屏
f:前滚一屏
q:退出

三、查看系统状态

1 ps、pstree、top查看进程信息

(1)ps

ps aux | grep 8080  捕捉想看的进程信息
ps aux | grep tomcat
ps aux   查看进程的详细状况
ps au 比较常用
ps	只显示通过终端启动的程序
ps aux | less 按页显示内容
  • a #显示终端上的所有进程,包括其他用户的进程
  • u #显示进程的详细信息
  • x #显示没有控制终端的进程,即所有进程,包括系统

ps -eLf 可以查看父进程信息,推荐使用pstree来查看父进程

ps -ef | grep tomcat

(2) pstree
pstree [选项] ,可以更加直观的来看进程信息

  • -p :显示进程的PID
  • -u :显示进程的所属用户

(3) top
top 动态显示运行中的进程并且排序, q键退出

2 终止进程

kill -9 进程代号 终止指定代号的进程,-9表示强制终止

3 top负载情况(CPU情况)
top
4 top内存情况
top

freevmstat

5 IO情况iostat

iostat

6 netstat 端口号占用情况

netstat 查询端口号占用情况 .
示例

netstat -anp | grep xxx
netstat -nlpt | grep 3306  //netstat 查询端口号占用情况

假设Tomcat接收http请求的端口是8080,则可以使用netstat查看连接占用情况:

netstat -nat | grep 8080

在这里插入图片描述
一个处于监听状态,3个处于建立连接状态。

7 df、du 磁盘信息

(1) df
df [-ahikHTm] [目录或文件名] #检查文件系统的磁盘空间占用情况

  • -a :列出所有的文件系统,包括系统特有的/proc 等文件系统;
  • -k :以KBytes 的容量显示各文件系统;
  • -m :以MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以M=1000K 取代M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该partition 的filesystem 名称(例如ext3) 也列出;
  • -i :不用硬盘容量,而以inode 的数量来显示

根目录/下所用空间:
CentOS 7常用Linux指令_第3张图片

(2) du
du命令是对文件和目录磁盘使用的空间的查看.
du [-ahskm] 文件或目录名称

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

  • -h :以人们较易读的容量格式(G/M) 显示;

  • -s :列出总量而已,而不列出每个各别的目录占用容量;

  • -S :不包括子目录下的总计,与-s 有点差别。

  • -k :以KBytes 列出容量显示;

  • -m :以MBytes 列出容量显示;

进入根目录下,使用du -sh *可以逐层查看哪个文件夹占用空间大。

du -sh *

(3) fdisk
fdisk -l也可以查看磁盘信息

#查看磁盘总大小
fdisk -l |grep Disk
8 ifconfig ping

ifconfig,它会显示所有网卡的信息:

ifconfig | grep inet

测试远程主机连通性:ping
通常用ping来检测网络是否正常.

127.0.0.1本地回环地址,测试本机网卡是否正常
ping IP地址 #检测目标主机是否连接正常
ping 127.0.0.1 #检测本地网卡是否工作正常

9 磁盘挂载与卸除

Linux 的磁盘挂载使用mount 命令,卸载使用umount 命令

(1)将/dev/hdc6 挂载到/mnt/hdc6 上面

mount /dev/hdc6 /mnt/hdc6

(2)卸载/dev/hdc6

umount /dev/hdc6

四、数据处理

1 awk

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。

awk处理过程: 依次对每一行进行处理,然后输出

从字符串"you-me-he"中获取he:

echo "you-me-he" |awk -F '[-]' '{print $NF}'
输出:he

-F:指定分隔符
NF:字段数量
print $NF:即打印最后一行

// hello.sh
// hello,world,haha
awk -F '[,]' '{print $NF}' hello.sh
输出:haha

参考博客:awk命令详解

五、文件下载及打包

1 yum

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,Centos等发行版上。

Github 不只能用于分发程序, 也能管理源码并进行协同开发, 而yum 和maven 仅用于分发程序。

(1)查看软件包列表yum list | grep [软件包关键字] # 注意, 最好要加上grep, 否则罗列的内容会非常多, 导致机器很卡.

(2)安装软件包(需要管理员权限) yum install [软件包名字]
(3)卸载软件包(需要管理员权限)yum remove [软件包名字]

2 curl

curl是一个命令行工具,通过指定的URL来上传或下载数据,并将数据展示出来。

curl 'http://...hellp.zip' -O down.zip
3 wget

wget是Linux中的一个下载文件的工具
-O 文件名将文档写入文件。

wget http://...hellp.zip -O down.zip
4 打包压缩
(1) tar

1). 打包压缩文件

tar -zcvf 打包文件.tar.gz  被压缩的文件/路径...

2). 解包解压缩文件

tar -zxvf 打包文件.tar.gz

3). 解压缩到指定路径

tar -zxvf 打包文件.tar.gz  -C 目标路径
(2) zip

文件压缩解压:zip、unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件

六、基本属性

(1)文件属性

1)三种角色

  • 文件和文件目录的所有者:u
  • 文件和文件目录的所有者所在的组的用户:g
  • 其它用户:o

2)文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

3)基本权限

  • r/4(110):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。
  • w/2(010):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
  • x/1(001):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
  • -” 表示不具有该项权限

ls -l即可查看文件的权限信息:

drwxr-xr-x 2 root root 4096 May 14 21:17 mydownload

CentOS 7常用Linux指令_第4张图片
注意:

  • 执行当前文件:./01.java
(2)修改文件属性

1)修改文件9个属性
chmod [-R] xyz 文件或目录

  • R :递归修改目录文件的权限

递归 test 目录下所有文件加 777 权限:chmod -R 777 test/

+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

用户符号
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

实例:

chmod u+w /home/abc.txt
chmod 664 /home/abc.txt

2)修改文件属主,也可以同时更改文件属组

chown [–R] 属主名文件名
chown [-R] 属主名:属组名文件名

3)修改文件属组

chgrp [-R] 属组名文件名

七、账号管理和用户组管理

Linux下有两种用户:
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。

注意:
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

(1)添加用户
useradd [用户名]

useradd -m -g 用户名

  • -m 自动建立用户家目录,在home目录下新建一个用户目录
  • -g 指定用户所在的组,默认与用户名同名

注意:
增加的用户信息可以在/etc/passwd文件中查看

(2)删除用户

userdel -r 用户名

  • -r 会自动删除用户家目录
(3)修改用户

usermod 可以用来设置用户的主组/附加组和登录Shell。
主组:新建用户时用-g指定
附加组:用于指定用户的附加权限

usermod -g 组 用户名 #修改用户的主组
usermod -G 组 用户名 #修改用户的附加组
usermod -s /bin/bash 用户名 #修改用户登录的shell, dash(默认)或者bash(好用)

(4)切换用户
su [用户名] 

要从root用户切换到普通用户user,则使用su user
要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输入root用户的口令(密码).

sudo:用来以其他身份执行命令,默认是root身份
exit退出当前用户

(5)配置密码

超级用户root可以用passwd为自己和其他用户指定口令,普通用户只能用修改自己的口令。

passwd 选项 [用户名]
  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

注意
Linux在输入密码的时候, 在控制台中不会有提示.

(6)用户组管理

添加组groupadd 选项 组名

  • -g GID :指定新用户组的组标识号(GID)。
  • -o :一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

删除组groupdel 组名

修改组groupmod 选项 组名

  • -g GID: 为用户组指定新的组标识号。
  • -o :与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n:新用户组将用户组的名字改为新名字

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换
切换组$ newgrp root

注意:
用户组信息都在/etc/group文件中

(7)查看用户信息

id 用户名 #查看用户UID(/etc/passwd)和GID(/etc/group)信息
who #查看当前所有登录的用户列表
whoami #查看当前登录用户的账户名

你可能感兴趣的:(Linux,shell,linux)