首页 > 系统相关 >Linux基本命令详细讲解和扩展

Linux基本命令详细讲解和扩展

时间:2024-06-21 13:09:54浏览次数:24  
标签:Linux 文件 示例 sudo 扩展 install 讲解 txt 目录

 

1. 基本命令和操作

文件和目录操作
  • ls:列出目录内容
    • 示例:ls -l /etc 列出 /etc 目录的详细内容。
  • cd:更改目录
    • 示例:cd /var/log 切换到 /var/log 目录。
  • cp:复制文件或目录
    • 示例:cp file1.txt file2.txt 复制 file1.txt 为 file2.txt
  • mv:移动或重命名文件或目录
    • 示例:mv oldname.txt newname.txt 重命名 oldname.txt 为 newname.txt
  • rm:删除文件或目录
    • 示例:rm file.txt 删除 file.txt
  • mkdir:创建目录
    • 示例:mkdir newdir 创建名为 newdir 的目录。
  • rmdir:删除空目录
    • 示例:rmdir olddir 删除名为 olddir 的空目录。
  • touch:创建空文件或更新文件时间戳
    • 示例:touch newfile.txt 创建 newfile.txt 文件。
文件内容查看和编辑
  • cat:连接并显示文件内容
    • 示例:cat /etc/passwd 显示 /etc/passwd 文件内容。
  • less:分页显示文件内容
    • 示例:less /var/log/syslog 分页查看 syslog 日志文件。
  • more:类似 less,但功能较少
    • 示例:more /var/log/syslog 分页查看 syslog 日志文件。
  • head:显示文件的前几行
    • 示例:head -n 10 /var/log/syslog 显示 syslog 文件的前10行。
  • tail:显示文件的最后几行
    • 示例:tail -n 10 /var/log/syslog 显示 syslog 文件的最后10行。
  • nano:简易文本编辑器
    • 示例:nano /etc/hosts 编辑 hosts 文件。
  • vim:功能强大的文本编辑器
    • 示例:vim /etc/hosts 编辑 hosts 文件。
文件权限和所有权
  • chmod:修改文件权限
    • 示例:chmod 755 script.sh 将 script.sh 的权限设为 755。
  • chown:修改文件所有者
    • 示例:chown user:group file.txt 将 file.txt 的所有者改为 user,组改为 group
  • chgrp:修改文件所属组
    • 示例:chgrp group file.txt 将 file.txt 的所属组改为 group
搜索和查找
  • find:查找文件或目录
    • 示例:find / -name "file.txt" 从根目录开始查找名为 file.txt 的文件。
  • grep:在文件中搜索字符串
    • 示例:grep "root" /etc/passwd 在 passwd 文件中搜索包含 root 的行。
  • locate:快速查找文件
    • 示例:locate file.txt 查找系统中所有名为 file.txt 的文件。

2. 用户和组管理

用户管理
  • useradd:添加用户
    • 示例:sudo useradd -m newuser 添加一个新用户 newuser 并创建主目录。
  • usermod:修改用户
    • 示例:sudo usermod -aG sudo newuser 将用户 newuser 添加到 sudo 组。
  • userdel:删除用户
    • 示例:sudo userdel -r olduser 删除用户 olduser 并删除其主目录。
  • passwd:修改用户密码
    • 示例:sudo passwd newuser 为用户 newuser 设置密码。
组管理
  • groupadd:添加组
    • 示例:sudo groupadd newgroup 添加新组 newgroup
  • groupmod:修改组
    • 示例:sudo groupmod -n newgroupname oldgroupname 将组 oldgroupname 重命名为 newgroupname
  • groupdel:删除组
    • 示例:sudo groupdel oldgroup 删除组 oldgroup
权限管理

理解文件和目录的权限位:读(r)、写(w)、执行(x)。

  • 设置特殊权限
    • SUID:在文件上设置SUID(Set User ID),执行文件时临时获得文件所有者的权限。
      • 示例:chmod u+s /usr/bin/someprogram 设置 someprogram 的SUID位。
    • SGID:在文件或目录上设置SGID(Set Group ID),执行文件时临时获得文件所属组的权限,在目录上设置时,新创建的文件和子目录继承目录的组。
      • 示例:chmod g+s /usr/local/somedir 设置 somedir 的SGID位。
    • 粘滞位:通常设置在目录上,防止用户删除或重命名其他用户的文件。
      • 示例:chmod +t /usr/local/somedir 设置 somedir 的粘滞位。

