忍者ブログ

◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例

   

【Linux】Ubuntu設定

#*****************************
# ■ アップデート
#*****************************
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo reboot
 
#*****************************
# ■ SSH設定
#*****************************
sudo apt install ssh
sudo systemctl start ssh
sudo systemctl status ssh
PR

【TTL】ListBoxログイン②

  ※※※※※※※※※※※※※※
  ※※※ TTL_ログイン.ttl ※※
  ※※※※※※※※※※※※※※
;*****************************
;■ 対象サーバ情報
;*****************************
strdim Server_NAME 4
Server_NAME[0] = '【サーバ名】'
Server_NAME[1] = '【サーバ名】'
Server_NAME[2] = '【サーバ名】'
Server_NAME[3] = '【サーバ名】'
;-----------------------------
strdim Server_IPaddress 4
Server_IPaddress[0] = '192.168.0.xx'
Server_IPaddress[1] = '192.168.0.xx'
Server_IPaddress[2] = '192.168.0.xx'
Server_IPaddress[3] = '192.168.0.xx'
;-----------------------------
strdim Server_USER 4
Server_USER[0] = '【ユーザID】'
Server_USER[1] = '【ユーザID】'
Server_USER[2] = '【ユーザID】'
Server_USER[3] = '【ユーザID】'
;-----------------------------
strdim Server_PASS 4
Server_PASS[0] = '【パスワード】'
Server_PASS[1] = '【パスワード】'
Server_PASS[2] = '【パスワード】'
Server_PASS[3] = '【パスワード】'
 
;*****************************
;■ サーバ選択画面
;*****************************
getdir TTL_Path
strconcat TTL_Path '\TTL_SSH.ttl'
include TTL_Path
 
;*****************************
;■ ログイン後にコマンド実行
;*****************************
pause 1
sendln
sendln
wait '$' '#'
sendln
send 'date ; uname -n ; id'
sendln
sendln
 
  ※※※※※※※※※※※※※※
  ※※※※TTL_SSH.ttl ※※※※
  ※※※※※※※※※※※※※※
 
;*****************************
;■ 選択画面の表示
;-----------------------------
listbox '『対象を選択してください』' '【サーバ名】' Server_NAME
;-----------------------------
;■ 選択したresult値を取得
if result >= 0 then
  paramIP = Server_IPaddress[result] ;; ■ IPアドレス
  paramUSER = Server_USER[result]    ;; ■ ユーザ名
  paramPASS = Server_PASS[result]    ;; ■ パスワード
  LOG_File = Server_NAME[result]     ;; ■ ログファイル名
else
  end
endif
 
;*****************************
;■ SSHログイン情報
;-----------------------------
;■ SSHの認証方式の設定
;-----------------------------
paramAUTH = 'password'               ;; ■ 認証方式の値
;-----------------------------
;■ INIファイルのパス設定
;-----------------------------
getdir macroDIR                      ;; ■ 現在のパス取得
strconcat macroDIR '\TERATERM.INI'   ;; ■ INIファイル名
paramINI = macroDIR                  ;; ■ INIファイルの値
 
;*****************************
;■ SSH接続コマンド編集
;-----------------------------
LoginSSH = paramIP                      ;; ■ IPアドレス
strconcat LoginSSH ':22 /ssh /2 /auth=' ;; ■ 認証方式オプション
strconcat LoginSSH paramAUTH            ;; ■ 認証方式の値
strconcat LoginSSH ' /user='            ;; ■ ユーザ名オプション
strconcat LoginSSH paramUSER            ;; ■ ユーザ名の値
strconcat LoginSSH ' /passwd='          ;; ■ パスワードオプション
strconcat LoginSSH paramPASS            ;; ■ パスワードの値
strconcat LoginSSH ' /F='               ;; ■ INIファイルオプション
strconcat LoginSSH paramINI             ;; ■ INIファイルの値
 
;*****************************
;■ LOGファイルの設定
;-----------------------------
getdir LOG_Path
strconcat LOG_Path '\LOG\'
getdate LogDate '_%Y%m%d-%H%M%S.log'
strconcat LOG_File LogDate
strconcat LOG_Path LOG_File
 
