Linux常用命令

目录

  • [1 常用命令](#1 常用命令)
    • [1.1 用户](#1.1 用户)
    • [1.2 权限](#1.2 权限)
    • [1.3 查看系统信息](#1.3 查看系统信息)
    • [1.4 VIM](#1.4 VIM)
    • [1.5 下载](#1.5 下载)
    • [1.6 软件包管理](#1.6 软件包管理)
    • [1.7 环境变量](#1.7 环境变量)
    • [1.8 文件操作](#1.8 文件操作)
  • [2 实例](#2 实例)
    • [2.1 安装JDK](#2.1 安装JDK)
    • [2.2 设置环境变量](#2.2 设置环境变量)

1 常用命令

1.1 用户

命令 示例 参数 输出 作用
sudo sudo passwd root sudo命令是Linux系统中的一个命令,用于以超级用户(root)的权限执行特定命令。与su命令不同,sudo命令允许普通用户以自己的密码执行特权操作,而无需知道超级用户的密码。使用sudo命令时,用户需要在命令前加上sudo关键字,并输入自己的密码来确认身份,这就像是在超级用户和普通用户之间建立了一个安全的通道。
su su root su命令是Linux系统中用于切换到其他用户身份的命令。通常,它需要超级用户(root)的密码才能切换到其他用户。使用su命令时,用户可以切换到其他用户的账户,并获得该账户的权限,如同该账户本身的操作一样。例如,可以使用以下命令切换到超级用户(root):su 在输入密码后,用户将切换到 root 用户,并获得 root 用户的权限。
exit 返回原来的账户
id Linux id命令用于显示当前用户的身份信息,包括用户ID(UID)、组ID(GID)以及所属的附加组。它还可以显示用户所属的组的名称。
usermod 修改用户id:usermod -u 1001 peter 添加用户到指定组:usermod -aG redis peter 修改用户信息
cat /etc/passwd 查看用户组,用户
groups groups peter 当前用户所属组
groupadd groupadd newGroup 创建新用户组
users 当前登录用户
userdel userdel peter 删除用户
password password peter 修改密码
whoami 当前操作用户

su和sudo

  1. su 命令
    su命令是Linux系统中用于切换到其他用户身份的命令。通常,它需要超级用户(root)的密码才能切换到其他用户。使用su命令时,用户可以切换到其他用户的账户,并获得该账户的权限,如同该账户本身的操作一样。例如,可以使用以下命令切换到超级用户(root):
    su 在输入密码后,用户将切换到 root 用户,并获得 root 用户的权限。
  2. sudo 命令
    sudo命令是Linux系统中的一个命令,用于以超级用户(root)的权限执行特定命令。与su命令不同,sudo命令允许普通用户以自己的密码执行特权操作,而无需知道超级用户的密码。使用sudo命令时,用户需要在命令前加上sudo关键字,并输入自己的密码来确认身份,这就像是在超级用户和普通用户之间建立了一个安全的通道。
    例如,以下命令将以超级用户的权限执行 apt-get update 命令:
    sudo apt-get update
    在输入密码后,用户将获得执行特权操作的权限。
  3. 区别对比
    3.1 用户身份
    su命令需要超级用户(root)密码,它可以将用户切换到其他用户的身份并获得其权限。相比之下,sudo命令允许普通用户以自己的密码执行特权操作,如同穿上别人的外套一样,虽然能获得一些权限,但并不是真正的超级用户。
    3.2 权限范围
    su 命令切换到其他用户后,用户将获得该用户的全部权限,如同变身为该用户。而 sudo 命令则像是一把更加精细的刀,可以通过配置文件(sudoers 文件)控制特权操作的范围,可以精确指定用户可以执行哪些命令以及以哪些用户的身份执行。相比之下,su 命令的权限转换较为简单和直接,而 sudo 命令则更加灵活和可控。
    3.3 安全性
    使用 su 命令需要共享 root 密码,这可能会带来安全风险。例如,如果其他人知道 root 密码,他们就可以通过切换到 root 用户来完全控制系统。而 sudo 命令通过使用自己的密码来执行特权操作,可以避免共享 root 密码,从而提高系统的安全性。
    3.4 记录日志
    sudo命令会记录每个特权操作的日志,包括执行的命令和执行者的身份。这就像是在系统安全方面设置了一道守护门,帮助系统管理员进行安全审计和追踪,如同在黑暗中点燃了一盏明灯。相反,su命令没有内置的日志功能,无法追踪用户切换和执行的命令,就像是在广阔的草原上丢失了一只飞鸟的踪迹。
    3.5 使用方式
    su命令可以直接在命令行中输入,然后输入目标用户的密码,即可切换到该用户。相比之下,sudo命令需要在命令前加上sudo关键字,然后输入自己的密码进行身份验证,才能以超级用户的身份执行该命令。
  4. 适用场景
    使用su命令可以切换用户,适用于需要长时间以其他用户身份操作的情况,比如需要在其他用户的环境下执行一系列命令或长时间工作。而sudo命令则适用于临时需要执行特权操作的情况,比如安装软件、更新系统或执行重要的系统维护任务。
    总之,"su"和"sudo"命令都可以用于切换用户身份和执行特权操作,但在使用方式、安全性和适用场景等方面存在一些区别。根据您的需求选择合适的命令,并遵循最佳实践以确保系统安全。

1.2 权限

命令 示例 参数 输出 作用
chmod chmod o+rwx -R /etc/redis 对当前用户和同组用户之外的其他用户赋予目录/etc/redis递归读写执行权限
chown chown username:group file.txt 修改文件和目录的所有者和所属组
ls -l 查询文件权限
ll 查询文件权限,同ls -l

1.3 查看系统信息

命令 示例 参数 输出 作用
df -a 硬盘挂载
uname -a 操作系统信息
lsb_release lsb_release -a LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息
which
vmstat
top

1.4 VIM

模式名 使用场景 操作
命令模式 打开文件默认进入命令模式。此模式可以输入命令,例如复制,粘体,删除等。 全选高亮显示:按esc键后,先按gg,然后ggvG或者ggVG
复制 单行复制:按esc键后, 然后yy 全部复制:按esc键后,先按gg,然后ggyG
黏贴 粘贴:p
删除 单行删除:按esc键后, 然后dd 全部删除:按esc键后,先按gg(到达顶部),然后dG
撤销 撤销:u 恢复上一步被撤销的操作:Ctrl+r
剪切 d 剪切选定块到缓冲区 dd 剪切整行 d^ 剪切至行首 d$ 剪切至行尾 dw 剪切一个word dG 剪切至档尾
光标移动 n 空格(n是数字): 按下数字 n 然后按空格,则光标向右移动 n个字符,如果该行字符数小余 n,则光标继续从下行开始向右移动,一直到 n 数字0 或 Home : 移动到本行行首 $ 或 End : 移动到本行行尾 H :光标移动到当前屏幕的最顶行 M :光标移动到当前屏幕的中央那一行 L :光标移动到当前屏幕的最底行 G :光标移动到文本的最末行 nC:(n是数字) 光标移动到文本的第n行 gg :光标移动到文本的首行 n回车(n是数字) :光标向下移动n行
查找 普通模式中按斜杆/+要查询的内容后回车 按n向下查,按N向上查询 退出高亮进入命令模式:nohl
全局替换 在vim中进行全局替换可以使用:s命令,具体操作如下: 打开要进行替换的文件,进入vim编辑模式。 输入命令模式,按下冒号(:)键。 输入s/要替换的内容/替换后的内容/g,其中s表示替换命令,g表示全局替换。 按下回车键,vim会自动执行替换操作。 例子: : s/apple/orange/g apple:表示替换的内容,orange表示替换后的内容 /g表示全局替换
插入模式 在命令模式下输入"i"进入此模式。此模式用于编辑文本内容。点击"esc"返回命令模式。
末行模式 在命令模式下输入":"进入此模式。此模式用于保存,退出等。点击"esc"返回命令模式。 保存写入write:w 退出quit:q(如果文件没保存,不允许退出) 不保存退出quit:q! (强行退出) 保存并退出write & quit:wq 保存并退出:x
可视化模式 在命令模式下输入"v"进入此模式。 可视化模式(Visual Mode)下可以选择一块编辑区域,然后对选中的文件内容执行插入、删除、替换、改变大小写等操作 是Vim使用过程中使用非常频繁的一种模式,在表格中删除指定列非常有用。 - 字符选择模式: 选中光标经过的所有字符,普通模式下按小写 v 进入 - 行选择模式:选中光标经过的所有行,普通模式下按 大写V 进入 - 块选择模式:选中一整个矩形框表示的所有文本,普通模式下按 + v 进入

1.5 下载

命令 示例 参数 输出 作用
wget wget https://xxx
curl curl -O https://xxx

1.6 软件包管理

命令 示例 参数 输出 作用
apt apt update
apt upgarde
apt-get apt-get install postgresql

1.7 环境变量

命令 示例 参数 输出 作用
export export a=b
curl curl -O https://xxx

1.8 文件操作

命令 示例 参数 输出 作用
cat
cp
rm
mv
tar

2 实例

2.1 安装JDK

首先从Oracle官网下载JDK11: https://www.oracle.com/java/technologies/downloads/#java11

su root

创建目录:

mkdir /usr/lib/jvm

解压到此目录下:

tar xvf jdk-11.0.21_linux-x64_bin.tar.gz -C /usr/lib/jvm

exit

修改环境变量

vim ~/.bashrc

末尾添加:

bash 复制代码
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk-11.0.21
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

测试安装:

java -version

2.2 设置环境变量

bash 复制代码
vim /etc/profile

添加:

export PATH:=$PATH:/usr/lib/jvm/jdk-11.0.21/bin

bash 复制代码
source /etc/profile
bash 复制代码
vim ~/.bashrc

添加:

export PATH:=$PATH:/usr/lib/jvm/jdk-11.0.21/bin

bash 复制代码
source ~/.bashrc
相关推荐
猿饵块14 分钟前
cmake--get_filename_component
java·前端·c++
编程小白煎堆16 分钟前
C语言:枚举类型
java·开发语言
王哈哈嘻嘻噜噜22 分钟前
c语言中“函数指针”
java·c语言·数据结构
qq_3391911431 分钟前
spring boot admin集成,springboot2.x集成监控
java·前端·spring boot
苹果酱05671 小时前
通过springcloud gateway优雅的进行springcloud oauth2认证和权限控制
java·开发语言·spring boot·后端·中间件
Sunny_yiyi1 小时前
Gateway--服务网关
java·开发语言·gateway
“JB...One”1 小时前
openssl-AES-128-CTR加解密结构体
linux·数据结构·算法·ssl
Mike!1 小时前
C++进阶 set和map讲解
java·开发语言·数据结构·c++·set·map·cpp
翔云1234561 小时前
Go语言的垃圾回收(GC)机制的迭代和优化历史
java·jvm·golang·gc
小O_好好学1 小时前
Linux帮助命令
linux·运维·服务器