3. 软件包管理

Red Hat系(如CentOS、Fedora)
  • yum:软件包管理器
    • 示例:sudo yum install httpd 安装 httpd 包。
  • dnf:新的包管理器,替代yum
    • 示例:sudo dnf install httpd 安装 httpd 包。
Debian系(如Ubuntu)
  • apt:高级包工具
    • 示例:sudo apt update && sudo apt install apache2 更新软件包列表并安装 apache2 包。
  • dpkg:Debian软件包管理工具
    • 示例:sudo dpkg -i package.deb 安装本地 package.deb 包。
源码安装
  • tar:解压缩tar包
    • 示例:tar -xzvf package.tar.gz 解压 package.tar.gz 文件。
  • configure:配置源码包
    • 示例:./configure 配置源码包。
  • make:编译源码
    • 示例:make 编译源码。
  • make install:安装编译好的程序
    • 示例:sudo make install 安装编译好的程序。

4. 系统监控和管理

系统资源监控
  • top:动态查看系统资源使用情况
    • 示例:运行 top 并查看CPU、内存使用情况。
  • htop:更友好的top替代工具
    • 示例:运行 htop 查看系统资源使用情况。
  • free:显示内存使用情况
    • 示例:free -h 显示内存的详细使用情况。
  • df:显示磁盘使用情况
    • 示例:df -h 显示磁盘空间的使用情况。
  • du:查看目录或文件的磁盘使用情况
    • 示例:du -sh /home/user 查看 user 目录的大小。
  • iostat:显示CPU和I/O统计信息
    • 示例:iostat 查看CPU和I/O的统计信息。
  • vmstat:显示系统虚拟内存统计
    • 示例:vmstat 查看虚拟内存的统计信息。
进程管理
  • ps:显示当前进程
    • 示例:ps aux 显示所有进程的信息。
  • kill:终止进程
    • 示例:kill 1234 终止PID为 1234 的进程。
  • pkill:按名称终止进程
    • 示例:pkill firefox 终止所有 firefox 进程。
  • pgrep:查找进程ID
    • 示例:pgrep sshd 查找 sshd 进程的PID。
  • jobs:显示当前shell中的后台任务
    • 示例:jobs 查看当前shell中的任务。
  • bg:将任务放到后台运行
    • 示例:bg %1 将任务编号为1的任务放到后台运行。
  • fg:将任务放到前台运行
    • 示例:fg %1 将任务编号为1的任务放到前台运行。
日志管理
  • 日志文件位置:大多数日志文件位于 /var/log 目录下。
    • 示例:`/

var/log/syslog/var/log/messages` 是系统日志文件。

  • 实时查看日志
    • tailtail -f /var/log/syslog 实时查看 syslog 日志文件。
    • lessless +F /var/log/syslog 实时查看 syslog 日志文件。

5. 网络管理

网络配置
  • ifconfig:显示或配置网络接口
    • 示例:ifconfig eth0 查看 eth0 接口的配置。
  • ip:显示或配置网络接口
    • 示例:ip addr show 显示所有网络接口的IP地址。
  • nmcli:NetworkManager命令行工具
    • 示例:nmcli device status 查看所有网络设备的状态。
  • nmtui:NetworkManager图形界面工具
    • 示例:运行 nmtui 进行网络配置。
  • systemctl:管理系统服务
    • 示例:systemctl restart network 重启网络服务。
网络测试和诊断
  • ping:测试网络连通性
    • 示例:ping google.com 测试到 google.com 的连通性。
  • traceroute:显示到目的主机的路由
    • 示例:traceroute google.com 查看到 google.com 的路由。
  • netstat:显示网络连接、路由表、接口统计等
    • 示例:netstat -tuln 显示所有监听的TCP和UDP端口。
  • ss:类似netstat,但功能更强大
    • 示例:ss -tuln 显示所有监听的TCP和UDP端口。
  • curl:传输数据
    • 示例:curl http://example.com 下载网页内容。
  • wget:网络下载工具
    • 示例:wget http://example.com/file.zip 下载文件。

6. 安全和权限管理

防火墙配置
  • iptables:设置Linux内核中的数据包过滤规则
    • 示例:sudo iptables -L 查看当前的防火墙规则。
  • firewalld:动态管理防火墙
    • 示例:sudo firewall-cmd --list-all 查看当前的防火墙设置。
