2021-06-24
运维
0

目录

用户相关命令
提示符含义
基础命令
群组
chmod
文件相关命令
查找命令和实用快捷键
查看目录,查看文件
查找文本所在文件
输出重定向符号
文件归档,压缩
增量覆盖
创建文件、软硬链接
进程、安全相关命令
前后台进程
SELinux
防火墙
系统信息
包信息

当今计算机技术日新月异,Linux系统越来越受到人们的欢迎。与此同时,Linux命令行也成为了掌握Linux系统的必备技能之一。无论是系统管理员、开发人员还是普通用户,学习Linux命令行都能够帮助他们更好地管理和使用Linux系统。

本篇主要介绍用户、文件、进程、包信息的相关命令。

用户相关命令

提示符含义

[oscar@oscar-laptop ~]$ - 目前是以oscar这个用户登录;电脑名称为oscar-laptop - 目前位于~目录下,就是用户家目录 - 属于普通用户。$是普通用户,#是超级用户(比如root用户) [root@VM_0_11_centos home]# - 目前是以root这个用户登录;电脑名称为VM_0_11_centos - 目前位于home目录下 - 属于超级用户

基础命令

bash
cat /etc/passwd # 查看所用用户 whoami # 查看当前登录用户名 hostname # 查看当前主机名 useradd ccz # 添加用户名为ccz的用户 su # 切换到root用户 su ccz # 切换到用户名为ccz的用户 passwd ccz # ccz用户添加或者修改密码 userdel ccz # 删除用户名为ccz的用户 userdel -r ccz # 删除用户并且将home下面的ccz目录也一并删除

群组

bash
# groupadd 创建群组 groupadd friends # 创建一个名为friends的群组 # groupdel 删除群组 groupdel friends # 删除friends群组 # groups 查看用户对应群组 groups ccz # 查看用户ccz对应群组 # usermod 修改用户账户 # 参数: # -l:对用户重命名。/home中的用户家目录名不改变,需要手动修改 # -g:修改用户所在群组 # -G:批量添加群组 usermod -g friends ccz # 修改ccz用户群组为friends usermod -G friends1,friends2 ccz # 修改ccz用户为friends1,friends2 # chown 改变文件所有者和群组(只有root用户可以运行) chown ccz file1 # 将file1文件夹的所有者更改为ccz用户 chown ccz:friends file1 # 将file1文件夹的所有者更改为ccz用户,群组更改为friends群组 chown -R ccz:friends file1 # 递归更改,更改文件夹下所有文件 # chgrp 改变文件群组(root用户,文件所有者可以运行) chgrp friends file1 # 将file1文件夹的群组更改为friends群组

chmod

首先介绍下r、w、x

  • r:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名。 注意:仅仅指的是名字。

  • w:拥有此权限表示具有更改该目录结构列表的权限。比如,在目录下新建文件夹,删除文件夹,更改目录下文件名等。

  • x:拥有目录的x权限表示用户可以进入该目录成为工作目录,能不能进入一个目录,只与该目录的x权限有关,如果用户对于某个目录不具有x权限,则无法切换到该目录下,也就无法执行该目录下的任何命令,即使具有该目录的r权限。

备注:

  • 拥有r权限,可以在目录下使用ls ll
  • 拥有x权限,可以cd进入目录

drwxr-xr-x.

  1. d:第一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道
  2. rwx:第2-4位表示这个文件的属主拥有的权限,r是读,w是写,x是执行。
  3. r-x:第5-7位表示和这个文件属主所在同一个组的用户所具有的权限。
  4. r-x:第8-10位表示其他用户所具有的权限。

chmod 控制文件权限(root用户,文件所有者可以运行)

bash
chmod a+r file1.txt # 将文件 file1.txt 设为所有人皆可读取 chmod ug+w,o-w file1.txt file2.txt # 将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

数字加法:

image.png

文件相关命令

查找命令和实用快捷键

bash
# 查找相关前缀文件 ls www + # 按两次tab键,列出以www开头的文件 # 反查历史命令 ctrl+R # 查找使用过的命令 # history ! !1857 # 运行history列表下的第1857条命令 # 清屏 ctrl+L # 清屏 # 退出 ctrl+D # 退出功能,如果用户已退出后,再次使用,会关闭终端

查看目录,查看文件

bash
# ll 是 ls -l的 简写 ll -t # 根据修改时间排序列出 ll -h # 方便阅读(文件大小的返回,并没有递归查询目录,而是返回当前目录大小) # du 显示目录包含的文件大小(不会显示具体文件大小) du -h # 方便阅读(递归文件返回大小) du -a # 显示目录和具体文件大小 du -s # 只返回当前目录的总大小 # cat 显示当前文本的所有内容 cat -n index.html # 显示行数 less # 显示文本的一部分内容,可以翻页 head # 显示文本的前几行,默认为10行 head -n 5 index.html # 显示文本的前5行 # tail 显示文本的后几行,默认为10行 tail -n 5 # index.html tail -f tail -f -s 10 index.html # 10秒钟执行一次查询

查找文本所在文件

bash
# grep # 参数: # -i:忽略大小写 # -n:显示所在行号 # -r:递归查找 # -E:使用正则表达式去检索 # 备注:指定文件夹,需要使用-r参数 grep "h1" ./index.html # 在html文件下查找h1相关的内容 grep -r bskt-test /etc/nginx/ # 在nginx文件夹下查找bskt-test相关内容 grep -r -n -E [a-z]{10} bskt-test /etc/nginx/ # 在ngix文件下查找包含英文字母十位的文件

输出重定向符号

  • stdin: 标准输入 对应文件描述符:0
  • stdout: 标准输出 对应文件描述符:1
  • strerr: 标准错误输出 对应文件描述符:2

