2024-08-16

在Linux系统中,运维工程师需要掌握许多常用命令和周边知识。以下是一些基本的命令和操作:

  1. 文件和目录操作

    • ls:列出目录内容。
    • cd:改变当前工作目录。
    • pwd:打印当前工作目录的全路径。
    • mkdir:创建新目录。
    • rmdir:删除空目录。
    • rm:删除文件或目录。
    • cp:复制文件或目录。
    • mv:移动或重命名文件或目录。
  2. 文件查看和编辑

    • cat:连接并打印文件内容。
    • more:分页显示文件内容。
    • less:分页显示文件内容,可以往前翻页。
    • head:显示文件开头部分。
    • tail:显示文件结尾部分。
    • grep:文本搜索工具。
    • sed:流编辑器,用于处理文本数据。
    • awk:文本处理工具,用于模式扫描和处理语言。
    • vivim:文本编辑器。
  3. 系统管理和监控

    • top:查看实时进程状态。
    • htop:更高级的进程查看器。
    • ps:报告当前系统的进程状态。
    • kill:发送信号到进程。
    • free:显示内存和交换区的使用情况。
    • df:报告文件系统的磁盘空间使用情况。
    • du:估计文件空间使用量。
    • netstat:显示网络相关信息。
    • ss:网络统计。
    • iostat:用于监视系统输入/输出设备负载。
    • sar:收集,报告,和保存系统活动信息。
  4. 权限和用户管理

    • chmod:改变文件或目录权限。
    • chown:改变文件或目录的所有者。
    • useradd:创建新用户。
    • usermod:修改用户属性。
    • userdel:删除用户。
    • passwd:修改用户密码。
    • su:切换用户身份。
    • sudo:以其他用户身份执行命令。
  5. 软件包管理

    • apt:用于处理包依赖关系的高级包管理工具。
    • yum:另一个用于处理包依赖关系的工具,常用于Red Hat系列。
    • rpm:管理Red Hat系统的包管理器。
    • dpkg:Debian系统的包管理器。
    • pip:Python包管理器。
  6. 系统服务和任务管理

    • systemctl:管理系统服务。
    • crontab:设置定时任务。
    • at:设置一次性任务。
  7. 其他重要命令

    • tar:归档工具,用于打包和解压文件。
    • wget:从网络下载文件。
    • curl:发送网络请求。
    • ssh:安全远程登录。
    • scp:在网络上安全地复制文件。
    • rsync:文件同步工具,可以复制和同步文件。
2024-08-16

为了在Ubuntu 20.04上配置交叉编译环境arm-linux-gnueabihf-gcc,你需要安装交叉编译工具链。以下是安装步骤的示例代码:

  1. 打开终端。
  2. 更新软件包列表:

    
    
    
    sudo apt update
  3. 安装gcc-arm-linux-gnueabihf包:

    
    
    
    sudo apt install gcc-arm-linux-gnueabihf

安装完成后,你可以通过输入arm-linux-gnueabihf-gcc --version来检查是否成功安装了交叉编译器。如果安装成功,你将看到交叉编译器的版本信息输出。

2024-08-16

在CentOS系统中安装Git并创建本地仓库的步骤如下:

  1. 安装Git:



sudo yum install git -y
  1. 验证安装是否成功:



git --version
  1. 创建一个新的本地仓库:



mkdir ~/myrepo
cd ~/myrepo
git init
  1. 配置本地仓库:



git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
  1. 验证配置信息:



git config --list

以上步骤将在CentOS系统中安装Git,创建一个新的本地仓库,并配置您的身份信息。

2024-08-16

在Linux中增加一块新的硬盘并进行分区、格式化以及挂载的步骤如下:

  1. 确认新硬盘的设备名称:



sudo fdisk -l

假设新硬盘设备名称为/dev/sdb

  1. 使用fdiskparted创建新分区:



sudo fdisk /dev/sdb

在fdisk命令行界面中,可以使用以下命令创建新分区:




n -> 创建新分区
p -> 选择主分区
(选择分区号,默认1)
(输入分区的起始扇区)
(输入分区的结束扇区,或者+大小,例如+20G)
w -> 保存并退出
  1. 格式化新分区:



sudo mkfs.ext4 /dev/sdb1