SSH管理
  • 配置和使用SSH:通过SSH进行安全远程登录和传输文件。
    • sshssh user@hostname 远程登录到主机 hostname
    • scpscp file.txt user@hostname:/path/to/destination 复制文件到远程主机。
    • rsyncrsync -avz file.txt user@hostname:/path/to/destination 同步文件到远程主机。
用户权限控制
  • sudo:以超级用户或其他用户权限执行命令。
    • 示例:sudo command 以超级用户权限执行 command
    • 配置sudoers文件:使用 visudo 命令编辑 /etc/sudoers 文件,配置用户的sudo权限。

7. 自动化和脚本编写

Shell脚本
  • 编写基础bash脚本
    • 示例脚本:
      #!/bin/bash
      echo "Hello, World!"
      
    • 变量
      • 示例:name="Linux" 定义变量 name
    • 条件判断
      • 示例:
        if [ "$name" == "Linux" ]; then
          echo "Welcome to Linux!"
        fi
        
    • 循环
      • 示例:
        for i in {1..5}; do
          echo "Number $i"
        done
        
    • 函数
      • 示例:
        function greet() {
          echo "Hello, $1!"
        }
        greet "Linux"
        
任务调度
  • cron:定时任务调度
    • 示例:编辑 crontab 文件,添加如下条目,每天凌晨2点运行备份脚本:
      0 2 * * * /path/to/backup.sh
      
  • at:一次性任务调度
    • 示例:echo "backup.sh" | at now + 1 minute 一分钟后运行备份脚本。

8. 备份和恢复

备份工具
  • tar:创建归档文件
    • 示例:tar -czvf backup.tar.gz /path/to/directory 备份目录为 backup.tar.gz 文件。
  • rsync:高效的文件同步工具
    • 示例:rsync -avz /path/to/source /path/to/destination 同步文件或目录。
  • dd:进行低级别数据备份
    • 示例:dd if=/dev/sda of=/path/to/backup.img 备份整个硬盘。
恢复操作
  • 理解备份文件的恢复过程
    • tartar -xzvf backup.tar.gz -C /path/to/restore 解压并恢复文件。
    • rsyncrsync -avz /path/to/backup /path/to/restore 恢复文件或目录。
    • dddd if=/path/to/backup.img of=/dev/sda 恢复硬盘镜像。

9. 虚拟化和容器化

虚拟化
  • KVM:内核虚拟机
    • 示例:安装KVM并创建虚拟机:
      sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
      sudo virt-install --name testvm --ram 2048 --disk path=/var/lib/libvirt/images/testvm.qcow2,size=10 --vcpus 2 --os-type linux --os-variant ubuntu20.04 --network bridge=br0 --graphics none --console pty,target_type=serial --location 'http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/'
      
  • VirtualBox:用户友好的虚拟机软件
    • 示例:安装VirtualBox并创建虚拟机。
容器化
  • Docker:轻量级容器化技术
    • 示例:安装Docker并运行容器:
      sudo apt install docker.io
      sudo systemctl start docker
      sudo systemctl enable docker
      sudo docker run -it ubuntu /bin/bash
      
  • docker-compose:定义和运行多容器Docker应用
    • 示例:编写 docker-compose.yml 文件,启动多容器应用:
      version: '3'
      services:
        web:
          image: nginx
          ports:
            - "80:80"
        db:
          image: mysql
          environment:
            MYSQL_ROOT_PASSWORD: example
      

10. 常见服务配置

Web服务
  • Apache:安装和配置Apache
    • 示例:sudo apt install apache2 安装Apache。
  • Nginx:安装和配置Nginx
    • 示例:sudo apt install nginx 安装Nginx。
数据库服务
  • MySQL:安装和配置MySQL
    • 示例:sudo apt install mysql-server 安装MySQL。
  • PostgreSQL:安装和配置PostgreSQL
    • 示例:sudo apt install postgresql 安装PostgreSQL。
文件共享服务
  • Samba:安装和配置Samba
    • 示例:sudo apt install samba 安装Samba。
  • NFS:安装和配置NFS
    • 示例:sudo apt install nfs-kernel-server 安装NFS服务器。

11. DevOps工具

版本控制
  • Git:基本操作
    • 示例:git clone https://github.com/user/repo.git 克隆仓库。
CI/CD
  • GitLab CI/CD:了解GitLab CI/CD的基本使用
    • 示例:编写 .gitlab-ci.yml 文件,定义CI/CD流水线。
  • Jenkins:自动化构建工具
    • 示例:安装Jenkins并配置流水线。
