首页 > 系统相关 >代码江湖:快问快答 -【Linux】

代码江湖:快问快答 -【Linux】

时间:2024-10-14 17:18:26浏览次数:7  
标签:文件 查看 江湖 sudo 使用 如何 Linux 快答

Linux


筑基期

1. 什么是 Linux 操作系统?它与其他操作系统的区别是什么?

Linux 是一种开源的、类 Unix 的操作系统,具有多用户、多任务、稳定性强的特点。

它最初由 Linus Torvalds 开发,当前已成为服务器、开发环境和嵌入式系统中的主流操作系统之一。

与其他操作系统的区别

  • 开源Linux 是免费且开源的,用户可以自由修改和发布自己的版本,而 WindowsmacOS 是闭源的。

  • 命令行驱动:与 WindowsmacOS 以图形界面为主不同,Linux 强调命令行操作,适合高效的服务器管理和自动化任务。

  • 系统灵活性Linux 支持多种发行版(如 UbuntuCentOSDebian),用户可以根据需求进行高度自定义。


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
      
    • 使用 lessmore 命令按页查看大文件内容:

      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. 如何查看和修改环境变量?

查看环境变量:使用 envprintenv 命令查看所有当前环境变量。

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 定时执行任务?

crontabLinux 中的定时任务调度工具,用于在指定时间自动执行命令或脚本。

编辑用户的 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 中,常用的防火墙工具包括 iptablesfirewalld

使用 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 文件系统?常见的文件系统有哪些?

管理文件系统可以使用多个命令,包括 mkfsmountumountfsck

创建文件系统(如 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 中进行磁盘分区和管理?

磁盘分区可使用工具如 fdiskpartedlsblk

查看分区信息

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

相关文章

  • 代码江湖:快问快答 -【Golang】
    Golang筑基期1.Go语言的应用场景和优势有哪些?2.Go的数据类型有哪些?如何声明变量?3.如何定义和使用函数?支持哪些参数和返回值类型?4.什么是数组和切片?它们之间有什么区别?5.Go中的map是什么?如何创建和使用map?6.如何使用控制结构(if、for、switch)进行流程控制?7.什......
  • 【Linux】解析信号的本质&相关函数及指令的介绍
    前言大家好吖,欢迎来到YY滴Linux系列,热烈欢迎!本章主要内容面向接触过C++的老铁主要内容含:欢迎订阅YY滴C++专栏!更多干货持续更新!以下是传送门!YY的《C++》专栏YY的《C++11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》......
  • Linux 之 nano 编辑器
    使用git提交的时候,发生冲突或要记录相关信息时会弹出nano这个编辑器。nano[选项][[+行,列]文件名]...nano[必要参数][选择参数][文件]命令行白的部分是组合键,后面的则是该组合键的功能。指数符号(^)代表的是键盘的[ctrl]按键,(M)表示Alt键。[Ctrl]-G:取得在线帮助(hel......
  • 十、Linux 之定时任务调度
    1、crond任务调度crontab进行定时任务的设置1.1概述任务调度:是指系统在某个时间执行的特定的命令或程序。任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。示意图......
  • 华为云 linux centos8 安装tendis
    一、下载下载地址:http://tendis.cn/#/点击右上角的Download点击tendisplus-2.7.0-rocksdb-v8.5.3.tgz,由于下载速度非常慢,改用wget方式下载解决云服务器中访问github速度慢的问题:linux中在/etc/hosts中添加如下内容:20.205.243.166github.com输入下载命令:wgethttps:/......
  • Linux常用命令(每日两更)
     一、Linux基础命令1、bc数字计算器作用:用于数字计算以及进制转换#安装bc工具[root@192~]#yum-yinstallbc>/dev/null;echo-e"\a"​#bc用于数字计算[root@192~]#echo"1+1"|bc2​#bc用于进制转换obase表示输出的进制,ibase表示输入的进制[root@19......
  • linux free 解释
    [root@kafka-1node_export]#free-mtotalusedfreesharedbuff/cacheavailableMem:3896391303094743273在Linux系统中,free-m命令用于显示系统内存的使用情况。输......
  • Linux NFS
    NFS网络文件系统,英文NetworkFileSystem(NFS),是由SUN公司研制的UNIX表示层协议(presentationlayerprotocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。用vm虚拟两个linux;并同时关闭firewalld&SELINUXsystemctldisablefirewalldsetenforce0 s......
  • arm Linux中dma的cache管理
    概述前两周有人询问DMA下的cache操作和dma-coherent。以前零碎看过代码。临时找,还没有找到。这两天整理了调用流程,也找到了dma-coherent的用法。Linux的文档里没有详细说明dma-coherent的用法。根据代码,如果dma的设备树里有dma-coherent,Linux则认为硬件会维护cache一致性,不会在d......
  • Linux系统之ipcalc命令的基本使用
    (Linux系统之ipcalc命令的基本使用)一、ipcalc命令介绍ipcalc命令是一个用于计算和显示IP地址和子网掩码相关信息的工具。它可以帮助用户快速计算出IP地址、子网掩码、网络地址、广播地址等信息。二、ipcalc命令的使用帮助2.1ipcalc命令的help帮助信息使用--help,查询ipca......