这里假设新分区的设备名称为/dev/sdb1,并且使用ext4文件系统格式化。

  1. 创建挂载点并挂载新分区:



sudo mkdir /mnt/newdisk
sudo mount /dev/sdb1 /mnt/newdisk
  1. 为了让挂载在启动时自动进行,需要将分区信息添加到/etc/fstab文件:



echo '/dev/sdb1 /mnt/newdisk ext4 defaults 0 0' | sudo tee -a /etc/fstab

以上步骤需要根据实际的硬盘设备名称和分区要求进行相应的调整。

2024-08-16

在Linux中,可以使用cat命令查看/etc/passwd文件来查看系统上的所有用户。/etc/passwd文件包含了系统上所有用户的信息。

打开终端,然后输入以下命令:




cat /etc/passwd

这将列出系统上所有用户的详细信息,每行对应一个用户。每行的格式如下:




username:password:UID:GID:user-info:home-dir:shell

其中:

  • username 是用户名
  • password 是密码,但在现代系统中,这通常是一个x,表示密码信息存储在另一个文件中
  • UID 是用户标识
  • GID 是用户主组的标识
  • user-info 是用户的额外信息
  • home-dir 是用户的家目录
  • shell 是用户默认的shell程序

如果只想查看用户名列表,可以使用awk命令来提取每行的第一个字段:




awk -F':' '{ print $1 }' /etc/passwd

这将只输出每个用户的用户名。

2024-08-16

在Linux中,rpm是一个用于管理包的命令行工具,用于安装、升级、删除、查询和验证Red Hat和类似系统上的包。

命令格式:




rpm [选项] [包名]

常用选项:

  • -i: 安装包
  • -U: 升级包
  • -e: 移除包
  • -q: 查询包信息
  • -V: 验证包
  • -h: 安装时,显示安装进度
  • --nodeps: 忽略依赖关系

查看硬盘和分区信息的常用命令:

  • lsblk: 列出所有可用的存储块设备(包括硬盘、分区、可移动设备等)。
  • df -h: 显示磁盘空间的使用情况,并以人类可读的格式(如GB、MB)显示。
  • fdisk -l: 查看磁盘分区表。
  • blkid: 显示块设备的UUID和文件系统类型。

文件权限后面的数字表示:

  • 第一个数字代表文件所有者的权限(读r、写w、执行x)。
  • 第二个数字代表同一组的用户权限。
  • 第三个数字代表其他用户的权限。

权限字符可以用数字表示:

  • r 对应数字 4
  • w 对应数字 2
  • x 对应数字 1

例如,权限字符串 rw-r--r-- 可以转换为数字 644

2024-08-16

route命令在Linux中用于显示和操作IP路由表。route命令在新版Linux系统中已被ip route命令替代,但仍可以使用。

以下是route命令的超详细用法:

  1. 显示当前路由表:



route -n
  1. 添加一条路由:



sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
  1. 删除一条路由:



sudo route del -net 192.168.1.0 netmask 255.255.255.0
  1. 修改一条路由:



sudo route change -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1
  1. 添加默认网关:



sudo route add default gw 192.168.1.1
  1. 删除默认网关:



sudo route del default gw 192.168.1.1
  1. 目标是主机的路由:



sudo route add -host 192.168.1.10 dev eth0
  1. 删除目标是主机的路由:



sudo route del -host 192.168.1.10 dev eth0
  1. 修改目标是主机的路由:



sudo route change -host 192.168.1.10 dev eth1
  1. 查看路由表并显示指定的度量值(metric):



route -n -e
  1. 清除所有非直连的路由:



sudo route flush -net 0.0.0.0
  1. 清除特定路由:



sudo route del -net 192.168.1.0 netmask 255.255.255.0
  1. 使用route命令设置永久路由:

在/etc/rc.local文件中添加路由命令,确保开机自动设置。




echo 192.168.1.0/24 via 192.168.1.1 dev eth0 >> /etc/rc.local
  1. 使用route命令设置动态路由:

在/etc/sysconfig/network-scripts/下创建一个名为route-eth0的文件,并在文件中添加路由信息。




echo "192.168.1.0/24 via 192.168.1.1 dev eth0" >> /etc/sysconfig/network-scripts/route-eth0
  1. 使用route命令设置默认网关:

