#author("2021-06-06T15:52:58+09:00","default:dramsukohome","dramsukohome")
[[FrontPage]]

#shadowheader(1,Linux Common);
#shadowheader(2,目次);

#contents




* Linux_Common [#h2e539f9]



** コマンド メモ [#daaf4bf8]


*** ファイルシステム [#ecc15e6a]
- 強制 umount
 sudo umount -l ディレクトリ
- 全てmount [#ua2f8bc5]
 sudo mount -a
- ext4 フォーマット [#d6df1d57]
 mkfs.ext4
- HDD、パーティションラベル [#zbb73ab2]
 e2label|
--単体でラベル確認。引数でラベル設定)
- ファイルシステムの修復
 e2fsck -c /dev/sda1
-- e2fsck: Cannot continue, aborting.
 e2fsck -nf /dev/sda1


*** 映像 [#h2799992]
-ffmepg マルチコア対応オプション
 -threads 8


*** テキスト [#r34e2a69]
- Sort
 sort -t: -k3 -n  /etc/group
- nl 行番号を付与する
 nl [ オプション ] [ ファイル名 ]
|オプション|内容|h
|-h<形式>|指定した形式でヘッダに行番号を付加する|
|-b<形式>|指定した形式で本文に行番号を付加する|
|-f<形式>|指定した形式でフッタに行番号を付加する|
~
|形式|内容|h
|a|全ての行|
|t|空白以外の行|
|n|行番号を付加しない|
-- 論理テキストの表記方法
|\:\:\:|ヘッダの開始を意味する行|
|\:\:|本文の開始を意味する行|
|\:|フッタの開始を意味する|
-- 例
 nl -ha -bt -fn sample.txt
-grep
--含まれる文字列を指定したファイル検索,含む
---方法1
 find ./ -name "*.*" |  xargs grep -n "hoge"
---方法2
 find ./ -name "*.*" |  xargs -I{} grep -n "hoge" {}
--文字列が含まれない行を検索
 grep searchChar  | grep -v noExistsChar
-tail -f
-- less で同じ機能を実現する
 less +F
-- tail モードとの切り替え
 Shift + f (大文字F)
-- less モードへ
 ctrl + c


*** システム監視、top [#o6d0a6f0]
- top(CPU使用率など)
- iotop (ディスクのIO監視)
-- yum install iotop
- iftop (ネットワーク監視)
-- CentOS install
--- epel repository の追加
>最新バージョンの確認~
>・[[http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/]]
<
・epel-release-6-8.noarch.rpm を探し、wget で引っ張る
>例 wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
<
epel パッケージのインストール
 rpm -ivh epel-release-6-8.noarch.rpm
--- yum install --enablerepo=epel iftop


*** ターミナルマルチプレクサー(tmux) [#q477635c]
ssh などリモートでログインしている時のセッションを保持する。~
作業中、ネットワークが切断されたりターミナルがブチ切れした時も~
続きから作業が行える~
- 参考:[[tmuxチートシート(Qiita サイト):http://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b]]
- 参考:[[tmux基本のコマンド(nato's memo サイト):http://room6933.com/tmux/tmux-basic.html]]
- install
-- ubuntu
 sudo apt-get install tmux
-- centos
 sudo yum install epel-release
 sudo yum install tmux
- .bashrc の記述内容
 # 初回シェル時のみ tmux実行
 if [ $SHLVL = 1 ]; then
    tmux
 fi
- tmux を実行し tmux モードへ
-- tmux &color(green,){(Enter)};
-- ショートカット:C-b c
- 前回セッションの復帰
--tmux attach &color(green,){(Enter)};
--tmux a
 ショートカット:無し
- その他コマンド
-- 新規セッション開始
--- ショートカット:C-b c
-- セッション名変更
--- ショートカット:C-b ,
-- ウィンドウ一覧表示/移動¶
--- ショートカット:C-b w
--前/次のウィンドウ移動
--- ショートカット:C-b p
--- ショートカット:C-b n
--最後に操作したウィンドウへ移動
--- C-b l
--指定したウィンドウへ移動
--- C-b ウィンドウ番号
--ウィンドウを強制終了¶
--- C-b &
--ペイン分割
--- C-b "
--- C-b %
--ペイン分割解除
---C-b !
--ペイン強制終了
---C-b x
--ペイン間移動
---C-b o
--ペインを入れ替え
---C-b {
--セッションの確認
---tmux list-sessions
---tmux ls
--デタッチ¶
---C-b d
--アタッチ
---tmux attach
---tmux a
---tmux attach -t 0
--セッションの名前変更
---tmux rename-session -t 0 hoge
---tmux rename -t 0 hoge
--ウィンドウ配置の変更
---C-b Space
--コピーモードの使い方¶
---コピーモードに入る。
 C-b [
-- 名前をつけて新規セッション開始
 tmux new -s <セッション名>
-- セッションの一覧表示
 tmux ls
-- 接続クライアントの一覧表示
 tmux lsc
-- セッションを再開 ※-t <対象セッション名>でセッション名の指定も可能
 tmux a
 tmux a -t testSession
-- セッションを終了 ※-t <対象セッション名>でセッション名の指定も可能
 tmux kill-session
 tmux kill-session -t testSession
-- tmux全体を終了
 tmux kill-server
-- その他コマンドを実行
 tmux [command [flags]]


*** sudo で adduser や sbin コマンドを使えない [#v1904084]
- パスが通っていない
- 以下のコマンドを実効化 .bashrc に追記
 export PATH=$PATH:/usr/sbin/


*** 1つ前のディレクトリに戻る [#rcf5e8ea]
 cd -


*** iso ファイルをマウントする [#icf1709b]
 mount -o loop -t iso9660 isoファイル マウントするディレクトリ


*** DVD,CD-ROMからISOファイルを作成する。 [#cb7bfa3c]
-コマンド
 dd if=[デバイス] of=[isoイメージ名].iso
-例(DVDでもCD-ROMの指定で大体大丈夫です)
 dd if=/dev/cdrom of=/tmp/dvd.iso


*** Cronで定期実行をずらす [#w2b4e1f2]
-例(5, 15, 25,... 55)。多分(笑)
 5-55/10  *     * * *   root    "/root/sh/chmodBus.sh"
-1分、6分、11分、……、56分
 1-56/5 * * * * user command


*** 特定のファイルやディレクトリを除いてコピー [#ofedca20]
-rsyncを使う
-option
 --exclude=""
-例
 rsync -avr --exclude='hogehoge.hoge' /home/hoge/  /home/temp/


*** ファイル名の一括変更(正規表現) [#k0edfdf4]
-参考サイト
--[[正規表現やワイルドカードでファイル名を一括変換する:https://www.greptips.com/posts/813/]]
--[[サルにもわかる正規表現入門:https://userweb.mnet.ne.jp/nakama/]]
-やりたい事など
--Ubuntu18.04で実行
--正規表現で表した規則に則ってファイル名を変更したい。
--最初の14桁の数字は変わる。
--具体的には以下な感じ。
---変更前
>
-20181104165305-雑誌名-2016-11.pdf
-20181104165524-雑誌名-2016-12.pdf
<
---変更後
>
-雑誌名_2016-11.pdf
-雑誌名_2016-12.pdf
<
-以下のコマンドでできました。
-テスト・コマンド(ちゃんと変換できるか確認)
 for org in `find ./ -maxdepth 1 -name "201811*" -printf '%f\n'`
 do
   replaced=`echo ${org} | sed -e 's/201811........-雑誌名-/雑誌名_/g'`
   echo ${org}
   echo ${replaced}
 done
-本番(ファイル名変更)コマンド
 for org in `find ./ -maxdepth 1  -name "201811*" -printf '%f\n'`
 do
   replaced=`echo ${org} | sed -e 's/201811........-雑誌名-/雑誌名_/g'`
   mv ${org} ${replaced}
 done
-スペースが含まれるとうまく変更できないので、rename コマンドも併用。
--こんな感じ。
 rename "s/ /-/" 2008*.pdf


*** ハードウェアの情報を表示する,Hardware [#ef9abbc4]
-参考
--[[(外部サイト) Qiita-Linuxでコマンドラインからマシンスペックを確認する方法:https://qiita.com/DaisukeMiyamoto/items/98ef077ddf44b5727c29]]
-CPU
 cat /proc/cpuinfo
-Memory
 cat /proc/meminfo
 sudo dmidecode -t memory
-マザーボード,Mother board
 sudo dmidecode -t baseboard
-グラフィック・カード,グラボ,Graphic board,
 lspci | grep VGA
-- nVidiaの場合
 nvidia-smi
-ハードディスク,HDD,Hard disk,
-- mount point
 df -h
-- disk 情報。ディスク,
 sudo parted -l
-Networkカード, ネットワーク・カード,
 lspci | grep Ethernet
-OS
--Kernelバージョン, カーネル,
 uname -a
--ディストリビューションのバージョン
---Ubuntu
 lsb_release -r
 cat /etc/lsb-release
---RedHat,CentOS,AlmaLinux,
 cat /etc/redhat-release


*** Intel CPUのTurbo boost関連 [#cf6c4706]
-Ubuntu
--[[参考サイト(UbuntuでIntel Turbo Boostを無効にする):https://www.it-swarm-ja.com/ja/cpu/ubuntu%E3%81%A7intel-turbo-boost%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B/961367435/]]
--必要ソフトのインストール
 udo apt-get install msr-tools
--必要moduleのロード
 sudo modprobe msr
-- 状態の表示(pの後ろがCPU番号。以下は例で1)
 rdmsr -p1 0x1a0 -f 38:38
---1=disabled
---0=enabled
-- CPUコア番号の取得
 cat /proc/cpuinfo | grep processor
-- Turbo boost の無効化(p の後ろはCPU番号なのでCPU番号分繰り返す)
 wrmsr -p0 0x1a0 0x4000850089
-- Turbo boost の有効化(p の後ろはCPU番号なのでCPU番号分繰り返す)
 wrmsr -p0 0x1a0 0x850089
-Redhat, CentOS, AlmaLinux


*** ホスト名(コンピュータ名)の変更方法(コマンド,CUI) [#b9a163cb]
-Ubuntu,CnetOS,AlmaLinux 共通
--sudo hostnamectl set-hostname 新しいホスト名
--例
 sudo hostnamectl set-hostname hogeComputer.domain.jp


*** その他 [#j121d922]
+ ls でサイズ順にソートする
 ls -S
+ pingコマンドの出力結果にタイムスタンプを付与する
 ping 8.8.8.8 | xargs -L 1 -I '{}' date '+[%Y/%m/%d %H:%M:%S] {}'
-- nohup する場合は ` でくくる
 nohup `ping 8.8.8.8 | xargs -L 1 -I '{}' date '+[%Y/%m/%d %H:%M:%S] {}'`
+ export した環境変数を削除する。
 unset http_proxy
export http_proxy="" では削除されないので注意
+ ファイルの合計容量を取得
 du -bhc ~/*.pdf


 
** 圧縮・解凍 [#d4757f19]


*** tar.gz [#uaf9718d]
- tar xzfv filename.tar.gz


*** tar.bz2、tbz [#e8c62d38]
- bzip2 -dc filename | tar xvf -


*** .gz [#g2935482]
- gunzip ファイル名



** Network [#z0d41ff0]


*** ubuntu、network_設定 [#sd14fb1c]
+ 設定方法1
-- dns-nameservers を利用可にする。
--- sudo apt-get install resolvconf
-- Network 情報の記述
--- sudo vi /etc/network/interfaces
--- 下記を追加
 auto lo
 iface lo inet loopback
 
 auto eth0
 iface eth0 inet static
 address 192.168.1.43
 network 192.168.1.0
 netmask 255.255.255.0
 broadcast 192.168.1.255
 gateway 192.168.1.1
 dns-nameservers 192.168.1.37 192.168.1.35 192.168.1.1
 
 auto eth1
 iface eth1 inet dhcp
-- リゾルバ(resolv.con)の設定
--- sudo vi /etc/resolv.conf
 nameserver 192.168.1.37
 nameserver 192.168.1.35
 search tar3.net
-- network-manager の無効化
 #インストール
 sudo aptitude -y install sysv-rc-conf
 
 #切り替え
 sudo sysv-rc-conf network-manager off
 sudo sysv-rc-conf networking on
-- network-manager のアンインストール
 sudo apt-get remove network-manager
-- network の再起動
 sudo /etc/init.d/networking restart
-- network の再起動2
 sudo ifdown eth0
 sudo ifup eth0
 sudo ifdown eth1
 sudo ifup eth1
+ 設定方法2
-- 複数の場合はスペース区切り
 sudo vi /etc/resolvconf/resolv.conf.d/base
 nameserver 192.168.11.1 192.168.11.2
-- 設定の反映
 sudo resolvconf -u
-- 確認
 cat /etc/resolv.conf


*** CentOS,RedHat Network 設定 [#c5efe19e]
-sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE=eth0
 BOOTPROTO=static
 ONBOOT=yes
 NM_CONTROLLED=no
 
 IPADDR=192.168.1.29
 NETMASK=255.255.255.0
 GATEWAY=192.168.1.1
- リゾルバ設定
-- sudo vi /etc/resolv.conf
 nameserver 192.168.12.12
 nameserver 192.168.11.11
 search tar3.net
- network の再起動
 sudo /etc/init.d/networking restart
- network の再起動2
 sudo ifdown eth0
 sudo ifup eth0


*** /etc/resolv.conf が元に戻ってしまう [#i480b6bb]
- 以下を編集
 sudo vi /etc/resolvconf/resolv.conf.d/base 
- 追加
 nameserver 192.168.1.1
 nameserver 192.168.1.2
 search tar3.net
※自分の環境ではこれをやっても resolv.conf が~
勝手に書き換わってしまうので、結局上記の~
network-manager をやめて /etc/network/interfaces からの~
/etc/init.d/networking へ。~
さらに、/etc/init.d/networking restart で設定が反映されず~
 sudo ifdown eth0 && sudo ifup eth0
で設定を反映させました。。。


*** nextdns [#c5685afe]
- [[nextdns]]



** Linux ディストリビューション distribution [#vdd9d2f4]


*** Debian 系 [#s79b3911]
+ Debian
-- Linux ディストリビューションの中でもかなり老舗
-- Ubuntu よりシンプルな構造で軽量。
-- パッケージ管理システムは apt
+ Ubuntu
-- デスクトップ用途に向いているDebianベースのディストリビューション。
--- デバイスドライバが豊富で、ハードウェアは大体認識する。
-- 2年に一度、LTS(Long time support)、半年に一度のバージョンアップが行われる。
--- LTS のサポート期間は確か5年。
-- パッケージ管理システムは apt
+ WattOS
-- Debian ベースのディストリビューション。
-- 省電力に特化。TLPなどを用いながら省電力化。
+ Kali Linux
-- Debian ベースのディストリビューション。
-- サーバーに潜む脆弱性の発見に特化。
-- パッケージ管理システムは apt


*** Redhat 系 [#y2deeadb]
+ CentOS
-- 有名な有償 Linux ディストリビューション RedHat のコピーOS
-- 無料
-- ほぼ RedHat のフル機能が使用可能
-- パッケージ管理システムは yum
+ Fedora
-- RedHat の実験的機能が実装された無償ディストリビューション。
-- 無料
-- かなり頻繁に更新される模様。
-- パッケージ管理システムは yum
*** その他 [#r3fc36b4]
+ Puppy Linux
-- 軽量Linux の代表格
-- 独自のシステムでパッケージ管理も独自。



** その他 [#g1a484b9]


*** タイムスタンプ [#x785427b]
- [[参考サイト:http://x68000.q-e-d.net/~68user/unix/pickup?%A5%BF%A5%A4%A5%E0%A5%B9%A5%BF%A5%F3%A5%D7]]
- UNIXファイルのタイムスタンプは以下の3つ。
|タイムスタンプ名|説明|参照コマンド|h
|atime|最終アクセス時刻 (access time)|ls -lu|
|mtime|最終変更時刻 (modify time)|ls -l|
|ctime|最終ステータス変更時刻 (change time)|ls -lc|


***ubuntu版chkconfig [#h90729d1]
 sudo apt-get install sysv-rc-conf
 sudo sysv-rc-conf networking on


***ユーザー、グループ管理 [#t9a8402f]
-[[ユーザー、グループ管理]]~


*** Ubuntu LTS upgrade [#t973e919]
 sudo do-release-upgrade


*** ファイルがあり実行権限があるのに「そのようなファイルやディレクトリはありません」「No such file or directory」と表示される [#x5a80c1d]
- 32bitアプリ、64bitアプリが合ってない可能性がある


*** ubuntu, /boot 容量削減, kernel削除 [#r3dc2a10]
-参考(外部):[[古いカーネルの削除方法メモ:https://qiita.com/ytkumasan/items/d6cc70f151f130d58e9b]]
- 現在のカーネルバージョンを確認
 uname -r
- インストールされているカーネルを確認
 dpkg --get-selections | grep linux-
- 削除(複数選択可能)
 sudo apt-get autoremove --purge linux-headers-3.13.0-{65,67,71}
- きちんと消えなければimageを削除
 sudo apt-get autoremove --purge linux-image-3.13.0-{65,67,71}


*** プロセス名でgrepした結果をkillする [#t9464957]
-[[参考(外部サイト),プロセス名でgrepした結果をkillするシェルスクリプトを作る(Qiita):https://qiita.com/masarufuruya/items/409679c1006980ef1b60]]
-コマンド
 ps aux | grep [プロセス名] | grep -v grep | awk '{ print "kill -9", $2 }' | sh


*** find の結果でpermissionを表示する。 [#ha723256]
- -lsを付ける。
- 例
 find ./ -type f -name *.js -ls


*** yum,Error: Multilib version problems found. [#q8cc8446]
-以下のオプションを付けて実行
 --setopt=protected_multilib=false
-例
 yum update --setopt=protected_multilib=false


*** dpkg-divert: エラー: パッケージの不整合です [#d7a29948]
-結構はまったのですが、退避ファイルに関するパッケージの不整合。
-エラーは以下な感じ。
 dpkg-divert: エラー: パッケージの不整合です
   `libnvidia-gl-460 による /usr/lib/i386-linux-gnu/libEGL.so の退避 (divert)' の削除中に
   `nvidia-340 による /usr/lib/i386-linux-gnu/libEGL.so から /usr/lib/i386-linux-gnu/libEGL.so.distrib への退避 (divert)' を発見しました
 dpkg: アーカイブ /var/cache/apt/archives/libnvidia-gl-460_460.73.01-0ubuntu0.18.04.1_i386.deb の処理中にエラーが発生しました (--unpack):
  new libnvidia-gl-460:i386 package pre-installation script subprocess returned 
 error exit status 2
 処理中にエラーが発生しました:
 /var/cache/apt/archives/libnvidia-gl-460_460.73.01-0ubuntu0.18.04.1_i386.deb
 E: Sub-process /usr/bin/dpkg returned an error code (1)
-注目するのは以下の部分。
 /usr/lib/i386-linux-gnu/libEGL.so
-distribファイルを以下のコマンドで根気良く削除していきます。~
同じようなPathやファイルが有るので出来ればコピペした方が良いかも。。。
 sudo dpkg-divert --rename --remove /usr/lib/i386-linux-gnu/libEGL.so
-少しずつ削除していきますが、以下のエラーも出ます。
 'nvidia-340 による /usr/lib/i386-linux-gnu/libGL.so.1 から /usr/lib/i386-linux-gnu/libGL.so.1.distrib への退避 (divert)' を削除しています
 dpkg-divert: エラー: 名前変更は `/usr/lib/i386-linux-gnu/libGL.so.1' を異なるファイル `/usr/lib/i386-linux-gnu/libGL.so.1.distrib' で上書きすることを伴います。
 これは許可されていません。
--この場合は、distribファイルを手動で削除して再度コマンドをsudo dpkg-divert コマンドを実行しました。
-ちなみに以下のコマンドとセットで少しずつ進めました。
 sudo apt --fix-broken install


***省電力 [#cb1008ed]
-Redhat, CentOS, AlmaLinux
--関連ソフトのインストール
 yum install powertop
--powertopの簡単な使い方
---実行
 sudo powertop
---Tabで上のタブが切り替わります。
---良く使うのが「Overview」と「Device stats」
---「Tunables」は取りあえず全部「Good」に切り替えてOK。
---ESCキーで powertop を終了させることができます。
---自動設定
 sudo powertop --auto-tune

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS