Linux常用命令(详细举例说明)

系统服务管理

systemctl

systemctl命令是servicechkconfig命令的组合体,可用于管理系统。

  • 输出系统中各个服务的状态:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值