;*****************************
;■ SSH接続ログイン
;-----------------------------
;; messagebox LOG_Path 'デバッグ用メッセージ'
connect LoginSSH
logopen LOG_Path 0 0
 
;*****************************
;■ タイトル設定
;-----------------------------
settitle LOG_Path

【TTL】ListBoxログイン①

;*****************************
;■ SSHログイン情報
;*****************************
paramUSER = '<ユーザ名>     ;; ■ ユーザ名の値
paramPASS = '<パスワード>   ;; ■ パスワードの値
;*****************************
;■ SSHの認証方式の設定
;*****************************
paramAUTH = 'password'        ;; ■ 認証方式の値
;*****************************
;■ INIファイルのパス設定
;*****************************
getdir macroDIR                      ;; ■ 現在のパス取得
strconcat macroDIR '\TERATERM.INI' ;; ■ INIファイル名
paramINI = macroDIR                  ;; ■ INIファイルの値
;*****************************
;■ 表示するサーバ名の設定
;*****************************
strdim Server_NAME 5
Server_NAME[0] = '【サーバ名】'
Server_NAME[1] = '【サーバ名】'
Server_NAME[2] = '【サーバ名】'
Server_NAME[3] = '【サーバ名】'
Server_NAME[4] = '【サーバ名】'
;*****************************
;■ 対象IPアドレスの設定
;*****************************
strdim Server_IPaddress 5
Server_IPaddress[0] = '192.168.0.xx'
Server_IPaddress[1] = '192.168.0.xx'
Server_IPaddress[2] = '192.168.0.xx'
Server_IPaddress[3] = '192.168.0.xx'
Server_IPaddress[4] = '192.168.0.xx'
;*****************************
;■ 選択画面の表示
;*****************************
listbox '『対象を選択してください』' '【サーバ名】' Server_NAME
;*****************************
;■ 選択したresult値を取得
;*****************************
if result >= 0 then
    paramIP = Server_IPaddress[result]
    LOG_File = Server_NAME[result]
else
    end
endif
;*****************************
;■ SSH接続コマンド編集
;*****************************
LoginSSH = paramIP                      ;; ■ IPアドレス
strconcat LoginSSH ':22 /ssh /2 /auth=' ;; ■ 認証方式オプション
strconcat LoginSSH paramAUTH            ;; ■ 認証方式の値
strconcat LoginSSH ' /user='            ;; ■ ユーザ名オプション
strconcat LoginSSH paramUSER            ;; ■ ユーザ名の値
strconcat LoginSSH ' /passwd='          ;; ■ パスワードオプション
strconcat LoginSSH paramPASS            ;; ■ パスワードの値
strconcat LoginSSH ' /F='               ;; ■ INIファイルオプション
strconcat LoginSSH paramINI             ;; ■ INIファイルの値
;*****************************
;■ SSH接続ログイン
;*****************************
connect LoginSSH
;*****************************
;■ LOGファイルの設定
;*****************************
getdir LOG_Path
strconcat LOG_Path '\LOG\'
getdate LogDate '_%Y%m%d-%H%M%S.log'
strconcat LOG_File LogDate
strconcat LOG_Path LOG_File
logopen LOG_Path 1 1
;; messagebox LOG_Path 'デバッグ用メッセージ'
;*****************************
;■ タイトル設定
;-----------------------------
settitle LOG_Path

;*****************************
;■ プロンプト待ち&コマンド
;*****************************
wait '$' '#'
sendln
sendln
send 'date ; uname -n ; id'
sendln
sendln
wait '$' '#'
sendln

【awk】列の合計

#*****************************
#【ls 結果サイズを合計する】
#*****************************
ls -l | awk '{sum += $5} END {print sum}'
 
#*****************************
#【画面表示&ファイルに保存】
#*****************************
ls -l | awk '{sum += $5} END {print sum}' | tee result.txt
 
#*****************************
#【MB単位&小数点以下2桁】
#*****************************
ls -l | awk '{sum += $5} END {printf "%.2f MB\n", sum/1024/1024}'

【PowerShell】関数オブジェクト

