跳转至

Linux

Shell 脚本编程【循环】

#!/bin/bash

clear

for var in Cloks Alabama Alaska Arizona Arkansas California Colorado
do
  echo $var
done | sort

# for var in Cloks Alabama Alaska Arizona Arkansas California Colorado; do echo $var; done | sort

echo $var

sleep 1 && clear

list="Alabama Alaska Arizona Arkansas California Colorado"
# list = append(list, "Connecticut")
list=$list" Connecticut"

for state in $list; do
  echo "have you ever visited $state?"
done

sleep 1 && clear

# reading values from a file

file="./states"

cat << EOF > $file
Alabama cloaks
Alaska
Arizona
Arkansas
California
Colorado
EOF

IFS_OLD=$IFS
IFS=$'\n'

for state in $(cat $file); do
  echo "Visit beautiful $state"
done

IFS=$IFS_OLD

rm -rf $file

sleep 1 && clear

for file in ./*; do
  if [ -d "$file" ];then
    echo "$file is a directory"
  elif [ -f "$file" ];then
      echo "$file is a file"
  fi
done

sleep 1 && clear

for (( i = 1; i <= 10; i++ )); do
  echo "the number is $i"
done

sleep 1 && clear

var1=10

while [ $var1 -gt 0 ]; do
    echo $var1
    var1=$[ $var1 - 1 ]
done

sleep 1 && clear

var1=10

while echo $var1
  [ $var1 -ge 0 ]; do
    echo "this is inside loop"
    var1=$[ $var1 - 1 ]
done

sleep 1 && clear

var1=10

until [ $var1 -eq 0 ]; do
    echo $var1
    var1=$[ $var1 - 1 ]
done

IFS_OLD=$IFS
IFS=$'\n'
for entry in $(cat /etc/passwd); do
  echo "Values in $entry -"
  IFS=:
  for value in $entry; do
    echo " $value"
  done >> output.txt
done > output-1.txt

IFS=$IFS_OLD

sleep 1 && clear

for (( i = 0; i < 10; i++ )); do
    echo "start loop $i"
    for (( j = 0; j < i; j++ )); do
       if [ $i -gt 5 ]; then
         break 2
       else
         echo $i-$j
       fi
    done
done

sleep 1 && clear

IFS_OLD=$IFS
IFS=:

for folder in $PATH; do
  echo "start folder: $folder"
  for file in $folder/*; do
    if [ -x $file ]; then
      echo "    $file"
    fi
  done
done

IFS=$IFS_OLD

sleep 1 && clear

input="users.csv"

cat << EOF > $input
rich,Richard Blum
christine,Christine Bresnahan
barbara,Barbara Blum
tim,Timothy Bresnahan
EOF

while IFS=',' read -r userid name; do
  echo "adding $userid-$name"
#  useradd -c "$name " -m $userid
done < "$input"

rm $input

关闭程序后执行命令:

rm -rf ~/.config/navicat
rm -rf ~/.config/dconf/user

linux_command_lshw

内容提要

lshw 命令是用来获取 Linux 硬件信息的命令,全称 list hardware

可获取内存配置、固件版本、主板配置、(CPU 版本、速率、缓存配置)、总线速度等

支持 DMI 的 x86 或 IA-64 系统以及某些 PowerPC 机器上(已知 PowerMac G4 可以工作)

data-acquisition-hardware

Windows

  • 温度采集

管理员模式启动 PowerShell 执行命令获取 CPU 温度

$(((Get-CimInstance -Namespace root/WMI -ClassName MSAcpi_ThermalZoneTemperature)[0].CurrentTemperature - 2731.5) / 10)

linux-command-watch

Linux 中的 watch 命令提供了一种方式处理重复的任务。默认watch 会每 2 秒重复执行命令。

linux-command-lspci

基础用法

由于访问权限,普通用户运行 lspci 时显示的信息可能会受限,因此可以使用 sudo 运行命令,系统会给出完整的信息图。

直接运行 lspci 命令会列出 PCI 总线及其连接的设备,下图是在我的虚拟机 PC 上的演示样例。

root@DESKTOP-PFKS7U0:/mnt/c/workspace/hexo# lspci
3acd:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
3d66:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio  (rev 01)
88c1:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)
e57a:00:00.0 3D controller: Microsoft Corporation Device 008e
f584:00:00.0 SCSI storage controller: Red Hat, Inc. Virtio filesystem (rev 01)