系统服务管理
systemctl
systemctl
命令是service
和chkconfig
命令的组合体,可用于管理系统。
-
输出系统中各个服务的状态:
systemctl list-units --type=service
-
查看服务的运行状态:
systemctl status firewalld
对比操作系统的启动和关闭操作:
-
关闭服务:
systemctl stop firewalld
-
启动服务:
systemctl start firewalld
- 重新启动服务(不管当前服务是启动还是关闭):
systemctl restart firewalld
- 重新载入配置信息而不中断服务:
systemctl reload firewalld
- 禁止服务开机自启动:
systemctl disable firewalld
- 设置服务开机自启动:
systemctl enable firewalld
文件管理
date
显示或修改系统时间与日期;
date '+%Y-%m-%d %H:%M:%S'
timedatectl (全称 :timedate control )
clear
用于清除屏幕信息
man
显示指定命令的帮助信息:
man ls
who
在Linux中,who
命令会显示当前登录到系统的用户。输出中有三个用户的原因是第一个用户 root
是登录到本地的 GUI 环境,第二个用户 tom
是从远程主机通过 SSH 登录的,而第三个用户 root
是使用本地终端登录的。
值得注意的是,虽然前两个用户的用户名相同,但是 pts/0
和 :0
表示来自不同终端。pts
前缀表示来自伪终端(pseudo-terminal)的登录,而 :
前缀通常表示本地 GUI 登录。
who am i
命令用于显示当前登录到系统的终端信息,可以看出当前登录用户是 tom
,登录终端为 pts/0
,登录时间为 2023-06-09 10:11,登录来源 IP 地址为 192.168.181.1。这个命令通常用于查看当前终端的登录信息以及帮助排查一些登录相关的问题。
- 查询系统处于什么运行级别:
who -r
- 显示目前登录到系统的用户:
who -buT
free
显示系统内存状态(单位MB):
free -m
对应相似的还有:tree命令
使用tree命令前,如果没有安装tree,要先使用命令 yum -y install tree 。当然使用tree,并不是单一使用这一个,而是配合后续命令一起使用,常见的是:(查看当前目录下内容)tree -L 1 (加上 -C 后可以看到颜色的区分,数字1表示查看第一层的目录,当然不能不输入数字,也不能输入数字0,否则会报错 tree: Invalid level, must be greater than 0.(无效的级别,必须大于0)
[root@shiyanji ~]# tree -L 0
tree: Invalid level, must be greater than 0.
解决:tree的参数-L可以显示目录的层数参数后面需要加上大于0的数字。
),还有列出权限属性的命令是:
tree -L 1 -C -p
ps
- 显示系统进程运行动态:
ps -ef
ps是linux下最常用的也是非常强大的进程查看命令,常配合管道命令 | 和查找命令 grep (全称是:Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。)同时执行来查看特定进程。
PS 参数含义: -e 显示所有进程。-f 全格式。-h 不显示标题。-l 长格式。-w 宽输出。a 显示终端上的所有进程,包括其他用户的进程。r 只显示正在运行的进程。x 显示没有控制终端的进程。
字段含义如下:
UID PID PPID C STIME TTY TIME CMD
root 13610 13591 0 14:32 pts/0 00:00:32 java -jar jx-system-0.0.1-SNAPSHOT.jar -Dfile.encoding=utf-8
root 14321 10641 0 15:28 pts/0 00:00:00 grep --color=auto java
UID :程序被该 UID 所拥有
PID :就是这个程序的 ID
PPID :则是其上级父程序的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY :登入者的终端机位置
TIME :使用掉的CPU时间。
CMD :所下达的是什么指令
- 查看
sshd
进程的运行动态:
ps -ef | grep sshd
top
查看即时活跃的进程,类似Windows的任务管理器。
mkdir
创建目录:
more
用于分页查看文件,例如每页10行查看boot.log
文件:
more -c -10 /var/log/boot.log
cat
用于查看文件,例如查看Linux启动日志文件文件,并标明行号:
cat -Ab /var/log/boot.log
关于查看文件的命令(cat ,more):
more
和 cat
都是 Linux 命令,可以用来查看文件内容。不过,它们的功能略有不同。cat
命令可以将文件的内容打印出来,但不支持交互式滚动查看。而 more
命令也可以将文件的内容一屏一屏地显示出来,并支持交互式滚动查看,可以边看边滚动。
因此,如果你只需要快速查看文件内容,用 cat
即可,如果文件内容过长需要滚动查看,建议使用 more
命令。另外,如果需要查看文件头部或尾部的几行内容,也可以先使用 head
或 tail
命令,再根据需要使用 cat
或 more
命令。
touch
用于创建文件,例如创建text.txt
文件:
touch text.txt
rm
- 删除文件:
rm text.txt
- 强制删除某个目录及其子目录:
rm -rf testdir/
cp
用于拷贝文件,例如将test1
目录复制到test2
目录
cp -r /mydata/tes1 /mydata/test2
使用 cp
命令将 mydocker
目录下的两个文件复制到 remdocker
目录。如下:
cp mydocker/* remdocker/
这条命令将 mydocker
目录下的所有文件都复制到 remdocker
目录中。如果 remdocker
目录不存在,则会自动创建它。
如果只想复制特定的文件,而不是该目录下的所有文件,可以指定文件名进行复制。例如,如果您只想将 jx-system-0.0.1-SNAPSHOT.jar
复制到 remdocker
目录中,可以执行以下命令:
cp mydocker/jx-system-0.0.1-SNAPSHOT.jar remdocker/
这将仅复制 mydocker
目录下的 jx-system-0.0.1-SNAPSHOT.jar
文件到 remdocker
目录中。
除此之外,还有一个场景。 就是如果在使用Docker容器的时候,如果您想在 Dockerfile 中使用 cp
命令将文件复制到容器中,可以按照以下格式进行编写:
COPY 源文件 目标路径
其中,源文件
是您要复制的文件或文件夹的路径,目标路径
是文件或文件夹在容器中的目标路径。例如,如果您想将当前目录下的 test 文件夹中的文件复制到容器的 /test
目录中,可以这样编写 Dockerfile:
COPY test/ /test/
这将把 test
文件夹中的所有内容复制到容器的 /test
目录中。如果您想复制单个文件,比如将当前目录下的 测试报告模板1.xlsx
文件复制到容器的 /test
目录中,可以这样编写Dockerfile:
COPY 测试报告模板1.xlsx /test/
在构建和运行 Docker 容器时,这些文件将被复制到容器中的指定目录中。
或者,如果您不希望在 Dockerfile 中写入 COPY
命令,仍然有其他办法将文件复制到生成的容器中。一种方法是在运行容器时使用 docker cp
命令。以下是示例命令:
docker cp <本地文件路径> <容器名称或ID>:<容器目标路径>
例如,如果您想将本地的 测试报告模板1.xlsx
文件复制到名为 mycontainer
的容器的 /test
目录中,可以运行以下命令:
docker cp 测试报告模板1.xlsx mycontainer:/test/
这将复制文件到运行中的容器中的指定路径。请注意,您需要将 <本地文件路径>
替换为要复制的文件的实际路径,并将 <容器名称或ID>
替换为容器的名称或ID。如果要将文件复制到正在运行的容器中,请确保容器正在运行。
mv
用于移动或覆盖文件:
mv text.txt text2.txt
压缩与解压
tar
●将/etc文件夹中的文件归档到文件etc.tar(并不会进行压缩):
tar -cvf /mydata/etc.tar /etc
●用gzip压缩文件夹/etc中的文件到文件etc.tar.gz:
tar -zcvf /mydata/etc.tar.gz /etc
●用bzip2压缩文件夹/etc到文件/etc.tar.bz2:
tar -jcvf /mydata/etc.tar.bz2 /etc
●分页查看压缩包中内容(gzip):
tar -ztvf /mydata/etc.tar.gz |more -c -10
●解压文件到当前目录(gzip):
tar -zxvf /mydata/etc.tar.gz
●解压文件到指定目录(gzip):
tar -zxvf /mydata/etc.tar.gz -C /mydata/etc
磁盘和网络管理
df
查看磁盘空间占用情况:
df -hT
dh
查看当前目录下的文件及文件夹所占大小:
du -h --max-depth=1 ./*
netstat
查看当前路由信息:
netstat -rn
查看所有有效TCP连接:
netstat -an
查看系统中启动的监听服务:
netstat -tulnp
查看处于连接状态的系统资源信息:
netstat -atunp
wget
从网络上下载文件:
用户管理
用户信息查看
●查看用户信息:
cat /etc/passwd
●用户信息格式如下(密码已过滤):
# 用户名:密码:用户标识号:组标识号:组注释性描述:主目录:默认shell
root:x:0:0:root:/root:/bin/bash
macro:x:1000:982:macro:/home/macro:/bin/bash
●查看用户组信息:
cat /etc/group
●用户组信息格式如下:
# 组名:密码:组标识号:组内用户列表
root:x:0:
docker:x:982:macro,andy
passwd 设置用户密码:
passwd root
su 改变用户身份(切换到超级用户):
# 切换到root用户
su -
# 切换到macro用户
su macro
groupadd 添加用户组,使用-g可以设置用户组的标志号:
groupadd -g 1024 xiaobai
groupdel 删除用户组:
groupdel macrozheng
useradd 添加用户,-u设置标志号,-g设置主用户组:
useradd -u 1024 -g macrozheng macro
usermod 修改用户所属用户组:
usermod -g docker macro
userdel 删除用户,使用-r可以删除用户主目录:
userdel macro -r