重定向符号:

bash
# >:文件不存在,则新建。文件存在,则将文件内容覆盖(标准输出) cat file.sh > a.txt # >>:文件不存在,则新建。文件存在,则将内容追加到文件后面(标准输出) cat file.sh >> a.txt # 2>:文件不存在,则新建。文件存在,则将文件内容覆盖(标准错误输出) cat file.sh 2> a.txt # 2>>:文件不存在,则新建。文件存在,则将内容追加到文件后面(标准错误输出) cat file.sh 2>> a.txt # 2>&1:将标准错误输出重定向到与标准输出相同的地方 cat file.sh > a.txt 2>&1

文件归档,压缩

bash
# tar 归档 tar -cvf proxy.tar proxy/ # 将proxy文件夹归档成proxy.tar文件 tar -cvf proxy.tar a b proxy # 将a,b文件,proxy文件夹归档成proxy.tar文件 tar -zcvf proxy.tar.gz proxy # 将proxy文件夹归档后直接压缩成proxy.tar.gz文件 tar -tf proxy.tar # 查看proxy.tar里面的内容 tar -rvf proxy.tar c # 将c文件追加到proxy.tar tar -xvf proxy.tar # 解开归档 tar -zxvf proxy.tar.gz # 将压缩文件夹proxy.tar.gz先解压,然后解开归档 # gzip 压缩 gzip proxy.tar 将proxy.tar # 压缩,压缩后原文件将消失 # gunzip 解压 gunzip proxy.tar.gz # 解压proxy.tar.gz文件 # zip unzip 压缩,解压 zip -r proxy.zip proxy/ # 将proxy文件夹压缩成proxy.zip,压缩后原文件不会消失 unzip -l proxy.zip # 查看proxy.zip内的文件 unzip proxy.zip # 解压proxy.zip

增量覆盖

bash
# rsync 增量添加文件 rsync -arv Images/ backups/ # 将Images目录下的所有文件备份到backups目录下 rsync -arv --delete Images/ oscar@89.231.45.67:backups/ # 将Images目录下的所有文件备份到89.231.45.67主机的backups目录下 # 备注:同步时,默认不会删除目标目录文件。需要同步删除操作的话,需要使用--delete

创建文件、软硬链接

bash
mkdir -p one/two/three # 递归创建文件 mkdir {a1,a2,a3} mkdir a{1..3} # 两个命令相等,创建a1,a2,a3文件 # 硬链接 # 一旦文件1和文件2之间有了硬链接,那么你修改文件1或文件2,修改的是相同一块内容 # 只能创建指向文件的硬链接,不能创建指向目录的 # 原理:两个文件的inode一致(可以使用ll -i 查看inode) ln file1 file2 # 软链接 # 文件1和文件2之间有了软链接,就类似于快捷方式,文件2仅仅只是指向文件1。如果删除文件1,文件2将找不到文件。 ln -s file1 file2

进程、安全相关命令

前后台进程

bash
&符号 # 在后台运行进程 nohup # 使进程与终端分离(关闭终端进程时,不受hup信号影响) ctrl+Z # 转到后台,并且暂停运行 bg # 使进程转到后台

SELinux

SElinux的双重保险

  • 对服务程序的功能进行限制
  • 对文件资源的访问限制

配置模式

  • enforcing:强制启用安全策略模式,将拦截服务的不合法请求
  • permissive:遇到服务越权访问时,只发出警告而不强制拦截
  • disabled:对于越权的行为不警告也不拦截

基础命令

bash
sestatus # 查看状态 vim /etc/selinux/config # 修改配置,需重启后才能生效,慎重更改。更改完可能无法重启。建议提前备份 setenforce 0 # 临时生效,无需重启。对应permissive模式 setenforce 1 # 临时生效,无需重启。对应enforcing模式 getenforce # 查看配置

防火墙

bash
# 开放指定端口 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload # 重启后生效 # 删除指定端口 firewall-cmd --zone=public --remove-port=80/tcp --permanent firewall-cmd --reload # 重启后生效 # 查看开放的端口 firewall-cmd --list-ports

系统信息

bash
w # 查看当前登录用户信息 whoami # 查看当前角色权限 # ps查看进程信息 # 参数: # -ef:列出所有用户在所有终端的所有进程 # -aux:通过cpu和内存使用来过滤进程 ps -aux --sort -pmem # 根据内存消耗进行排序 ps -aux --sort -pcpu # 根据cpu消耗进行排序 netstat -antpu # 查询端口占用情况 netstat -antpu | grep nginx # 查询nginx占用端口 netstat -nap # 查询pid占用情况 netstat -nap | grep 19077 # 查询19077占用端口 top # 查看进程信息(动态更新) kill # 关闭进程 killall # 关闭全部进程(killall nginx) uname # 查看当前主机系统 uname -a # 查看主机系统详细信息 cat /proc/cpuinfo # 查看cpu详细信息 halt # 命令关闭系统 reboot # 命令重启系统 poweroff # 命令可以实现立即关机 whois # 查看域名注册信息(若没有,使用yum安装)

包信息

bash
which nginx # 查看命令所在的地址 rpm -qf /usr/sbin/nginx # 查看该命令的所在包 yum info nginx # 查看包的详细信息

短参数:ls -a

  • 一个短横线(-)后接一个字母
  • 多个短参数可以合并在一起,比如-qast
  • 上面的参数a是英语all的缩写
  • 短参数赋值形式 -a 10

长参数:ls --all

  • 两个短横线(--)后接多个字母
  • 多个长参数不能合并使用,需要分开使用
  • 短参数赋值形式 --all=100

本文作者:BARM

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!