在/etc/sysconfig/network文件中设置默认网关。




echo GATEWAY=192.168.1.1 >> /etc/sysconfig/network

以上是route命令的大部分用法,但请注意,这些命令可能会因为Linux发行版的不同而有所不同。在新的Linux发行版中,推荐使用ip route命令来管理和查看路由信息。

2024-08-16

在Linux中,您可以使用chmod命令来修改文件或文件夹的权限,使用chown命令来改变文件或文件夹的拥有者。

例如,给文件夹folder的所有者(user)以及所属组(group)读写执行权限(rwx),可以使用:




chmod 775 folder

给文件file.txt的所有者(user)以及所属组(group)的权限更改为读写权限:




chmod 664 file.txt

更改文件或文件夹的所有者,需要超级用户(root)权限或使用sudo

将文件file.txt的所有者更改为用户newuser




sudo chown newuser file.txt

将文件file.txt的所有者和所属组更改为用户newuser和组newgroup




sudo chown newuser:newgroup file.txt

请确保您有适当的权限来执行这些操作,否则您可能需要在命令前加上sudo来获取必要的权限。

2024-08-16

在上一篇文章中,我们已经部署了SonarQube和Jenkins。在这篇文章中,我们将部署Gogs。

Gogs 是一个用 Go 语言编写的轻量级 Git 服务器,它可以很方便的部署在 Linux 系统上。

  1. 安装依赖

首先,我们需要安装一些必要的依赖:




sudo apt-install -y curl git
  1. 下载 Gogs

接着,我们需要下载 Gogs 的最新版本。你可以从 Gogs 的 GitHub 仓库页面找到最新版本的下载链接。




wget https://github.com/gogs/gogs/releases/download/v0.11.55/linux_amd64.tar.gz
  1. 解压 Gogs

下载完成后,我们需要解压 Gogs 的压缩包:




tar -zxvf linux_amd64.tar.gz
  1. 移动 Gogs 到合适的位置



sudo mv gogs /usr/local/
  1. 配置 Gogs

/usr/local/gogs/scripts 目录下,有一个名为 init/debian/gogs 的脚本,我们可以使用它来配置 Gogs。




sudo /usr/local/gogs/scripts/init/debian/gogs

在执行过程中,你可能需要设置数据库(这里我们使用 SQLite3),以及配置域名和管理员账号。

  1. 启动 Gogs



sudo systemctl start gogs
  1. 设置开机自启



sudo systemctl enable gogs
  1. 访问 Gogs

在浏览器中访问你设置的域名和端口,你将看到 Gogs 的登录页面。使用你在初始化过程中创建的管理员账号登录。

至此,我们已经在 Linux 上部署了 Gogs。接下来,我们将配置 Jenkins 以自动执行代码质量检查和单元测试,并将结果报告给 SonarQube。

注意:在实际部署中,你需要正确配置 Gogs 的域名和 SSL 证书,以确保其安全性。同时,你还需要配置 Jenkins 以连接到 Gogs 和 SonarQube,并设置适当的权限。

2024-08-16

在Linux系统中,可以使用cron服务来设置定时任务。以下是一些常用的cron任务管理命令和示例:

  1. 查看当前用户的crontab文件:



crontab -l
  1. 编辑当前用户的crontab文件:



crontab -e
  1. 设置一个定时任务,比如每天早上5点清空/tmp目录:



crontab -e

然后在打开的编辑器中添加如下行:




0 5 * * * rm -rf /tmp/*

保存并退出编辑器。

  1. 删除当前用户的crontab文件:



crontab -r
  1. 列出crontab任务的日志,需要cron日志功能被启用:



grep CRON /var/log/syslog

或者查看特定用户的cron日志:




grep CRON /var/log/syslog | grep username
  1. 特定任务的执行结果也可以通过邮件发送给用户,需要配置MTA(如postfix)和cron的配置文件/etc/crontab

请根据实际需求使用这些命令,并确保cron服务正在运行:




sudo service cron status

或者在某些系统中可能是:




sudo systemctl status cron

如果cron服务没有运行,可以使用以下命令启动:




sudo service cron start

或者




sudo systemctl start cron

以上是使用cron的基本命令和方法,可以根据具体需求编辑crontab文件来设置更复杂的定时任务。