【Linux入门】常用基本命令(一)——帮助、文件目录操作、时间日期与用户组管理

文章目录

  • [一、Shell 简介](#一、Shell 简介)
  • 二、帮助命令
    • [2.1 man 获得帮助信息](#2.1 man 获得帮助信息)
    • [2.2 help 获得 shell 内置命令的帮助信息](#2.2 help 获得 shell 内置命令的帮助信息)
    • [2.3 常用快捷键](#2.3 常用快捷键)
  • 三、文件目录类命令
    • [3.1 pwd 显示当前工作目录](#3.1 pwd 显示当前工作目录)
    • [3.2 ls 列出目录的内容](#3.2 ls 列出目录的内容)
    • [3.3 cd 切换目录](#3.3 cd 切换目录)
    • [3.4 mkdir 创建目录](#3.4 mkdir 创建目录)
    • [3.5 rmdir 删除空目录](#3.5 rmdir 删除空目录)
    • [3.6 touch 创建空文件](#3.6 touch 创建空文件)
    • [3.7 cp 复制文件或目录](#3.7 cp 复制文件或目录)
    • [3.8 rm 删除文件或目录](#3.8 rm 删除文件或目录)
    • [3.9 mv 移动文件与目录或重命名](#3.9 mv 移动文件与目录或重命名)
    • [3.10 cat 查看文件内容](#3.10 cat 查看文件内容)
    • [3.11 more 分屏查看文件内容](#3.11 more 分屏查看文件内容)
    • [3.12 less 分屏显示文件内容](#3.12 less 分屏显示文件内容)
    • [3.13 echo 输出内容到控制台](#3.13 echo 输出内容到控制台)
    • [3.14 head 显示文件头部内容](#3.14 head 显示文件头部内容)
    • [3.15 tail 输出文件尾部内容](#3.15 tail 输出文件尾部内容)
    • [3.16 输出重定向 `>` 与追加 `>>`](#3.16 输出重定向 > 与追加 >>)
    • [3.17 ln 软链接](#3.17 ln 软链接)
    • [3.18 history 查看历史命令](#3.18 history 查看历史命令)
    • [3.19 通配符](#3.19 通配符)
  • 四、时间日期类命令
    • [4.1 date 显示当前时间](#4.1 date 显示当前时间)
    • [4.2 date 显示非当前时间](#4.2 date 显示非当前时间)
    • [4.3 date 设置系统时间](#4.3 date 设置系统时间)
    • [4.4 cal 查看日历](#4.4 cal 查看日历)
  • 五、用户管理命令
    • [5.1 useradd 添加新用户](#5.1 useradd 添加新用户)
    • [5.2 passwd 设置用户密码](#5.2 passwd 设置用户密码)
    • [5.3 id 查看用户是否存在](#5.3 id 查看用户是否存在)
    • [5.4 cat /etc/passwd 查看创建了哪些用户](#5.4 cat /etc/passwd 查看创建了哪些用户)
    • [5.5 su 切换用户](#5.5 su 切换用户)
    • [5.6 userdel 删除用户](#5.6 userdel 删除用户)
    • [5.7 who 查看登录用户信息](#5.7 who 查看登录用户信息)
    • [5.8 sudo 设置普通用户具有 root 权限](#5.8 sudo 设置普通用户具有 root 权限)
    • [5.9 usermod 修改用户](#5.9 usermod 修改用户)
  • 六、用户组管理命令
    • [6.1 groupadd 新增组](#6.1 groupadd 新增组)
    • [6.2 groupdel 删除组](#6.2 groupdel 删除组)
    • [6.3 groupmod 修改组](#6.3 groupmod 修改组)
    • [6.4 cat /etc/group 查看创建了哪些组](#6.4 cat /etc/group 查看创建了哪些组)
  • 七、总结

一、Shell 简介

Shell 可以看作一个命令解释器,为我们提供交互式的文本控制台界面。我们可以通过终端输入命令,由 Shell 进行解释,最终交给内核执行。

二、帮助命令

2.1 man 获得帮助信息

shell 复制代码
man [命令或配置文件]    # 获得帮助信息

man 手册页的主要字段:

信息 功能
NAME 命令的名称和单行描述
SYNOPSIS 怎样使用命令
DESCRIPTION 命令功能的深入讨论
EXAMPLES 怎样使用命令的例子
SEE ALSO 相关主题(通常是手册页)
shell 复制代码
man ls    # 查看 ls 命令的帮助信息

2.2 help 获得 shell 内置命令的帮助信息

一部分基础功能的系统命令直接内嵌在 Shell 中,系统加载启动后会随着 Shell 一起加载,常驻系统内存,这类命令被称为"内置命令(built-in)";其它命令被称为"外部命令"。

shell 复制代码
help 命令    # 获得 shell 内置命令的帮助信息
shell 复制代码
help cd    # 查看 cd 命令的帮助信息

2.3 常用快捷键

常用快捷键 功能
Ctrl + C 停止当前进程
Ctrl + L 清屏,等同于 clear;彻底清屏可用 reset
Tab 键 命令/路径自动补全提示(更重要的是防止敲错)
上下方向键 查找执行过的历史命令

三、文件目录类命令

3.1 pwd 显示当前工作目录

pwd:print working directory,打印工作目录。

shell 复制代码
pwd    # 显示当前工作目录的绝对路径

3.2 ls 列出目录的内容

ls:list,列出目录内容。

shell 复制代码
ls [选项] [目录或文件]
选项 功能
-a 显示全部文件,连同隐藏文件(以 . 开头的文件)一起列出(常用)
-l 以长数据串列出,包含文件的属性与权限等数据(常用,等价于 ll
-h 配合 -l 以易读的 K/M/G 单位显示文件大小
-t 按修改时间排序
-S 按文件大小排序

ls -l 每行列出的信息依次是:文件类型与权限、链接数、文件属主、文件属组、文件大小(字节)、建立或最近修改的时间、文件名

shell 复制代码
ls -al    # 查看当前目录的所有内容信息
ls -lh    # 以易读单位查看文件大小

补充:llls -l 的别名(在 CentOS 中默认配置于 ~/.bashrc)。

3.3 cd 切换目录

cd:Change Directory,切换路径。

shell 复制代码
cd [参数]
参数 功能
cd 绝对路径 切换路径
cd 相对路径 切换路径
cd ~cd 回到自己的家目录
cd - 回到上一次所在目录
cd .. 回到当前目录的上一级目录
cd -P 跳转到实际物理路径,而非快捷方式(软链接)路径
shell 复制代码
cd /root/        # 使用绝对路径切换到 root 目录
cd 公共/          # 使用相对路径切换目录
cd ~             # 回到自己的家目录
cd -             # 回到上一次所在目录
cd ..            # 回到上一级目录

3.4 mkdir 创建目录

mkdir:Make directory,建立目录。

shell 复制代码
mkdir [选项] 要创建的目录
选项 功能
-p 创建多层目录
shell 复制代码
mkdir data              # 创建一个目录
mkdir data/xxx
mkdir -p data1/data2/data3    # 创建多级目录

3.5 rmdir 删除空目录

rmdir:Remove directory,移除目录(只能删除空目录)。

shell 复制代码
rmdir 要删除的空目录
shell 复制代码
rmdir data1/data2/data3/

3.6 touch 创建空文件

shell 复制代码
touch 文件名称
shell 复制代码
touch data1/data2/word.txt    # 在 data1/data2/ 目录下创建名为 word.txt 的文件

补充:如果 touch 的文件已存在,它会更新文件的修改时间。

3.7 cp 复制文件或目录

shell 复制代码
cp [选项] source dest    # 复制 source 文件到 dest
选项 功能
-r 递归复制整个文件夹
-i 目标已存在时提示确认
-v 显示复制过程
参数 功能
source 源文件
dest 目标文件

经验技巧:强制覆盖不提示的方法:\cp(在 cp 前加反斜杠,不使用别名)。

shell 复制代码
cp data1/data2/word.txt test1/test2/    # 复制文件
cp -r data1/data2/ ./                  # 递归复制整个文件夹

3.8 rm 删除文件或目录

shell 复制代码
rm [选项] deleteFile    # 删除文件或目录
选项 功能
-r 递归删除目录中所有内容
-f 强制执行删除操作,而不是提示用户进行确认
-v 显示指令的详细执行过程
shell 复制代码
rm data1/data2/word.txt    # 删除文件
rm -rf data1/               # 递归强制删除目录中所有内容(谨慎使用)

安全提示:rm -rf 威力很大,务必确认路径无误后再执行,建议先 ls 确认。

3.9 mv 移动文件与目录或重命名

shell 复制代码
mv oldNameFile newNameFile    # 重命名
mv /temp/movefile /targetFolder    # 移动文件
shell 复制代码
mv data1/data2/word.txt data1/data2/test.txt    # 重命名
mv data1/data2/test.txt ./                     # 移动文件

3.10 cat 查看文件内容

从第一行开始显示文件内容,适合查看比较小的文件。

shell 复制代码
cat [选项] 要查看的文件
选项 功能
-n 显示所有行的行号,包括空行
shell 复制代码
cat -n test.txt    # 查看文件内容并显示行号

3.11 more 分屏查看文件内容

more 指令是一个基于 VI 编辑器的文本过滤器,以全屏幕方式按页显示文本文件内容。

shell 复制代码
more 要查看的文件
操作 功能说明
空格键(Space) 向下翻一页
Enter 向下翻一行
q 立即离开 more
Ctrl + F 向下滚动一屏
Ctrl + B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
shell 复制代码
more macros    # 采用 more 查看文件

3.12 less 分屏显示文件内容

less 与 more 功能类似,但比 more 更强大,支持各种显示终端。less 并不是一次将整个文件加载后再显示,而是根据显示需要加载内容,对显示大型文件具有较高效率。

shell 复制代码
less 要查看的文件
操作 功能说明
空格键 / PageDown 向下翻动一页
PageUp 向上翻动一页
/字串 向下搜寻字串;n 向下查找,N 向上查找
?字串 向上搜寻字串;n 向上查找,N 向下查找
q 离开 less 程序
shell 复制代码
less macros    # 采用 less 查看文件

3.13 echo 输出内容到控制台

shell 复制代码
echo [选项] [输出内容]
选项 功能
-e 支持反斜线控制的字符转换
控制字符 功能
\\ 输出 \ 本身
\n 换行符
\t 制表符(tab)
shell 复制代码
echo "hello\tlinux"        # 原样输出 hello\tlinux
echo -e "hello\tlinux"     # 输出 hello     linux(\t 被解释为制表符)

3.14 head 显示文件头部内容

默认显示文件的前 10 行内容。

shell 复制代码
head 文件          # 查看文件头 10 行内容
head -n 5 文件     # 查看文件头 5 行内容(5 可以是任意行数)
选项 功能
-n <行数> 指定显示头部内容的行数
shell 复制代码
head -n 2 macros    # 查看文件的头 2 行

3.15 tail 输出文件尾部内容

默认显示文件的后 10 行内容。

shell 复制代码
tail 文件        # 查看文件尾部 10 行内容
tail -n 5 文件   # 查看文件尾部 5 行内容(5 可以是任意行数)
tail -f 文件     # 实时追踪该文件的所有更新(重点)
选项 功能
-n <行数> 输出文件尾部 n 行内容
-f 显示文件最新追加的内容,监视文件变化
shell 复制代码
tail -n 1 macros       # 查看文件尾 1 行内容
tail -f test.txt       # 实时追踪该文件的所有更新(如监控日志常用)

3.16 输出重定向 > 与追加 >>

shell 复制代码
ls -l > 文件        # 列表内容写入文件(覆盖写)
ls -al >> 文件      # 列表内容追加到文件末尾
cat 文件1 > 文件2    # 将文件1 的内容覆盖到文件2
echo "内容" >> 文件  # 将内容追加到文件末尾
shell 复制代码
ls -l > test.txt      # 将 ls 查看信息写入文件
ls -l >> test.txt     # 将 ls 查看信息追加到文件
echo hello >> test.txt    # 采用 echo 将 hello 追加到文件

3.17 ln 软链接

软链接也称为符号链接,类似于 Windows 里的快捷方式,有自己的数据块,主要存放了指向其他文件的路径。

shell 复制代码
ln -s [原文件或目录] [软链接名]    # 给原文件创建一个软链接

经验技巧:

  • 删除软链接用 rm -rf 软链接名注意不要写最后的 /);
  • 如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录内容一并删掉;
  • 通过 ll 即可查看:列表属性第 1 位是 l,尾部会有指向位置。
shell 复制代码
mv test.txt data1/data2/
ln -s data1/data2/test.txt ./test1/test2    # 创建软链接
ll

# 删除软链接(注意不要写最后的 /)
rm -rf test1/test2

# 进入软链接的实际物理路径
ln -s data/01/ ./01/
cd -P 01/

3.18 history 查看历史命令

shell 复制代码
history    # 查看已经执行过的历史命令

补充:!数字 可以重新执行历史记录中第 N 条命令,例如 !100

3.19 通配符

在文件目录命令中经常使用通配符:

通配符 含义
* 匹配任意多个字符
? 匹配任意一个字符
[abc] 匹配中括号内的任意一个字符
shell 复制代码
ls *.txt      # 列出所有 .txt 结尾的文件
ls test?      # 列出 test 加任意一个字符的文件

四、时间日期类命令

4.1 date 显示当前时间

shell 复制代码
date                        # 显示当前时间
date +%Y                    # 显示当前年份
date +%m                    # 显示当前月份
date +%d                    # 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S"   # 显示年月日时分秒
shell 复制代码
date                # 显示当前时间信息
date +%Y%m%d        # 显示当前年月日,如 20240902
date "+%Y-%m-%d %H:%M:%S"    # 显示年月日时分秒

4.2 date 显示非当前时间

shell 复制代码
date -d '1 days ago'     # 显示前一天时间
date -d '-1 days ago'    # 显示明天时间
shell 复制代码
date -d '1 days ago'     # 显示前一天
date -d '-1 days ago'    # 显示明天

4.3 date 设置系统时间

shell 复制代码
date -s 字符串时间
shell 复制代码
date -s "2024-07-08 15:19:18"    # 设置系统时间

4.4 cal 查看日历

shell 复制代码
cal [选项]    # 不加选项,显示本月日历
选项 功能
具体某一年 显示这一年的日历
shell 复制代码
cal        # 查看当前月的日历
cal 2024   # 查看 2024 年的日历

五、用户管理命令

5.1 useradd 添加新用户

shell 复制代码
useradd 用户名             # 添加新用户
useradd -g 组名 用户名      # 添加新用户到某个组
shell 复制代码
useradd xiaoxiaoguai    # 添加一个用户
ll /home/             # 查看(/home 下会出现 xiaobaiwen 主目录)

5.2 passwd 设置用户密码

shell 复制代码
passwd 用户名    # 设置用户密码
shell 复制代码
passwd xiaoxiaoguai    # 设置用户 xiaobaiwen 的密码

5.3 id 查看用户是否存在

shell 复制代码
id 用户名
shell 复制代码
id xiaoxiaoguai    # 查看用户是否存在(会显示 uid、gid 等信息)

5.4 cat /etc/passwd 查看创建了哪些用户

所有用户信息都记录在 /etc/passwd 文件中(每行一个用户,字段之间用冒号分隔):

shell 复制代码
cat /etc/passwd

补充:用户密码加密后存放在 /etc/shadow 中,普通用户不可读;用户组信息存放在 /etc/group 中。

5.5 su 切换用户

su:switch user,切换用户。

shell 复制代码
su 用户名称      # 切换用户,只能获得用户的执行权限,不能获得其环境变量
su - 用户名称    # 切换到用户,并获得该用户的环境变量及执行权限
shell 复制代码
su xiaoxiaoguai     # 切换用户
echo $PATH        # 打印 path 环境变量
exit              # 退出当前用户

su - xiaoxiaoguai   # 切换用户并加载其环境变量
echo $PATH
exit

经验:日常切换建议使用 su - 用户名,可以完整加载目标用户的登录环境。

5.6 userdel 删除用户

shell 复制代码
userdel 用户名     # 删除用户但保留用户主目录
userdel -r 用户名  # 同时删除用户主目录和邮件池等相关文件
选项 功能
-r 删除用户的同时,删除与用户相关的所有文件
shell 复制代码
userdel xiaoxiaoguai    # 删除用户但保留用户主目录
ll /home/

useradd name1        # 再添加一个用户
ll /home/
userdel -r name1     # 删除用户及其主目录
ll /home/

5.7 who 查看登录用户信息

shell 复制代码
whoami       # 显示当前自身用户名称
who am i     # 显示登录用户的用户名以及登录时间
shell 复制代码
whoami        # 显示自身用户名称
who am i      # 显示登录用户的用户名

5.8 sudo 设置普通用户具有 root 权限

(1)添加 xiaobaiwen 用户并设置密码:

shell 复制代码
useradd xiaoxiaoguai
passwd xiaoxiaoguai

(2)修改 /etc/sudoers 配置文件(建议使用 visudo 命令编辑,保存前会自动检查语法):

shell 复制代码
visudo

root ALL=(ALL) ALL 下面添加一行:

shell 复制代码
## Allow root to run any commands anywhere
root            ALL=(ALL)       ALL
xiaoxiaoguai    ALL=(ALL)       ALL

如果希望使用 sudo 时不需要输入密码,可以这样配置:

shell 复制代码
## Allow root to run any commands anywhere
root            ALL=(ALL)       ALL
xiaoxiaoguai    ALL=(ALL)       NOPASSWD:ALL

(3)案例实操(用普通用户以 root 权限创建目录,并修改目录属主):

shell 复制代码
sudo mkdir module
chown xiaoxiaoguai:xiaoxiaoguai module/

5.9 usermod 修改用户

shell 复制代码
usermod -g 用户组 用户名
选项 功能
-g 修改用户的初始登录组(给定的组必须存在)
shell 复制代码
usermod -g root name1    # 将用户 name1 的初始组改为 root

说明:每个用户都有一个"初始组"(primary group)。默认情况下创建用户时会同时创建一个与用户名同名的组,该用户默认属于这个组;usermod -g 就是用来修改这个初始组的。

六、用户组管理命令

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同,如 Linux 下的用户默认属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改,本质上就是对 /etc/group 文件的更新。

6.1 groupadd 新增组

shell 复制代码
groupadd 组名
shell 复制代码
groupadd 01    # 添加一个 01 组

6.2 groupdel 删除组

shell 复制代码
groupdel 组名
shell 复制代码
groupdel 01    # 删除 01 组

6.3 groupmod 修改组

shell 复制代码
groupmod -n 新组名 老组名
选项 功能
-n<新组名> 指定工作组的新组名
shell 复制代码
groupadd 01
groupmod -n 02 01    # 将 01 组改名为 02

6.4 cat /etc/group 查看创建了哪些组

shell 复制代码
cat /etc/group

七、总结

  • 帮助命令:man(外部命令)、help(内置命令)。
  • 文件目录:pwdlscdmkdirrmdirtouchcprmmv
  • 内容查看:catmorelessheadtail
  • 输出处理:echo> 覆盖、>> 追加;ln -s 创建软链接。
  • 时间日期:date(查看/设置)、cal(日历)。
  • 用户管理:useraddpasswdidsuuserdelwhosudousermod
  • 用户组管理:groupaddgroupdelgroupmod,配置文件为 /etc/group。
相关推荐
AutumnWind04201 小时前
【Shell 知识速查表】
linux
风哥2号1 小时前
数据库教程FGMT04‑生产环境Linux+Oracle19c RAC集群安装配置与项目实战
linux·数据库
qetfw1 小时前
Debian Postfix + Dovecot 基础配置:DNS、Maildir、IMAP 与邮件队列验证
linux·服务器·网络·debian
weixin_446260851 小时前
PromptMatic:通过多阶段提示优化提升大模型的指令遵循能力
运维·服务器
吴声子夜歌1 小时前
Shell脚本——数组
linux·运维·shell
Web极客码1 小时前
GPT-6 Astra 上手体验:如何让编码代理真正提速
服务器·gpt·ai·大模型·astra
yuewell_ai1 小时前
具身机器人一多服务器就崩-告别轮询上事件驱动
运维·服务器·机器人
whysoft2 小时前
创意新用法-把老磁带转录成mp3-第2部分
linux·计算机外设
道尔柯南2 小时前
【Linux】进程信号----1
linux·运维·服务器