REM ▼▲▼▲▼▲▼▲▼▲▼▲▼
REM ▼スクリプトファイル名  
REM ▲『WinMerge_Excel.bat』
REM ▲▼▲▼▲▼▲▼▲▼▲▼▲
 
@echo off
REM **************************
REM # conhost切替
REM **************************
if not "%1"=="am_admin" (
    start conhost "%~f0" am_admin & exit /b
)
 
REM **************************
REM # 画面サイズ設定
REM # カラー設定
REM # 文字コード設定
REM **************************
mode con: cols=120 lines=16
color 0a
chcp 932
 
timeout 1
 
REM **************************
REM # PowerShell実行
REM **************************
powershell -ExecutionPolicy RemoteSigned -File "%CD%\WinMerge_Excel.ps1"
 
timeout 5
 
REM **************************
REM # バッチ終了処理
REM **************************
color 17
cls
 
echo .
echo " ================= "
echo " ====== END ====== "
echo " ================= "
echo .
 
timeout 3
 
# ▼▲▼▲▼▲▼▲▼▲▼▲▼
# ▼スクリプトファイル名  
# ▲『WinMerge_Excel.ps1』
# ▲▼▲▼▲▼▲▼▲▼▲▼▲
 
#******************************
# ■ .NET クラス読込
#-----------------------------
Add-Type -AssemblyName System.Windows.Forms
 
#******************************
# ■ 定数設定
#-----------------------------
#【年月日-時分秒】
$DayTime = Get-Date -Format "yyyyMMdd-HHmmss"
 
#-----------------------------
#【WinMerge格納パス】
# ※ 環境に合わせて以下のパスを設定
$winMerge = "C:\Program Files\WinMerge\WinMergeU.exe"
 
#-----------------------------
#【ポップアップメッセージ】
$P_MSG_1 = "★★★★★ 【WinMerge】比較元(左側)ファイルを選択 ★★★★★"
$P_MSG_2 = "★★★★★ 【WinMerge】比較先(右側)ファイルを選択 ★★★★★"
$P_MSG_3 = "★★★★★ 【WinMerge】出力先を確認ください ★★★★★"
 
#-----------------------------
#【出力メッセージ】
$W_MSG_0 = " ================= "
$W_MSG_1 = " ※※※ 【PowerShell実行 ⇒ WinMerge】 ※※※ "
$W_MSG_2 = " ※※※ 比較元と比較先のファイルを確認ください ※※※ "
$W_MSG_3 = " ====== END ====== "
 
#-----------------------------
#【msgbox オブジェクト生成】
$msgbox = New-Object -ComObject Wscript.Shell
 
#-----------------------------
#【fileDialog オブジェクト生成】
$FileDialog = New-Object System.Windows.Forms.OpenFileDialog
$fileDialog.Title = "【★★★★★ 対象ファイルを選択してください ★★★★★】"
$FileDialog.Filter = "すべてのファイル (*.*)|*.*"
$fileDialog.ValidateNames = $false
$fileDialog.CheckFileExists = $false
$fileDialog.CheckPathExists = $true
 
#******************************
# ■ 関数設定
#-----------------------------
#【ダイアログからパス取得】
function Select_File {
  if ($FileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
    $filePath = $FileDialog.FileName
    #-----------------------------
    #【アクセスチェック】
    if (Test-Path -LiteralPath $filePath) {
      return $filePath
    } else {
        Write-Error "【*** Path ERROR ***】 : $_"
        exit
    }
  } else {
    Write-Host "選択無し(キャンセル)" -ForegroundColor Yellow
    exit
  }
}
 
#******************************
# ■ 処理開始メッセージ表示
#-----------------------------
Write-Host " "
Write-Host "$W_MSG_1"
Write-Host " "
 
Start-Sleep 1
 
#******************************
# ■ 比較元(左側)を選択
#-----------------------------
$msgbox.popup("$P_MSG_1")
$PATH_L = Select_File
 
Write-Host "【WinMerge】比較元(左側): $PATH_L"
 
Start-Sleep 1
 
#******************************
# ■ 比較先(右側)を選択
#******************************
$msgbox.popup("$P_MSG_2")
$PATH_R = Select_File
 
