Linux
筑基期
1. 什么是 Linux 操作系统?它与其他操作系统的区别是什么?
Linux 是一种开源的、类 Unix
的操作系统,具有多用户、多任务、稳定性强的特点。
它最初由 Linus Torvalds
开发,当前已成为服务器、开发环境和嵌入式系统中的主流操作系统之一。
与其他操作系统的区别:
-
开源:
Linux
是免费且开源的,用户可以自由修改和发布自己的版本,而Windows
和macOS
是闭源的。 -
命令行驱动:与
Windows
和macOS
以图形界面为主不同,Linux
强调命令行操作,适合高效的服务器管理和自动化任务。 -
系统灵活性:
Linux
支持多种发行版(如Ubuntu
、CentOS
、Debian
),用户可以根据需求进行高度自定义。
2. 如何查看当前 Linux 系统的版本信息?
-
查看内核版本:
uname -r
-
查看发行版信息(适用于大多数发行版):
lsb_release -a
这将显示 Linux 发行版的详细信息(如
Ubuntu
版本)。或者,查看
/etc/os-release
文件内容:cat /etc/os-release
3. 如何管理文件和目录?常用的文件操作命令有哪些?
在 Linux 中,文件和目录的管理主要通过命令行进行。以下是一些常用的文件和目录操作命令:
-
查看目录内容:
ls
-
切换目录:
cd /path/to/directory
-
复制文件:
cp source destination
-
移动/重命名文件:
mv source destination
-
删除文件:
rm filename
-
创建目录:
mkdir new_directory
4. 如何查看当前目录的路径?
要查看当前工作目录的完整路径,可以使用以下命令:
pwd
这将显示当前所在的目录路径,例如 /home/user
。
5. 如何创建、编辑和查看文件?
-
创建文件:
使用
touch
命令可以快速创建一个新的空文件:touch filename.txt
-
查看文件内容:
-
使用
cat
命令显示文件内容:cat filename.txt
-
使用
less
或more
命令按页查看大文件内容:less filename.txt
-
-
编辑文件:
-
使用简单的文本编辑器
nano
:nano filename.txt
-
使用功能更强大的编辑器
vim
:vim filename.txt
-
6. 如何查看当前正在运行的进程?
-
ps 命令:显示当前用户的所有进程:
ps aux
-
top 命令:实时显示系统的资源使用情况和正在运行的进程:
top
top
命令提供了对 CPU 和内存使用情况的实时监控。 -
htop 命令(如果已安装):比
top
提供了更友好的界面:htop
7. 如何检查磁盘使用情况?
-
查看文件系统的磁盘使用情况:
df -h
df
命令显示文件系统的磁盘使用情况,-h
参数表示以人类可读的格式(如 GB)输出。 -
查看单个文件或目录的磁盘使用情况:
du -sh /path/to/directory
du
命令用于查看目录或文件的磁盘占用情况,-sh
参数表示总结总大小,并以人类可读的格式输出。
结丹期
8. 如何在 Linux 中设置文件和目录的权限?
在 Linux
中,文件和目录的权限分为 用户(Owner)
、组(Group)
和 其他用户(Others)
。
每一类权限分为三种:读(r)、写(w) 和 执行(x)。
查看权限:使用 ls -l
查看文件或目录的权限。
ls -l filename
修改权限(chmod):使用 chmod
命令来修改文件或目录的权限。
-
数字表示法:每个权限可以用
3
个八进制数字表示,如chmod 755 filename
,表示用户具有所有权限,组和其他用户只有读取和执行权限。-
读
(r)= 4
,写(w)= 2
,执行(x)= 1
。 -
755
表示:用户 =rwx
,组 =r-x
,其他用户 =r-x
。
-
-
符号表示法:如
chmod u+rwx, g+rx, o-r filename
,表示为用户增加读写执行权限,组增加读和执行权限,其他用户移除读权限。
修改所有者(chown):使用 chown
修改文件或目录的所有者和组。
chown user:group filename
9. 如何查看和修改环境变量?
查看环境变量:使用 env
或 printenv
命令查看所有当前环境变量。
env
修改环境变量:使用 export
命令临时设置或修改环境变量。
export VAR_NAME="value"
永久修改环境变量:将环境变量添加到用户的 ~/.bashrc
(或 ~/.bash_profile
)文件中,使其在每次登录时生效。
-
编辑
~/.bashrc
文件,添加以下内容:export VAR_NAME="value"
-
保存后,使用以下命令使其生效:
source ~/.bashrc
10. 如何管理软件包?常见的包管理工具有哪些?
不同的 Linux 发行版使用不同的包管理工具来安装、更新和删除软件包。
Debian/Ubuntu 系列:
-
安装软件包:
sudo apt install package_name
-
更新软件包:
sudo apt update && sudo apt upgrade
-
删除软件包:
sudo apt remove package_name
RHEL/CentOS 系列:
-
安装软件包:
sudo yum install package_name
-
更新软件包:
sudo yum update
-
删除软件包:
sudo yum remove package_name
11. 如何查看系统日志?常见的日志文件在哪里?
Linux 系统日志记录系统活动、错误信息、安全事件等,可以帮助管理员排查问题。
查看系统日志:使用 journalctl
命令查看系统日志。
sudo journalctl
查看常见的日志文件:系统日志通常存储在 /var/log/
目录下,常见日志文件包括:
-
/var/log/syslog
或/var/log/messages
:记录系统级日志信息。 -
/var/log/auth.log
:记录与身份验证相关的事件(如登录、sudo
操作)。 -
/var/log/dmesg
:记录系统启动时的内核信息。
12. 如何使用 crontab 定时执行任务?
crontab 是 Linux
中的定时任务调度工具,用于在指定时间自动执行命令或脚本。
编辑用户的 crontab 表:
crontab -e
crontab 格式:每一行定义一个任务,格式为:
* * * * * command_to_run
| | | | |
| | | | ----- 周几(0-7,0和7表示星期天)
| | | ------- 月份(1-12)
| | ----------- 日期(1-31)
| --------------- 小时(0-23)
------------------- 分钟(0-59)
示例:每天早上 7:30 运行脚本 /home/user/script.sh
:
30 7 * * * /home/user/script.sh
查看当前用户的 crontab 任务:
crontab -l
13. 如何在 Linux 中检查网络连接?
查看网络接口信息:
-
使用
ifconfig
(需要安装net-tools
包):ifconfig
-
使用
ip
命令:ip addr show
诊断网络连接:
-
使用
ping
命令测试网络连通性:ping google.com
查看当前网络连接:
-
使用
netstat
(需要安装net-tools
包):netstat -an
-
使用
ss
命令(netstat
的替代工具):ss -tuln
14. 如何在 Linux 中创建和管理用户和组?
创建新用户:
使用 useradd
命令创建新用户,并使用 passwd
设置密码:
sudo useradd newuser
sudo passwd newuser
修改用户信息:
使用 usermod
修改用户的组、登录名或家目录:
sudo usermod -aG groupname username
删除用户:
使用 userdel
命令删除用户:
sudo userdel username
创建新组:
使用 groupadd
创建新组:
sudo groupadd newgroup
添加用户到组:
使用 usermod
命令将用户添加到组:
sudo usermod -aG groupname username
元婴期
15. 如何在 Linux 中查看和管理系统服务?
使用 systemctl
:
-
查看服务状态:
systemctl status service_name
-
启动服务:
sudo systemctl start service_name
-
停止服务:
sudo systemctl stop service_name
-
重启服务:
sudo systemctl restart service_name
-
启用服务开机自启动:
sudo systemctl enable service_name
-
禁用服务开机自启动:
sudo systemctl disable service_name
使用 service
(主要用于旧版本的系统):
-
启动、停止或重启服务:
sudo service service_name start|stop|restart
16. 如何设置防火墙规则?Linux 中有哪些常见的防火墙工具?
在 Linux
中,常用的防火墙工具包括 iptables
和 firewalld
。
使用 iptables
:
-
查看当前规则:
sudo iptables -L
-
允许某个端口(例如
80
):sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-
拒绝某个端口:
sudo iptables -A INPUT -p tcp --dport 23 -j DROP
-
保存规则(
Debian/Ubuntu
):sudo iptables-save > /etc/iptables/rules.v4
使用 firewalld
:
-
启动和启用防火墙:
sudo systemctl start firewalld sudo systemctl enable firewalld
-
允许某个服务(例如
http
):sudo firewall-cmd --permanent --add-service=http
-
重新加载规则:
sudo firewall-cmd --reload
17. 如何管理 Linux 文件系统?常见的文件系统有哪些?
管理文件系统可以使用多个命令,包括 mkfs
、mount
、umount
和 fsck
。
创建文件系统(如 ext4
):
sudo mkfs.ext4 /dev/sdX1
挂载文件系统:
sudo mount /dev/sdX1 /mnt/mountpoint
卸载文件系统:
sudo umount /mnt/mountpoint
检查文件系统:
sudo fsck /dev/sdX1
常见文件系统类型:
-
ext4:最常用的
Linux
文件系统。 -
xfs:适用于高性能需求。
-
btrfs:支持快照和卷管理。
18. 如何在 Linux 中进行磁盘分区和管理?
磁盘分区可使用工具如 fdisk
、parted
和 lsblk
。
查看分区信息:
lsblk
使用 fdisk
:
-
进入
fdisk
:sudo fdisk /dev/sdX
-
创建新分区:
- 输入
n
创建新分区,按照提示进行操作。
- 输入
-
保存并退出:
- 输入
w
保存更改。
- 输入
使用 parted
:
-
进入
parted
:sudo parted /dev/sdX
-
创建新分区:
mkpart primary ext4 1MiB 100MiB
19. 如何在 Linux 中调试和排查性能问题?
top:动态显示当前系统进程和性能信息。
top
htop:更友好的进程监控工具(需要安装)。
htop
strace:跟踪系统调用和信号,适用于调试程序。
strace -p PID
iotop:实时监控磁盘 I/O
使用情况(需要安装)。
iotop
vmstat:报告虚拟内存、进程、CPU
活动等。
vmstat 1
20. 如何配置 SSH 进行远程访问和密钥认证?
安装 SSH 服务(如果未安装):
sudo apt install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # RHEL/CentOS
启动和启用 SSH 服务:
sudo systemctl start ssh
sudo systemctl enable ssh
生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
将公钥复制到服务器:
ssh-copy-id user@remote_host
无密码登录:使用生成的密钥进行 SSH 登录:
ssh user@remote_host
21. 如何使用 Linux Shell 编写自动化脚本?
创建 Shell 脚本
使用文本编辑器创建一个以 .sh
结尾的文件,例如 script.sh
。
nano script.sh
编写脚本
在脚本文件的顶部添加行:
#!/bin/bash
编写需要执行的命令,例如:
echo "Hello, World!"
给予执行权限
chmod +x script.sh
或者
sh +x script.sh 直接执行
运行脚本
./script.sh
我的GitHub:https://github.com/swxctx
书籍地址:https://cd.golang.website/
标签:文件,查看,江湖,sudo,使用,如何,Linux,快答 From: https://blog.csdn.net/qq_28796345/article/details/142924001