1. 说 10 个常用的 Linux 命令
- cd:切换目录 ,~ 转到/home/user 用户目录下 ,/ 转到根目录中
- ls/ll:查看文件,文件夹信息
- cat:合并文件,也可以在屏幕上显示整个文件的内容。
- rm:删除文件
- mkdir:创建文件夹
- cp:拷贝文件
- rmdir:删除文件夹
- mv:移动或者修改文件名
- touch:创建新文件
- stat:修改文件状态
- ping:测试ip联通状态
- vi\vim:编辑文件
- chomd:修改权限
2. Linux 系统中创建用户,用户组的命令
useradd:创建新的用户或更改用户的信息,其创建的账号保存在/etc/passwd文本文件中。
useradd [选项] 用户名
useradd命令支持的选项有:
- -d :指定用户的家目录(默认为/home/用户名)
- -u :指定用户的默认uid
- -g :指定一个初始的用户组(必须已经存在)
- -G :指定一个或多个群组
- -s :指定用户的默认Shell解释器
id:查看用户的uid,gid和groups
id [选项] [用户]
passwd:设置用户密码
passwd [选项] [用户名]
groupadd:创建用户组
groupadd [选项] 组名
3. Linux 修改文件所属的命令,修改文件权限的命令
chown:修改文件或目录的属主和属组
chown [-R] 属主名 ⽂件或⽬录
- -R:递归修改,将指定⽬录下的所有⽂件或⽬录的属主和属组都修改为指定的值。
- 属主名:指定⽂件或⽬录的属主。可以使⽤⽤户名或 UID 来指定。
- ⽂件或⽬录:指定要修改的⽂件或⽬录。
chmod:修改⽂件或⽬录的权限
chmod [选项] 文件
- -R:递归修改,将指定⽬录下的所有⽂件或⽬录的权限都修改为指定的值。
- 权限:指定⽂件或⽬录的权限。可以使⽤数字或字符来指定。
从左向右:
u:文件所有者
g:组所有者
o:其他⽤户
r:读(4)
w:写(2)
x:执行(1)
数字表示法
# 将⽂件的权限修改为 rw-------
chmod 600 test.txt
# 将⽬录的权限修改为 rwxr-xr-x
chmod 755 /etc
# 将⽬录下的所有⽂件或⽬录的权限都修改为 rw-r--r--
chmod -R 644 /etc
字符表示法
chmod u +x test.txt
4.用户目录在哪,环境变量有几种配置方式
- Linux系统的管理员目录存放在/root下⾯
- Linux系统的每个用户都有⼀个属于自己的区域,存放在 /home下面
- profile(/etc/profile):系统级环境变量:适⽤于所有⽤户和进程。
- (/etc/profile.d):⾃定义环境变量脚本: 在 /etc/profile.d ⽬录下新增 .sh 格式的⾃定义环境变量⽂件
- bashrc 或 bash_profile:⽤户级环境变量:
- bashrc 文件只会对指定的 shell 类型起作用
- 系统级的位于 /etc/bashrc ,对所有用户生效
- 用户级的 ~/.bashrc ,对当前用户生效。
- 文件存储于 ~/.bash_profile ,该文件是一个用户级的设置,可以理解为某一个用户的 profile 目录下。
- 这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。
- shell: 会话环境变量:适⽤于当前 shell 会话,进程结束时销毁,不赞成使⽤这种⽅法。
5. Linux 安装软件的方式有几种,分别什么区别
- 使用安装包安装
- RedHat/CentOS: rpm
- 待安装的 rpm 包所需的系统环境需提前安装好,否则安装 rpm 包时会报错。
- 绿色版软件,解压即安装,解压就可以使用
- 使用 yum 命令安装
yum install wget
- 能够从指定的服务器自动下载RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包
- 使用源码编译安装
6. 如何选择 Linux 操作系统版本
- 用途:确定如何使用Linux系统。不同的Linux发行版可能专注于不同的用途,比如服务器端最常见的是CentOS;桌面端则有Ubuntu。
- 支持与稳定性:如果您需要一个稳定且长期支持的版本,可以选择一些企业级的发行版,比如Red Hat Enterprise Linux (RHEL)、CentOS、Ubuntu LTS版本等。这些版本通常会提供长期支持(LTS)以及良好的稳定性。
- 社区支持:一些流行的Linux发行版拥有庞大的社区,提供丰富的文档、教程和技术支持。
- 软件包管理和兼容性:对于特定的应用程序或软件库需求,选择一个拥有所需软件包的发行版更为重要。
- 硬件支持:如果您的系统需要特定的硬件支持,比如某些特殊的驱动程序或者新型的硬件,那么选择一个具有广泛硬件支持的发行版会更为合适。
- 安全性:考虑发行版的安全性和漏洞修复能力。一些发行版会更加关注安全性,并提供及时的更新和修复。
7.Linux 服务器之间免密是如何实现的
- 在⼀台服务器上⽣成 SSH 密钥对
- 打开终端,并使⽤ ssh-keygen 命令⽣成密钥对
- 默认情况下会在 ~/.ssh ⽬录下⽣成 ⼀对密钥对
- ⽣成的密钥由两个⽂件组成:id_rsa(私钥)和 id_rsa.pub(公钥)
- 将公钥传输到其它服务器
- 想密钥登录谁,只需要把⾃⼰的公钥传递给对⽅主机即可,使⽤ ssh-copy-id 命令将公钥⽂件复制到另外服务器, 这个公钥⽂件必须放在对⽅主机的 ~/.ssh/authorized_keys ⽂件中
- 验证免密登录是否成功
- 查看对⽅主机的 ~/.ssh/authorized_keys ⽂件
- 在机器A上测试登录:ssh root@机器B,看是否实现了免密登录
- SSH 连接远程主机时,会检查主机的公钥。如果是第⼀次该主机,会显示该主机的公钥摘要,提示
⽤户是否信任该主机 - 当选择接受,就会将该主机的公钥追加到⽂件 ~/.ssh/known_hosts 中。以后登录虚拟机就会自动连接上了
- 要两个Linux服务器互相免密,两台服务器都要进行此操作。
- 加密算法:散列算法,对称算法,非对称算法。
- 散列算法:代表有 MDS 、 SHA ,但是加密后的内容不可逆,经常用于文件完整性校验,虚拟货币校验,账户密码加密。
- 对称算法:通过密钥进行加密、解密,但是不够安全。如果密钥被别人窃取后,交流的内容就会被别人知道。
- 非对称算法:存在一对密钥,分为公私钥。加密过程为,公钥加密,私钥解密;私钥加密,公钥解密,这两个部分组成。因为私钥是只有自己知道的,所以一般公钥加密,私钥解密,公钥会发给对方服务器。
8. Shell 脚本第一行是什么,运行 Shell 脚本的方式有哪些,有什么区别
Shell脚本的第一行通常是用来指定要运行脚本的解释器。
#!后面跟的是解释器的路径(shell本身就是一种解释型语言),解释器的路径是/bin/sh;
#!/bin/bash
- 直接执行:在命令行中输入脚本的路径,并按Enter键执行。例如:
./myscript.sh
(假设脚本文件名为myscript.sh
,并且具有执行权限)。 - 作为解释器参数执行:在命令行中输入解释器的路径,后面跟着脚本的路径。例如:
bash myscript.sh
,这将使用Bash解释器执行脚本。 - 使用source命令:在当前shell环境中执行脚本,而不是启动一个新的shell进程。例如:
source myscript.sh
或者.
(点号)+脚本路径。
- bash 或 sh 执⾏脚本时会新开⼀个 bash,不同 bash 中的变量⽆法共享使用作为解释器参数执行或使用
- source或 .sh:在同⼀个bash中执⾏,变量可以共享
9. Shell 脚本必须以 .sh 后缀结尾吗
不必须,可以不加.sh。但扩展名 sh 代表 shell,能让⼈看到后缀就知道是shell脚本,是⼀种命名规范,所以建议加上。
在Linux中,脚本的后缀并不影响其是否可以执行。事实上,Shell脚本的可执行性是由文件的权限属性决定的,而不是由文件名的后缀决定的。
10. Linux 查看进程的命令以及杀死进程的命令
Linux 中查看进程的命令是 ps,杀死进程的命令是 kill。
ps 命令⽤于查看系统中所有正在运⾏的进程。
ps [选项]
- -a:显示所有进程,包括没有控制终端的进程。
- -u:显示指定⽤户的进程。
- -f:以全格式显示进程信息。
- -e:显示所有进程,包括被暂停的进程。
- -l:显示⻓格式进程信息,包括线程信息。
kill 命令⽤于向指定的进程发送信号。
kill [选项] 进程号
- -9:发送 SIGKILL 信号,强制杀死进程。
- -s:指定发送的信号。
- -15 (默认)
- 执⾏完该指令后,操作系统会发送⼀个 SIGTERM 信号给对应的程序。当程序接收到该信号后,可能会发⽣以下⼏种情况的⼀种:
- 当前程序⽴刻停⽌;
- 程序释放相应资源,然后再停⽌;
- 程序可能仍然继续运⾏。