1.shell是什么
Shell(壳)是一种用于与操作系统进行交互的用户界面。它是一个命令行解释器,允许用户输入命令并与计算机的操作系统进行通信。Shell 解释用户输入的命令并且执行它们,然后将结果返回给用户。
在 Linux 和 Unix 系统中,常见的 Shell 包括:
Bash(Bourne Again Shell):Bash 是最常用的 Shell,它是 Bash Shell 的一种扩展和改进版本,几乎在所有的 Linux 系统中都可用。
Sh(Bourne Shell):Bourne Shell 是早期版本的 Unix Shell,它是许多其他 Shell 的基础。
Csh(C Shell):C Shell 是一种与 C 语言语法类似的 Shell,它添加了许多新特性,如命令历史记录和命令行编辑功能。
Ksh(Korn Shell):Korn Shell 是一种强大的 Shell,结合了 Csh 和 Sh 的特性,并引入了更多的功能和命令。
不仅仅是命令行解释器,Shell 还允许用户编写脚本,以便自动化和批处理命令和任务。通过编写 Shell 脚本,用户可以组合多个命令,并使用条件语句、循环和变量等功能实现复杂的操作和自动化任务。
Shell 在操作系统管理、软件开发、系统维护和日常使用中起着重要的作用,它是与计算机交互和控制的基本工具之一。在 Linux 系统中,默认使用的 Shell 大多数情况下是 Bash。
1.对外接收用户输入命令
2.对内通过系统调用传递给内核运行
3.呈现内核运行结果
2.常用shell命令
以下是整理成表格的常用30个 Shell 命令:
命令 | 描述 |
---|---|
ls | 列出目录中的文件和子目录 |
cd | 切换当前工作目录 |
pwd | 显示当前工作目录的路径 |
mkdir | 创建新目录 |
rm | 删除文件或目录 |
cp | 复制文件或目录 |
mv | 移动或重命名文件或目录 |
touch | 创建空文件或更改文件的时间戳 |
cat | 显示文件内容 |
grep | 在文件中搜索指定的模式 |
head | 显示文件的开头部分 |
tail | 显示文件的末尾部分 |
chmod | 更改文件或目录的权限 |
chown | 更改文件或目录的所有者 |
chgrp | 更改文件或目录的所属组 |
echo | 在终端上打印文本或变量 |
man | 显示命令的帮助文档 |
wc | 统计文件中的行数、字数和字节数 |
sort | 对文件进行排序 |
find | 在文件系统中按指定条件查找文件 |
tar | 创建归档文件或解压缩归档文件 |
gzip | 压缩文件 |
gunzip | 解压缩文件 |
ssh | 通过 SSH 协议远程登录到另一台计算机 |
scp | 在本地计算机与远程计算机之间安全地传输文件 |
wget | 从网络上下载文件 |
diff | 比较两个文件的差异 |
sed | 根据指定的规则编辑文件 |
awk | 处理文本文件的工具 |
ps | 显示当前运行的进程 |
这个表格包含了常用的 Shell 命令,涵盖了文件操作、文本处理、系统管理和网络连接等方面的功能。每个命令都有一些可选参数和用法,你可以使用命令的帮助文档(使用 man
命令)来了解更多信息和使用示例。
tar
tar
命令是一个用于创建、查看和提取归档文件的常用命令。它在 Linux 和 Unix 系统中广泛使用。以下是一些常见的 tar
命令选项:
创建归档文件:
tar -cf archive.tar file1 file2 ...
:创建一个名为archive.tar
的归档文件,并将指定的文件file1
、file2
等添加到归档中。tar -czf archive.tar.gz file1 file2 ...
:创建一个经过 gzip 压缩的归档文件archive.tar.gz
,并将指定的文件添加到归档中。tar -cjf archive.tar.bz2 file1 file2 ...
:创建一个经过 bzip2 压缩的归档文件archive.tar.bz2
,并将指定的文件添加到归档中。
查看归档文件内容:
tar -tf archive.tar
:列出归档文件archive.tar
中包含的文件列表。tar -tzf archive.tar.gz
:列出经过 gzip 压缩的归档文件archive.tar.gz
中包含的文件列表。tar -tjf archive.tar.bz2
:列出经过 bzip2 压缩的归档文件archive.tar.bz2
中包含的文件列表。
提取归档文件内容:
tar -xf archive.tar
:从归档文件archive.tar
中提取所有文件。tar -xzf archive.tar.gz
:从经过 gzip 压缩的归档文件archive.tar.gz
中提取所有文件。tar -xjf archive.tar.bz2
:从经过 bzip2 压缩的归档文件archive.tar.bz2
中提取所有文件。
提取部分归档文件内容:
tar -xf archive.tar file1 file2 ...
:从归档文件archive.tar
中只提取指定的文件file1
、file2
等。tar -xzf archive.tar.gz file1 file2 ...
:从经过 gzip 压缩的归档文件archive.tar.gz
中只提取指定的文件。tar -xjf archive.tar.bz2 file1 file2 ...
:从经过 bzip2 压缩的归档文件archive.tar.bz2
中只提取指定的文件。
tar
命令还有更多选项,用于处理权限、日期等归档信息,以及其他高级功能。你可以使用 man tar
命令查看 tar
命令的完整手册页,以获取更详细的信息和使用示例。
adduser和useradd
useradd
和 adduser
都是在 Linux 系统中用于创建用户账户的命令,但它们有一些区别。
useradd
:
useradd
是一个较低级别的命令,直接在系统中创建用户账户。- 它执行最基本的用户创建操作,仅在系统中创建用户账户,不涉及其他配置,如默认配置文件、环境设置等。
- 通常需要手动进行用户的后续配置,如设置初始密码、添加用户到用户组、创建相关目录等。
adduser
:
adduser
是对useradd
的包装和提供更高级功能的前端工具。- 它在系统中创建用户账户的同时,还会进行一些附加操作,如配置用户的默认环境、创建相关目录、设置初始密码等。
adduser
提供一个简单的交互式界面,可以提示你输入更多的用户信息,如全名、电话号码等。
总结起来,useradd
是一个更原始的命令,只负责最基本的用户创建操作,而 adduser
则提供了更友好的界面和额外的配置选项,方便用户创建账户的同时进行一些相关设置。如果你只需要简单地创建用户账户,可以使用 useradd
。如果你希望更方便地进行用户创建和配置,可以使用 adduser
。
usermod
usermod
是一个在 Linux 系统中用于修改用户账户属性的命令。它可以用来修改用户的各种属性,例如用户名、用户ID、用户组、账户密码、Shell、主目录等。以下是一些常见的 usermod
命令选项:
修改用户名:
usermod -l new_username old_username
:将用户账户的用户名修改为new_username
。
修改用户ID和组ID:
usermod -u new_uid username
:将用户账户的用户ID修改为new_uid
。usermod -g new_group username
:将用户账户的主组ID修改为new_group
。usermod -G additional_groups username
:将用户账户的附加组ID修改为additional_groups
。
修改用户组:
usermod -a -G additional_groups username
:将用户账户添加到additional_groups
定义的附加组中。
修改账户密码:
usermod -p new_password username
:将用户账户的密码修改为经过加密的new_password
。
修改Shell:
usermod -s new_shell username
:将用户账户的默认Shell修改为new_shell
。
修改主目录:
usermod -d new_home_dir username
:将用户账户的主目录修改为new_home_dir
。
还有其他可选项供你修改用户账户的不同属性。你可以使用 man usermod
命令查看 usermod
命令的完整手册页,以获取更详细的信息和使用示例。
passwd
passwd
命令是在 Linux 和 Unix 系统中用于更改用户密码的命令。它允许用户更改自己的密码或者超级用户(root)更改其他用户的密码。以下是一些常见的 passwd
命令选项:
更改当前用户密码:
passwd
:在命令行中输入passwd
,然后按照提示输入当前用户的旧密码和新密码。
更改其他用户密码(需要超级用户权限):
sudo passwd username
:以超级用户身份更改指定用户username
的密码。- 使用此命令需要输入超级用户密码进行身份验证。
请注意,使用 passwd
命令更改密码时,密码通常需要符合系统密码策略的要求。密码策略可能要求密码长度、包含字母、数字和特殊字符等。根据系统的配置,你可能需要满足这些要求才能成功更改密码。
使用 man passwd
命令可以查看 passwd
命令的完整手册页,其中包含更详细的信息和其他选项的说明。
deluser和deluser
userdel
和 deluser
都是在 Linux 系统中用于删除用户账户的命令,它们在功能上是相似的,但是存在一些区别。
userdel
:
userdel
是一个较低级别的命令,用于直接从系统中删除用户账户。- 在删除用户账户时,
userdel
只会删除账户本身,并不会删除与用户相关的其他文件和目录,如用户的主目录和邮箱等。 - 默认情况下,
userdel
不会提供交互式界面和提示,直接删除用户账户。
deluser
:
deluser
是对userdel
的包装和提供更高级功能的前端工具。deluser
在删除用户账户时会附加执行一些操作,如删除用户目录、邮箱和相关配置文件等。deluser
提供一个交互式界面,提供更多选择和提示,例如删除用户的邮件、备份和其他文件。
总结来说,userdel
是一个较原始和简单的命令,只负责删除用户账户本身。而 deluser
则是一个更高级和方便的工具,提供了更多的选项和交互式界面,方便用户进行更全面的用户删除操作。根据需求可以选择使用适合的命令。