Write-Host "【WinMerge】比較先(右側): $PATH_R"
 
#******************************
# ■ 確認メッセージ表示
#-----------------------------
Write-Host " "
Write-Host "$W_MSG_2"
Write-Host " "
pause
 
#******************************
# ■ 出力先パス設定
#-----------------------------
# ## $OUTPUT_Path = [Environment]::GetFolderPath("Desktop")
# ## $OUTPUT_Path = (Get-Location).Path
$OUTPUT_Path = $PSScriptRoot
#-----------------------------
$msgbox.popup("$P_MSG_3")
Write-Host "**************************************"
Write-Host "【WinMerge】フォルダ名  : $OUTPUT_Path"
 
#******************************
# ■ HTMLパス取得(生成)
#-----------------------------
$HTML_File = "$OUTPUT_Path\Diff_HTML_$DayTime.html"
Get-ChildItem | Select-Object Name, Length | ConvertTo-Html > $HTML_File
#-----------------------------
Write-Host "【WinMerge】HTML名  : $HTML_File"
 
#******************************
# ■ WinMerge 比較実行
#-----------------------------
& $winMerge /r /noninteractive /or "$HTML_File" "$PATH_L" "$PATH_R"
 
#******************************
# ■ WinMerge比較結果を保存する
#-----------------------------
#【EXCELファイル名の設定】
$EXCEL_File = "$OUTPUT_Path\Diff_Excel_$DayTime.xlsx"
Write-Host "【WinMerge】エクセル名  : $EXCEL_File"
Write-Host "**************************************"
Write-Host " "
pause
 
#-----------------------------
#【EXCEL オブジェクト生成】
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false
 
#-----------------------------
#【EXCEL ファイル保存処理】
try {
  $workbook = $excel.Workbooks.Open($HTML_File)
  $fileFormat = 51
  $workbook.SaveAs($EXCEL_File,$fileFormat)
  Write-Host " "
  Write-Host "【*** Excel保存完了 ***】 $EXCEL_File" -ForegroundColor Green
  Write-Host " "
}
catch {
  Write-Host " "
  Write-Error "【*** EXCEL ERROR ***】 : $_"
  Write-Host " "
}
 
