Linux
Linux
Shell
Shell介绍
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但要知道的是,shell 和 shell script 是两个不同的概念。
Shell基础
命令提示符
1 | [root@localhost bin]# |
root:当前用户
localhost:主机名
bin:当前工作目录
#:管理员用户
$:普通用户
登陆
username
[root@localhost bin]#halo
password
[root@localhost bin]#******
登出
exit
[root@localhost bin]#exit
logout
[root@localhost bin]#logout
特殊符号
/
在表示路径时,代表目录
[root@localhost bin]#cd /opt/sy
*
任意匹配
[root@localhost bin]#cd /opt/[root@localhost bin]#gerp ‘1‘ test
.
当前目录
[root@localhost bin]#cd .
..
上级目录
[root@localhost bin]#cd ..
|
管道符,在前面命令的结果上,执行后面的指令
[root@localhost bin]#ps -ef | grep java
\
转义符,放在特殊符号前,则该特殊符号的作用消失;放在指令的最末端,表示指令连接下一行
[root@localhost bin]#grep ‘$$’ test[root@localhost bin]#find -name ‘cron’\
?
在文件名扩展上扮演的角色是匹配一个任意的字元
[root@localhost bin]#find -name ‘cr?n’
[]
在通配符和正则表达式中[]代表一定有一个在中括号内的字符,例如[abcd]代表一定有一个字符,可能是a、b、c、d这四个任何一个
[root@localhost bin]#grep ‘1[23]3’ test
>
表示覆盖覆盖内容
[root@localhost bin]#echo 123 > test.txt
>>
表示追加内容
[root@localhost bin]#echo 123 >> test.txt
;
表示俩个命令同时执行
[root@localhost bin]#head -n 3 test;tail -n 5 test
&
单一个&符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作
[root@localhost bin]#nohup java -jar halo-latest.jar > halo.log &
快捷键
TAB
自动补全
↑
向上找执行过的命令记录
↓
向下找执行过的命令记录
Ctrl + A
光标移动到命令行的行首
Ctrl + E
光标移动到命令行的行尾
Ctrl + F / →
光标向右移动一个字符
Ctrl + B / ←
光标向左移动一个字符
Ctrl + INSERT
复制
Shift + INSERT
粘贴
Ctrl + C
中断执行
Ctrl + D
退出终端
帮助文档
man
man ls 列出ls命令帮助文档,Q键退出
Shell命令
CD 命令
Change Directory
改变当前工作路径(目录)
cd / 根目录
cd ~ 进入当前用户的主目录
cd . 当前目录
cd .. 上级目录
cd - 上一次目录
LS 命令
List Files
显示当前目录下的内容
参数:
-a
显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r
将文件以相反次序显示(原定依英文字母次序)
-t
将文件依建立时间之先后次序列出
-A
同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
-F
在列出的文件名称后加一符号;例如可执行档则加 “*“, 目录则加 “/“
-R
若目录下有文件,则以下之文件亦皆依序列出
举例:
ls -l 显示当前目录的详细列表信息(仅可见文件)
ls -a 显示当前目录的所有内容(包括隐藏文件)
ls -al 显示当前目录的所有详细列表信息(包括隐藏文件)
PWD 命令
Print Working Directory
显示当前用户所在目录
参数:
--help
在线帮助。
--version
显示版本信息。
举例:
pwd 显示当前用户所在目录
MKDIR 命令
Make Directory
新建一个目录
参数:
-p
确保目录名称存在,不存在的就建一个
举例:
mkdir halo 创建一个halo目录
mkdir halo1 halo2 创建多个平级目录
mkdir -p halo/jar 创建多层目录
RMDIR 命令
Remove Directory
删除一个目录
参数:
-p
是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
举例:
rmdir halo 删除一个空的halo目录
RM 命令
Remove
删除一个文件或目录,默认是对文件操作,目录操作加上-r
参数:
-i
删除前逐一询问确认。
-f
即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r
将目录及以下之档案亦逐一删除。
举例:
rm -r halo 递归删除halo目录和子目录(需要确认)
rm -f halo.sh 强制删除halo.sh文件(不需要确认)
rm -rf halo 强制删除halo目录下所有文件和目录
rm -i halo 删除前逐一询问
CP 命令
Copy
复制一个文件或目录,默认是对文件操作,目录操作加上-r
参数:
-a
此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d
复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f
覆盖已经存在的目标文件而不给出提示。
-i
与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p
除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r
若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l
不复制文件,只是生成链接文件。
举例:
cp -r halo halo2 复制halo目录为halo2目录,包括halo下的所有子目录跟文件
MV 命令
Move
移动文件或目录,同级目录下操作即是重命名,不同级目录下操作即是移动
参数:
-b
当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i
如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f
如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n
不要覆盖任何已存在的文件或目录。
-u
当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
举例:
mv halo halo2 将halo重命名为halo2
mv halo ../ 将halo移动到上级目录
TOUCH 命令
Touch
创建一个或多个文件或隐藏文件
参数:
a
改变档案的读取时间记录。
m
改变档案的修改时间记录。
c
假如目的档案不存在,不会建立新的档案。与 –no-create 的效果一样。
f
不使用,是为了与其他 unix 系统的相容性而保留。
r
使用参考档的时间记录,与 –file 的效果一样。
d
设定时间与日期,可以使用各种不同的格式。
t
设定档案的时间记录,格式与 date 指令相同。
--no-create
不会建立新档案。
--help
列出指令格式。
--version
列出版本讯息。
举例:
touch filename.sh 创建一个filename.sh文件(filename:文件名;sh:文件扩展名)
touch file_1.txt file_2.txt 创建多个文件file_1.txt和file_2.txt
touch .file.txt 创建一个隐藏文件.file.txt
ECHO 命令
Echo
输出重定向,用于字符串的输出
echo "HelloWorld" > file.txt 覆盖写入HelloWorld到文件file.txt中
echo "HelloWorld" >> file.txt 追加写入HelloWorld到文件file.txt中
echo 2>> 错误信息追加
echo &>> 正确和错误信息均写入同一个文件
CAT 命令
Concatenate
从文件的第一行显示文件内容
参数:
-n 或 –number
由 1 开始对所有输出的行数编号。
-b 或 –number-nonblank
和 -n 相似,只不过对于空白行不编号。
-s 或 –squeeze-blank
当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 –show-nonprinting
使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 –show-ends
在每行结束处显示 $。
-T 或 –show-tabs
将 TAB 字符显示为 ^I。
-A, –show-all
等价于 -vET。
-e
等价于”-vE”选项;
-t
等价于”-vT”选项;
举例:
cat file.txt 正序显示file.txt的内容
TAC 命令
CAT的倒着写
从文件的最后一行显示文件内容
tac file.txt 倒叙显示file.txt的内容
NL 命令
Number of Lines
从文件第一行显示文件内容,并显示行号
nl file.txt 正序带行号显示file.txt的内容
MORE 命令
More
一页一页翻动显示,”B”向上翻页,”Space”向下翻页
参数:
-num
一次显示的行数
-d
提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
-l
取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f
计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p
不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c
跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s
当遇到有连续两行以上的空白行,就代换为一行的空白行
-u
不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern
在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num
从第 num 行开始显示
fileNames
欲显示内容的文档,可为复数个数
举例:
more -5 file.txt 显示file.txt中前5行内容
LESS 命令
Less
一页一页翻动显示,”B”向上翻页,”Space”向下翻页
参数:
-b
<缓冲区大小> 设置缓冲区的大小
-e
当文件显示结束后,自动离开
-f
强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g
只标志最后搜索的关键词
-i
忽略搜索时的大小写
-m
显示类似more命令的百分比
-N
显示每行的行号
-o <文件名>
将less 输出的内容在指定文件中保存起来
-Q
不使用警告音
-s
显示连续空行为一行
-S
行过长时间将超出部分舍弃
-x <数字>
将”tab”键显示为规定的数字空格
/字符串
向下搜索”字符串”的功能
?字符串
向上搜索”字符串”的功能
n
重复前一个搜索(与 / 或 ? 有关)
N
反向重复前一个搜索(与 / 或 ? 有关)
b
向上翻一页
d
向后翻半页
h
显示帮助界面
Q
退出less 命令
u
向前滚动半页
y
向前滚动一行
空格键
滚动一页
回车键
滚动一行
[pagedown]
向下翻动一页
[pageup]
向上翻动一页
举例:
less -5 file.txt 显示file.txt中前5行内容
HEAD 命令
Head
从头显示文件内容
参数:
-q
隐藏文件名
-v
显示文件名
-c<数目>
显示的字节数。
-n<行数>
显示的行数。
举例:
head -n 5 file.txt 显示file.txt中头5行内容
TAIL 命令
Tail
从尾显示文件内容
参数:
-f
循环读取
-q
不显示处理信息
-v
显示详细的处理信息
-c<数目>
显示的字节数
-n<行数>
显示文件的尾部 n 行内容
--pid=PID
与-f合用,表示在进程ID,PID死掉之后结束
-q, –quiet, –silent
从不输出给出文件名的首部
-s, –sleep-interval=S
与-f合用,表示在每次反复的间隔休眠S秒
举例:
tail -n 5 file.txt 显示file.txt中尾5行内容
tail -fn 1000 file.log 滚动显示尾1000行内容
TAR 命令
Tar
参数:
-c, –create
创建一个新归档
-x, –extract, –get
从归档中解出文件
-f, –file=ARCHIVE
使用归档文件
-z, –gzip, –gunzip, –ungzip
通过 gzip 过滤归档
-C, –directory=DIR
改变至目录 DIR
-v, –verbose
详细地列出处理的文件
举例:
tar -zxvf test.tar.gz 将压缩文件解压到当前目录下
tar -zxvf test.tar.gz -C /home/ 将压缩文件解压到/home目录下
tar -zcvf test.tar.gz ./ 将当前目录下的所有文件压缩
Linux目录
目录
参考资料:https://www.runoob.com/linux/linux-system-contents.html
| 目录 | 说明 |
|---|---|
| / | 根目录 |
| /bin | bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令 |
| /sbin | s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序 |
| /home | 普通用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 |
| /root | 超级管理员主目录 |
| /boot | 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件 |
| /dev | dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的 |
| /etc | etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录 |
| /lib | lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件 |
| /usr | usr 是 unix shared resources(共享资源) 的缩写,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录 |
| /tmp | tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的 |
| /media | linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下 |
| /mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了 |
| /opt | opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。默认是空的 |
| /proc | proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统) |
| /var | var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,习惯将那些经常被修改的目录放在这个目录下 |
| /run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除 |
| /sys | 系统文件 |
特殊目录
/
根目录
~
主目录/Home目录
.
当前目录
..
当前目录的上级目录
重要目录和文件
etc目录
网卡配置文件
如果是虚拟机都是ensXX这样的网卡名称
/etc/sysconfig/network-scripts/ifcfg-ens33
通过命令重启生效
systemctl restart network
开机自动挂载的列表
/etc/fstab
主机名称
/etc/hostname
CentOS7设置主机名称
hostnamectl set-hostname XXXXX
其他
vim /etc/hostname
本地DNS域名
/etc/hosts
DNS服务器地址
/etc/resolv.conf
环境变量
设置系统环境变量参数,对系统内所有用户都生效
/etc/profile
重新载入配置文件生效
source /etc/profile
Bash配置文件
设置bash shell相关的内容,对系统内所有用户都生效,只要运行了bash命令,那么bash配置文件就会被加载
/etc/bashrc
~/.bashrc
只是针对于当前用户而言,不对其他用户生效
~/.bash_profile
如果在用户的家目录下,通过ls -al发现的.bash_profile,则只针对当前用户生效
root -> /root -> .bash_profile 针对root起作用
athena -> /home/athena -> .bash_profile 针对athena起作用
Shell应用程序
/etc/shells
系统管理命令
/etc/init.d
YUM源目录
/etc/yum.repos.d
运行级别
/etc/inittab
ROOT用户权限
/etc/sudoers
ROOT和其他用户密码
/etc/shadow
usr目录
编译安装软件默认的安装路径
/usr/local
源码文件的目录
/usr/src
系统运行日志文件
/usr/var/log
messages(文本文件)
系统级日志文件
secure(文本文件)
安全日志文件
dmesg(文本文件)
硬件信息加载情况日志文件
cron(文本文件)
定时任务日志文件
wtmp(二进制文件)
登陆者信心日志文件
lastlog(二进制文件)
用户近期登陆情况日志文件
proc目录
当前CPU信息文件
/proc/cpuinfo
当前内存信息文件
/proc/meminfo
当前系统平均负载文件
/proc/loadavg
当前设备挂载列表信息文件
/proc/mounts
当前系统中断信息文件
/proc/interrupts
路径
绝对路径
从”/“开始表示的路径
/usr/local/tomcat
相对路径
不是由”/“开始的,当前目录作为参照物或某一目录作为参照物
../tomcat
Linux文件
文件属性和权限
ls -al
示例:drwxr-xr-x
索引:0-1-2-3-4-5-6-7-8-9
注意:’-‘表示没有该权限
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 文件类型 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
| 文件权限 | 属主 | 属主 | 属主 | 属组 | 属组 | 属组 | 其他 | 其他 | 其他 |
| 字母表示 | R | W | X | R | W | X | R | W | X |
| 8进制表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
第1个字符-文件类型
- 【b】开头(存储设备)
- 【c】开头(硬件设备)
- 【d】开头(目录)
- 【l】开头(链接文件)
- 【-】开头(文件)
第2~10个字符-文件权限
【2~4】字符(属主权限)
该文件的拥有者
【5~7】字符(属组权限)
用户同组的所有用户拥有该文件的权限
【8~10】字符(其他用户权限)
非以上的用户
文件属性和权限修改
更改文件属主
-R 递归修改文件夹里面所有目录权限
chown -R 属主名 文件名
更改文件属主/属组
-R 递归修改文件夹里面所有目录权限
chown -R 属主名:属组名 文件名
更改文件属组
-R 递归修改文件夹里面所有目录权限
chgrp -R 属组名 文件名
更改文件权限
xxx 分别表示属主权限,属组权限,其他用户权限的八进制加法。一般给chmod 755 hello.sh
| 权限 | 可读 | 可写 | 可执行 | 8进制表示 | 说明 |
|---|---|---|---|---|---|
| RWX | 4 | 2 | 1 | 7 | 读+写+执行 |
| RW- | 4 | 2 | 0 | 6 | 读+写 |
| R-X | 4 | 0 | 1 | 5 | 读+执行 |
| -WX | 0 | 2 | 1 | 3 | 写+执行 |
| R– | 4 | 0 | 0 | 4 | 只读 |
| -W- | 0 | 2 | 0 | 2 | 只写 |
chmod xxx 文件名
通过符号修改:
chmod u=rwx,g=rwx,o=rwx 文件名
chmod +x 文件名 -- 给所有属性增加可执行权限
chmod a-x 文件名 -- 给所有属性删除可执行权限
Linux用户和用户组
用户分类
UID:用户ID;GID:用户组ID
超级用户
UID=0,拥有最高权限,root
普通用户
UID≥1000,能够登陆系统,只能操作自己的目录内容(CentOS7)
虚拟用户
1≤UID≤999,无法直接创建,系统自身拥有,不具有登陆系统能力(CentOS7)
用户命令
ID命令
id -- 查询当前用户id
id 用户名 -- 查询指定用户id
SU命令
su 用户名 -- 切换用户
su - 用户名 -- 切换用户(工作环境同时切换)
SUDO命令
sudo yum install -y docker-ce -- 普通用户提权
WHOAMI命令
whoami -- 显示当前用户
PASSWD命令
/etc/sudoers 需先保证该文件配置了该用户的执行权限
sudo passwd 用户名 -- 修改指定用户密码
USERADD命令
useradd -x 用户名
参数:
-c
指定一段注释性描述
useradd -c comment
-d
指定用户主目录,如果目录不存在使用-m创建目录
useradd -d /home/用户主目录 -m 用户名
-g
指定用户所属用户组
useradd -g 用户组 用户名
-G
指定用户的附加组
useradd -G 附加组 用户名
-s
指定Shell环境,默认是/bin/bash
useradd -s /bin/地址 -g 用户组 用户名
查看Shell环境
cat /etc/passwd
root0:0:root:/root:/bin/bash
用户名:密码:uid:gid:说明信息:目录:Shell环境
-u
指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
useradd -u 用户号
USERDEL命令
-r 表示同时删除目录
userdel -r 用户名
VI/VIM编辑器
安装
yum install -y vim
创建
vim file.txt 存在file.txt文件则打开file.txt文件,不存在则先创建file.txt文件并打开
编辑
命令模式(Command mode)
用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式(i/I,a/A,o/O都可以进入输入模式,只是进入输入模式后的输入的位置不一样)。命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
快捷键:
- ZZ,大写模式下快速按”ZZ”(大写模式快速按两下Z)即可保存文本
- yy,复制当前光标所在行
- n+yy,复制当前光标所在n行(n代表光标当前行开始要复制的行数)
- p,在光标所在行的下一行进行粘贴
- dd,删除当前光标所在行
- n+dd,删除当前光标所在行(n代表光标当前行开始要删除的行数)
- gg,快速跳转到文件的头部所在行的首字符
- G,快速跳转到文件的尾部所在行的首字符
- n+G,快速跳转到文件的第n行所在行的首字符
- $ ,快速跳转到光标所在行的行尾字符
- n+$ ,快速跳转到光标所在行开始的第n行所在行的尾字符
- u,撤销操作
输入模式(Insert mode)
在命令模式下按下i就进入了输入模式。在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式(Last line mode)
在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
- q! 强制退出,不保存
- set nu 显示行号
- s/old/new 将old替换为new(只替换光标所在行,从左到右第一次出现的位置)
- s/old/new/g 在光标所在行将所有的old替换为new
- %s/old/new/g 在整个文件中将所有的old替换为new
- /keyword 关键词搜索
按ESC键可随时退出底线命令模式。
CentOS7优化
ip a 查看当前IP地址
安装常用工具
yum install -y vim
yum install -y wget
yum install -y net-tools
替换YUM源
备份yum源文件名称:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下载阿里yum源或163都可以
163的yum源
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
阿里yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清除缓存
yum clean all
yum makecache
优化网络管理
临时关闭
systemctl stop NetworkManager
永久关闭
systemctl disable NetworkManager
设置服务器静态IP地址
GATEWAY(网关)/ IPADDR(IP地址)/ NETMASK(子网掩码)/ DNS(DNS域名解析)
进入网络配置目录
cd /etc/sysconfig/network-scripts
编辑ifcfg-ens33
vim ifcfg-ens33
由原来的
TYPE=”Ethernet”
PROXY_METHOD=”none”
BROWSER_ONLY=”no”
BOOTPROTO=”dhcp”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
IPV6_ADDR_GEN_MODE=”stable-privacy”
NAME=”ens33”
UUID=”ce7d8e7e-077d-433a-b63c-8d95fb84bdf9”
DEVICE=”ens33”
ONBOOT=”yes”修改为(根据自身情况修改地址,必须是10段的内网地址,记得删除UUID)
TYPE=”Ethernet”
PROXY_METHOD=”none”
BROWSER_ONLY=”no”
BOOTPROTO=”static”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
IPV6_ADDR_GEN_MODE=”stable-privacy”
NAME=”ens33”
DEVICE=”ens33”
ONBOOT=”yes”
GATEWAY=10.0.0.2
IPADDR=10.0.0.133
NETMASK=255.255.255.0
DNS1=10.0.0.2
DNS2=1.2.4.8重启network
systemctl restart network
进程管理
查看进程
PS 命令
Process Status
显示当前进程的状态
参数:
-a
显示所有进程
-u
用户以及其他详细信息
-x
显示没有控制终端的进程
举例:
ps -ef | grep java 查看java进程
ps -aux 查看所有进程详细信息TOP 命令
实时显示进程动态
举例:
top 显示进程信息,q退出
终止进程
KILL 命令
终止进程
参数:
-9
强制终止
举例:
kill -9 1234 强制终止PID为1234的进程
网络管理
网络配置
IFCONFIG 命令
查看和配置网络设备
举例:
ifconfig 查看网络设备信息
PING 命令
测试网络连通性
举例:
ping www.baidu.com 测试与百度服务器的连通性
端口查看
NETSTAT 命令
显示网络状态
参数:
-t
TCP协议
-u
UDP协议
-l
监听
-n
显示IP地址和端口号
-p
显示PID和进程名称
举例:
netstat -tulpn 查看所有监听端口
netstat -tulpn | grep 8080 查看8080端口占用情况
磁盘管理
磁盘空间
DF 命令
Disk Free
显示磁盘空间使用情况
参数:
-h
以可读性较高的方式显示(GB, MB)
举例:
df -h 查看磁盘空间
DU 命令
Disk Usage
显示文件或目录占用磁盘空间情况
参数:
-h
以可读性较高的方式显示
-s
仅显示总计
举例:
du -sh * 查看当前目录下所有文件的大小
系统服务管理
Systemctl
CentOS 7 之后使用 systemctl 管理服务
启动服务
systemctl start 服务名
停止服务
systemctl stop 服务名
重启服务
systemctl restart 服务名
查看服务状态
systemctl status 服务名
开机自启
systemctl enable 服务名
关闭开机自启
systemctl disable 服务名
文件搜索
Find 命令
查找文件
find / -name file.txt 从根目录下查找名为file.txt的文件
find . -name "*.log" 当前目录下查找所有.log结尾的文件
Grep 命令
文本搜索
grep "error" file.log 在file.log中搜索包含error的行
grep -r "hello" . 在当前目录递归搜索包含hello的内容
防火墙管理
Firewalld
CentOS 7 默认使用 firewalld 作为防火墙
查看防火墙状态
systemctl status firewalld
开启防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
重启防火墙
systemctl restart firewalld
查看开放端口
firewall-cmd –list-ports
开放端口
–permanent 表示永久生效,没有此参数重启后失效
firewall-cmd –zone=public –add-port=80/tcp –permanent
重新加载配置
修改规则后需要重新加载才能生效
firewall-cmd –reload
关闭端口
firewall-cmd –zone=public –remove-port=80/tcp –permanent
SSH 服务
SSH 连接
ssh root@192.168.1.100 远程连接指定IP
免密登录
生成密钥对
ssh-keygen -t rsa
一直回车即可,生成的密钥在
~/.ssh/目录下(id_rsa 私钥,id_rsa.pub 公钥)发送公钥到目标服务器
ssh-copy-id root@192.168.1.101
输入一次密码后,后续登录即可免密
定时任务
Crontab
用于设置周期性被执行的指令
查看定时任务
crontab -l
编辑定时任务
crontab -e
格式说明
1
2* * * * * command
分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令举例
每分钟执行一次
1
* * * * * /bin/sh /root/hello.sh
每天凌晨3点执行
1
0 3 * * * /bin/sh /root/backup.sh
软件包管理
RPM
Red Hat Package Manager
安装
rpm -ivh package.rpm
卸载
rpm -e package_name
查询
rpm -qa | grep java 查询是否安装了java
YUM
Yellow dog Updater, Modified
搜索软件包
yum search java
安装软件包
yum install -y java-1.8.0-openjdk
更新软件包
yum update java
卸载软件包
yum remove java