基础设施即代码
  • Ansible:简单的配置管理工具
    • 示例:编写 playbook.yml,使用Ansible部署应用。
  • Terraform:基础设施即代码工具
    • 示例:编写 main.tf 文件,使用Terraform管理基础设施。

12. 云计算基础

常见云服务商
  • AWS:了解AWS的基本服务,如EC2、S3、RDS等。
  • Azure:了解Azure的基本服务,如VM、Blob存储、SQL数据库等。
  • GCP:了解GCP的基本服务,如Compute Engine、Cloud Storage、Cloud SQL等。
 

标签:Linux,文件,示例,sudo,扩展,install,讲解,txt,目录
From: https://www.cnblogs.com/lyt263/p/18260310

相关文章

  • 掌握JavaScript ES6精髓:探索函数和对象的高级扩展与实用技巧
    序言JavaScript,作为前端开发中不可或缺的语言,已经发展到了ECMAScript2015(简称ES6)以及后续的版本。ES6带来了诸多语法上的改进和创新,使得代码更加简洁、优雅,同时也提供了更多的编程模式和实用技巧。本文将带领读者探索ES6中函数和对象的高级扩展及其实用技巧,同时结合最新......
  • Java网易163邮箱工具类-部署到Linux
    1,设置163邮箱开启POP3/SMTP/IMAP2,依赖<dependency> <groupId>jakarta.mail</groupId> <artifactId>jakarta.mail-api</artifactId> <version>2.1.3</version></dependency><dependency> <groupId>com.sun.m......
  • Linux PXE高效批量装机
    部署PXE远程安装服务在大规模的Linux应用环境中,如Web群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的USB光驱、移动硬盘等安装方法显然已经难以满足需求。本章将学习基于PXE(PrebooteXecutionEnvironm......
  • linux上安装MySQL的详细教程
    一、检查是否安装过mysql   rpm-qa|grepmysql(ps:输入命令没内容就是没有安装)二、安装mysql包yum-yinstallmysql57-community-release-el7-10.noarch.rpm出现下边这个就表示成功了三、安装mysql1.首先要进行的工作就是:(该命令作用就是导入MySQL官方的......
  • linux下安装ftp
    新建linux账号sudoadduseruser_ftpsudopasswduser_ftp--提示重复输入密码,就直接输入user_ftp安装服务yuminstall-yvsftpd--启动服务systemctlstartvsftpd--查看状态提示SUCCESS代表成功systemctlstatusvsftpd--开机自动启动systemctlenablevsftpd--防火......
  • SUSE linux的快照和恢复
    snapper用于创建和管理文件系统快照,并在需要时实现回滚,它还可以用于创建用户数据的磁盘备份。snapper使用btrfs文件系统或者精简配置的被格式化成XFS或EXT4的LVM卷。snapper可以通过命令行或YaST来进行管理。btrfs是一种copy-on-write文件系统,它原生支持subvolumes文件系统......
  • Linux 阻塞和非阻塞 IO 实验学习
    Linux阻塞和非阻塞IO实验学习IO指的是Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式IO就会将应用程序对应的线程挂起,直到设备资源可以获取为止。对于非阻塞IO,应用程序对应的线......
  • 【2024最新精简版】网络_Linux操作系统面试篇
    文章目录简述tcp和udp的区别?get和post请求有哪些区别?常用HTTP请求方式有哪些?进程跟线程的区别?僵尸进程?IO的多路复用?虚拟内存什么是OSI模型说一说HTTP协议说一说HTTPS协议HTTPS协议和HTTP协议有什么区别?......
  • 【图书推荐】《Linux C与C++一线开发实践(第2版)》
    本书重点主要讲解开发环境搭建、C/C++语言基础、文件编程、多进程、Web编程、多线程、库、TCP/IP协议、套接字、并发聊天服务器项目实战。适合选择Linux系统开发方向的开发人员,打下Linux开发的牢固基础。内容简介Linux C/C++编程在Linux应用程序开发中占有重要的地位,掌握......
  • PTP简介及Linux phy ptp驱动实现
    1、PTP简介        PTP(precisiontimeprotocol)精确时间协议,是一种时间同步的协议,对应IEEE1588标准,是基于网络数据包的一种时间同步协议,1588v2的同步精度可以达到ns级,但1588协议对硬件有依赖。2、PTP原理          时间同步的核心就是不同时钟源之间......