#******************************
# ■ オブジェクト解放処理
#-----------------------------
finally {
  #-----------------------------
  #【EXCEL オブジェクト解放】
  if ($workbook) { 
    $workbook.Close($false)
  }
  $excel.Quit()
  [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
  Remove-Variable excel
 
  #-----------------------------
  #【fileDialog オブジェクト解放】
  $fileDialog.Dispose()
 
  #-----------------------------
  #【msgbox オブジェクト解放】
  $msgbox = $null
  if ($null -ne $msgbox) {
    [System.Runtime.InteropServices.Marshal]::ReleaseComObject($msgbox) | Out-Null
    #-----------------------------
    #【ガベージコレクション強制】
    [System.GC]::Collect()
    [System.GC]::WaitForPendingFinalizers()
  }
}
 
#******************************
# ■ 処理終了メッセージ表示
#-----------------------------
Write-Host " "
Write-Host "$W_MSG_0"
Write-Host "$W_MSG_3"
Write-Host "$W_MSG_0"
Write-Host " "
 
Start-Sleep 2

【PowerShell】WinMarge

■■■■■■■■■■■■■■■
■『WinMerge_Excel.bat』で以下を保存する
■■■■■■■■■■■■■■■
@echo off
REM **************************
REM # conhost切替
REM **************************
if not "%1"=="am_admin" (
    start conhost "%~f0" am_admin & exit /b
)
 
REM **************************
REM # 画面サイズ設定
REM # カラー設定
REM # 文字コード設定
REM **************************
mode con: cols=120 lines=16
color 0a
chcp 932
 
timeout 1
echo "====== START ======"
 
REM **************************
REM # PowerShell実行
REM **************************
powershell -ExecutionPolicy RemoteSigned -File "%USERPROFILE%\Desktop\PowerShell_WinMerge\WinMerge_Excel.ps1"
 
color 17
 
echo "====== E N D ======"
 
timeout 5
■■■■■■■■■■■■■■■
■『WinMerge_Excel.ps1』で以下を保存する
■■■■■■■■■■■■■■■
Write-Host " "
Write-Host " ※※※ 【 PowerShellで、WinMergeの比較を実行 】 ※※※ "
Write-Host " ※※※ 【 比較結果をExcelファイルに保存する  】 ※※※ "
Write-Host " "
Start-Sleep 2
 
#******************************
# ■ .NET クラス読込
#-----------------------------
Add-Type -AssemblyName System.Windows.Forms
 
#******************************
# ■ 定数設定
#-----------------------------
#【ダイアログ】
$fileDialog = New-Object System.Windows.Forms.OpenFileDialog
$fileDialog.Title = "【★★★★★ 対象ファイルを選択してください ★★★★★】"
$fileDialog.Filter = "すべてのファイル (*.*)|*.*"
$fileDialog.ValidateNames = $false
$fileDialog.CheckFileExists = $false
$fileDialog.CheckPathExists = $true
$fileDialog.RestoreDirectory = $true
 
#-----------------------------
#【メッセージボックス】
$msgbox = new-object -comobject wscript.shell
 
#-----------------------------
#【年月日-時分秒】
$DayTime = Get-Date -Format "yyyyMMdd-HHmmss"
 
#-----------------------------
#【WinMerge格納パス】
$winMerge = "C:\Program Files\WinMerge\WinMergeU.exe"
 
#******************************
# ■ 比較元(左側)を選択
#-----------------------------
$msgbox.popup("★★★★★ 【WinMerge】比較元(左側)ファイルを選択 ★★★★★")
#-----------------------------
#【左側(比較元)パス取得】
#-----------------------------
if ($fileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
  $selectedFile = $fileDialog.FileName
  Write-Host "【WinMerge】比較元(左側): $selectedFile"
} else {
  Write-Host "選択無し(キャンセル)"
}
 
#-----------------------------
#【左側(比較元)を変数に格納】
$PATH_L = "$selectedFile"
#-----------------------------
 
#******************************
# ■ 比較先(右側)を選択
#******************************
$msgbox.popup("★★★★★ 【WinMerge】比較先(右側)ファイルを選択 ★★★★★")
#-----------------------------
#【右側(比較先)パス取得】
#-----------------------------
if ($fileDialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {
  $selectedFile = $fileDialog.FileName
  Write-Host "【WinMerge】比較先(右側): $selectedFile"
} else {
  Write-Host "選択無し(キャンセル)"
}
 
#-----------------------------
#【右側(比較先)を変数に格納】
$PATH_R = "$selectedFile"
#-----------------------------
 
#******************************
# ■ 確認メッセージ表示
#-----------------------------
Write-Host " "
Write-Host " ※※※ 比較元と比較先のファイルを確認ください ※※※ "
Write-Host " "
pause
 
#******************************
# ■ 出力先パス設定
#-----------------------------
# ## $OUTPUT_Path = [Environment]::GetFolderPath("Desktop")
# ## $OUTPUT_Path = (Get-Location).Path
$OUTPUT_Path = $PSScriptRoot
#-----------------------------
$msgbox.popup("★★★★★ 【WinMerge】出力先を確認ください ★★★★★")
Write-Host "**************************************"
Write-Host "【WinMerge】出力先パス  : $OUTPUT_Path"
 
#******************************
# ■ HTMLパス取得(生成)
#-----------------------------
$HTML_File = "$OUTPUT_Path\File_HTML_$DayTime.html"
Get-ChildItem | Select-Object Name, Length | ConvertTo-Html > $HTML_File
#-----------------------------
Write-Host "【WinMerge】出力HTML名  : $HTML_File"
 
#******************************
# ■ WinMerge 比較実行
#-----------------------------
& $winMerge /r /noninteractive /or $HTML_File $PATH_L $PATH_R
 
  #******************************
  # ■ エクセル表示
  #-----------------------------
  # ## Start-Process "excel.exe" $HTML_File
 
#******************************
# ■ WinMerge比較結果を保存する
#-----------------------------
#【EXCELファイル名の設定】
$EXCEL_File = "$OUTPUT_Path\File_Excel_$DayTime.xlsx"
Write-Host "【WinMerge】出力EXCEL名 : $EXCEL_File"
Write-Host "**************************************"
Write-Host " "
pause
 
#-----------------------------
#【EXCEL オブジェクト生成】
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false
 
#-----------------------------
#【EXCEL ファイル保存処理】
try {
  $workbook = $excel.Workbooks.Open($HTML_File)
  $fileFormat = 51
  $workbook.SaveAs($EXCEL_File,$fileFormat)
  Write-Host " "
  Write-Host "【*** Excelファイル保存完了 ***】 $EXCEL_File" -ForegroundColor Green
  Write-Host " "
}
catch {
  Write-Host " "
  Write-Error "【*** ERROR ***】 : $_" -ForegroundColor Red
  Write-Host " "
}
 
#-----------------------------
#【EXCEL オブジェクト解放】
finally {
  if ($workbook) { $workbook.Close($false) }
  $excel.Quit()
  [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null
  Remove-Variable excel
}

【LinuC-3 304試験 バージョン2.0 合格】

【報告】
 ・2026/03/14(土)
  LinuCレベル3 304 Virtualization & High Availability 合格
   
 
【得点】
 ・600点(合格ライン 520点)
 
【感想】
 ・よく分からん内容を問われる試験問題だった
 ・以下だけは覚えておくと点数稼げるかも
   稼働率(可用性)を求める以下の計算式
     MTBF÷(MTBF+MTTR)
   ※仮想化技術とは直接関係ないけど重要な知識
 
【その他】
 ・次は考え中・・・
 
【試験に役立つアドバイス】
 ・参考書籍はLinuC用が見つからず、LPICで代用
 ・Ping-t サイトで演習しまくる

【仮想】保存/復元コマンド

#*****************************
# 仮想マシン 保存&復元
#*****************************
xl save          (停止して保存)
xl restore      (復元して起動)
#-----------------------------
virsh save     (停止して保存)
virsh restore (復元して起動)
 
#*****************************
# 仮想マシン スナップショット
#*****************************
virsh snapshot-create-as(作成)
virsh snapshot-revert      (復元
virsh snapshot-delete     (削除)
virsh snapshot-list           (一覧)
#-----------------------------
QEMUモニタコマンド savevm (作成)
QEMUモニタコマンド loadvm  (適用)

【仮想】接続/実行コマンド

#*****************************
# 仮想マシン 接続
#*****************************
xl console       (コンソール接続)
#-----------------------------
virsh console  (コンソール接続)
#-----------------------------
vagrant ssh     (SSH接続)
 
#*****************************
# コンテナ 接続
#*****************************
lxc-console    (コンソール接続)
#-----------------------------
vzctl console  (コンソール接続)
vzctl enter      (コンテナ接続)
vzctl exec       (実行)
vzctl exec2     (実行[戻り値])
#-----------------------------
docker attach (コンソール接続)

【仮想】表示コマンド

#*****************************
# 仮想マシン 一覧表示(情報)
#*****************************
xl list
xl info
xl top          (xentopと同じ)
xl vcpu-list   (仮想CPU情報)
xl block-list  (ブロックデバイス情報)
#-----------------------------
virsh list
virsh dominfo   (ドメイン情報)
virsh vcpuinfo  (仮想CPU情報)
virsh net-list  (ネットワーク情報)
virsh vol-list  (ボリューム情報)
virsh pool-list (プール情報)
#-----------------------------
vagrant status  (状態表示)
 
#*****************************
# コンテナ 一覧表示(情報)
#*****************************
lxc-ls
lxc-info
#-----------------------------
vzctl status
#-----------------------------
docker ps
docker info

更新日付

05 2026/06 07
S M T W T F S
1 2 3 4 5
8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

RECOMMEND

プロフィール

HN:
Account
HP:
性別:
非公開
職業:
--- NODATA ---
趣味:
--- NODATA ---
自己紹介:
◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

リンク

次のページ>>
Copyright ©  -- LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例 --  All Rights Reserved
Design by CriCri / Photo by Melonenmann / powered by NINJA TOOLS / 忍者ブログ / [PR]