Last-modified: 2020-07-16 (木) 00:53:56
LinuxTips/チートシート

はじめに

ディストリ依存(Debian,Ubuntu,RHEL,CentOS,...)や、アーキテクチャ依存(x86_64,i386,armel,mips,...)、ログインユーザー依存(root,一般,...)などの場合でも、基本的に注釈はいれません(察してください)

パッケージ(deb)

パッケージ検索

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
apt-cache search "<パッケージ名>"
 
# パッケージ数が多い場合、grepと合わせるのが有用
apt-cache search "clang" | grep "^clang"

パッケージ情報

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
!
-
!
# 簡易
apt-cache policy <パッケージ名>
# 詳細
apt-cache show <パッケージ名>

インストール済みのパッケージ一覧

Everything is expanded.Everything is shortened.
  1
 
dpkg -l

中途半端に入っているパッケージ一覧

Everything is expanded.Everything is shortened.
  1
 
dpkg --audit

パッケージの再インストール

Everything is expanded.Everything is shortened.
  1
 
apt-get install --reinstall <パッケージ名>

パッケージの完全削除

Everything is expanded.Everything is shortened.
  1
 
apt-get --purge autoremove <パッケージ名>

アップグレード可能パッケージ一覧

Everything is expanded.Everything is shortened.
  1
 
apt list --upgradable

パッケージ数の確認

Everything is expanded.Everything is shortened.
  1
 
apt-cache pkgnames | wc -l

開発ツール一式のインストール

Everything is expanded.Everything is shortened.
  1
 
apt-get install build-essential

debファイル

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
-
!
 
-
!
# インストール
dpkg -i <debファイル>
 
# アンインストール
dpkg -r <debパッケージ名>

ユーザー

ログイン無効ユーザ作成

Everything is expanded.Everything is shortened.
  1
  2
-
!
# --gecosまで指定するとサイレントに完了する
adduser --disabled-login --gecos '<フルネーム>' <ユーザー名>

グループ一覧

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
cat /etc/group
 
# フォーマット
グループ名:パスワード:GID:グループメンバ名(カンマ区切り)

グループを追加

Everything is expanded.Everything is shortened.
  1
 
groupadd <グループ名>

補助グループを追加

Everything is expanded.Everything is shortened.
  1
 
usermod -aG <補助グループ(,区切り)> <対象ユーザー>

別ユーザーでbashを操作

Everything is expanded.Everything is shortened.
  1
  2
-
!
# 抜けるにはexit
sudo -u <ユーザー名> bash;

ユーザーを削除

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
-
!
 
userdel -r <ユーザー名>
 
# 削除したいユーザーが起動しているプロセスがあると消せないので、何とかする
ps aux | grep <プロセス名>
kill -9 <プロセスID>

グループを削除

Everything is expanded.Everything is shortened.
  1
 
groupdel <グループ名>

sudo設定

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 
 
 
 
-
!
 
-
!
visudo
 
<ユーザー名/グループ名(先頭に%が必要)> <ホスト(,区切り)>=(<ユーザー(,区切り)>) <実行可能コマンド(,区切り)>
 
#例 piはsudo(パスワード確認なし)で、すべてのコマンドを実行可能
pi ALL=(ALL) NOPASSWD: ALL
 
#この設定が書かれているシステムならば、sudoさせたいユーザーのグループにsudoを追加してもOK(NOPASSWDとかオプションが不要ならば)
%sudo ALL=(ALL) ALL

検索

対象を絞ってgrep検索

ホワイトスペースを含むパスを考慮して、基本的にfindは-print0を付けたほうが良い

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
-
!
-
!
 
-
!
-
!
-
!
-
|
|
!
 
 
-
!
# 方法1
grep "<grepワード>" `find <検索ルート(半角スペース区切りで複数指定可能)> -type f -name "<絞り込みワード>"`
# 方法2
find <検索ルート(半角スペース区切りで複数指定可能)> -type f -name "<絞り込みワード>" | xargs grep "<grepワード>"
 
# 結果としてファイル名のみ返す(シェルスクリプトで有用)
grep -l "<grepワード>"
# 単語単位
grep -w "<grepワード>" ...
# 大文字小文字無視
grep -i "<grepワード>" ...
# 正規表現を使う
# -e:基本正規表現、-E:拡張正規表現、-P:Perlの正規表現
# -eだと最短一致が出来なかったが-Eならできた( Wheezy)
grep -e "<正規表現>"
grep -E "<正規表現>"
grep -P "<正規表現>"
# gzファイルを対象
zgrep "<grepワード>" `find <検索ルート(半角スペース区切りで複数指定可能)> -type f -name "<絞り込みワード>"`

対象を絞って置換

Everything is expanded.Everything is shortened.
  1
 
find <オプション> -type f -print0 | xargs -0 sed -i "s/<置換元文字列>/<置換後文字列>/g"

findオプション

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
-
!
 
-
|
|
|
!
 
-
!
-
!
 
-
!
 
 
-
!
#ユーザーで検索
find . -user <ユーザー名>
 
# タイプで検索
# f:ファイル(シンボリックリンクはヒットしないことに注意)
# d:ディレクトリ
# l:シンボリックリンク
find . -type <タイプ>
 
# 指定した絞り込みワード以外を検索(!の代わりに-notでも可能)
find . ! -name "<絞り込みワード>"
# 例
find . -type f ! -name "*.php"
 
# and, or
find . <条件> -and <条件>
find . <条件> -or <条件>
 
# 直下のディレクトリのみ検索
find . -maxdepth 1 <オプション>

検索結果を使用してコマンドを実行

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
-
!
-
!
 
-
|
!
 
-
|
|
|
|
|
|
!
# 検索結果1件ごとに、コマンドを実行。{}で検索結果を参照。
find <オプション> -exec <コマンド> \;
# 例
find . -type f -name "*.css" -exec echo {} \;
 
# 検索結果全体を一度に渡す場合
# 仮にfindの-printf0オプションを有効にするならば、xargsの-0オプションが必須
find <オプション> | xargs echo
 
# 複雑な例
# *.cssのファイルを個別にminifyして、オリジナルファイルを消す
# 作成するファイル名は、拡張子を除いたオリジナルファイル名+[.min.css]
# -print0:ホワイトスペースを含むパス対策(区切り文字に改行文字を使わずNULLを使う)
# -r:バックスラッシュ無効
# -d <val>:入力の終了を指定(-print0指定したので必須)
# ${file%%.css}:シェル変数展開、%%は最長一致
find . -type f -name "*.css" -print0 | while read -r -d '' file; do uglifycss "$file" > "${file%%.css}".min.css; rm "$file" done

「許可がありません」を無視

Everything is expanded.Everything is shortened.
  1
 
find <パラメータ> 2> /dev/null

ディレクトリ

場所を記憶して移動、記憶した場所に戻る

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
!
-
!
# 現在の場所をディレクトリスタックに積んで移動
pushd <パス>
# ディレクトリスタックからpopして移動(戻る)
popd

メール

アドレスの別名やルーティング

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
 
 
-
!
-
!
vi /etc/aliases
 
# <存在するユーザー名(宛先)>に配達される
<適当な名前(別名)>: <存在するユーザー名(宛先)>
# <存在するユーザー名(宛先)>に配達される
<存在するユーザー名>: <存在するユーザー名(宛先)>

システム

シャットダウン/再起動

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
-
!
 
 
 
-
!
 
# シャットダウン
poweroff
halt -p
shutdown -h now
 
# 再起動
reboot
shutdown -r now

ユニット状態確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
-
!
 
-
!
 
-
!
 
-
!
# システム全体のユニット状態
systemctl status
 
# 特定のユニット状態
systemctl status <ユニット名>
 
# 実行中のユニット一覧
systemctl
 
# 失敗しているユニット一覧
systemctl --failed

デーモンの自動起動をやめる

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
 
 
-
!
-
!
systemctl disable <ユニット名>
 
# 昔のDebian
update-rc.d -f <デーモン名> remove
# 昔のCentOS
chkconfig <デーモン名> off

プロセス

プロセスの中断、再開

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
-
!
 
-
|
!
 
# 中断
[ctrl]+z
 
# 再開
# 中断しているジョブ一覧から、再開したいジョブの番号を見つけてfg
jobs -s
fg %<ジョブの番号>

メモリ使用量の多いプロセスを表示

Everything is expanded.Everything is shortened.
  1
 
ps aux --sort -rss | head

バックグラウンドジョブの実行

Everything is expanded.Everything is shortened.
  1
 
nohup <ジョブ> &

プロセスが使用しているファイルを特定

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
lsof | grep "<プロセス名,ユーザー名,PIDなど>"
 
# PIDで厳密に検索
lsof -p `pgrep -n <プロセス名>`

特定のファイルを使用しているプロセスを特定

Everything is expanded.Everything is shortened.
  1
 
lsof <ファイルパス>

通信しているプロセス一覧

Everything is expanded.Everything is shortened.
  1
 
netstat -lanput

プロセスの強制終了

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
 
-
!
ps aux | grep <プロセス名>
kill -9 <プロセスID>
 
# これでもいけるが、意図しないプロセスを殺さないよう注意
kill -9 `pgrep -n <プロセス名>`

プロセスのメモリマップを表示

Everything is expanded.Everything is shortened.
  1
 
cat /proc/<プロセスID>/maps

圧縮解凍

Linuxでよく使う圧縮解凍コマンド

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
-
!
 
 
-
!
 
-
!
 
 
-
!
# tar.gz
tar zcf <圧縮出力先> <対象パス(半角スペース区切りで複数可)>
tar zxf <解凍対象>
 
# tar.bz2
tar -jxf <解凍対象>
 
# tar(圧縮ではないが)
tar cf <圧縮出力先> <対象パス(半角スペース区切りで複数可)>
tar xf <解凍対象>
 
# zip
unzip <解凍対象>

パイプで圧縮対象を受け取る

Everything is expanded.Everything is shortened.
  1
  2
-
!
# gzip
<何かしらのコマンド> | gzip > <圧縮出力先>

ダウンロード

ファイルとして保存

Everything is expanded.Everything is shortened.
  1
 
curl -O <URI>

認証ありのサイトからのダウンロード

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
-
!
 
 
-
!
 
# パスワードを聞いてくる
wget --user <ユーザー名> --ask-password <URL>
curl -u <ユーザー名> <URL>
 
# パスワードを打ち込む(一応できるがセキュリティ上の理由で使わない)
wget --user <ユーザー名> --password <パスワード> <URI>
curl -u <ユーザー名>:<パスワード> <URI>

証明書の整合性を確認せずに実行

Everything is expanded.Everything is shortened.
  1
  2
  3
-
!
 
# セキュリティ上の理由で通常は使用しない
wget --no-check-certificate <URI>
curl -k <URI>

リファラ、UA付きで実行

Everything is expanded.Everything is shortened.
  1
 
curl -e <リファラ> -A <ユーザーエージェント> <URI>

単純な規則のURLを自動取得

Everything is expanded.Everything is shortened.
  1
  2
-
!
# 例
curl -e http://hoge.com -A "Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 GTB7.1" -O http://hoge.com/[0-100].jpg

手軽にクロール

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
-
|
|
|
|
|
|
|
!
# -r                : 再帰的
# -np               : 親ディレクトリに移動しない
# -A <拡張子,>      : ダウンロードする拡張子を指定
# -R <拡張子,>      : ダウンロードしない拡張子を指定
# -D <ドメイン,>    : ダウンロードするドメインを指定
# -l <階層>         : リンク階層制限
# --user-agent=<val>: ユーザーエージェントを指定
# --referer=<val>   : リファラを指定
wget -r -np -A jpg,png http://hoge.com

手軽にミラーリング

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
|
|
!
# -m               : ミラーリング
# -k               : HTMLリンクを相対パス化
# -p               : HTMLを表示するのに必要なファイルをすべて取得
wget -m -p http://hoge.com

ファイル

改行コードを変更

Everything is expanded.Everything is shortened.
  1
  2
-
!
# 例. *.shの改行コードを\r\nから\nに変更
find . -type f -name "*.sh" | xargs sed -i 's/\r\n/\n/'

変更不可にする

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
-
!
 
-
!
 
-
# 変更不可(rootだろうと)
chattr +i <ファイル>
 
# 変更不可解除
chattr -i <ファイル>
 
# chattr -R +i <ディレクトリ> で再帰

調査

更新されるファイルを読み続ける

Everything is expanded.Everything is shortened.
  1
 
tail -f <ファイルパス>

ファイルタイプを確認

Everything is expanded.Everything is shortened.
  1
 
file <ファイルパス>

バイナリダンプ

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
 
 
-
!
 
-
!
od <ファイルパス>
 
# 5行のみ表示
od <ファイルパス> | head -5
 
# バイト単位で16進数ダンプとASCII表記
od -t x1z -A x <ファイルパス> | head -5

表示可能な文字列を表示

Everything is expanded.Everything is shortened.
  1
 
strings <ファイルパス>

ELF(Executable and Linking Format)を確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
-
!
 
-
!
 
-
!
 
-
!
 
-
!
 
-
!
 
-
!
# ELFヘッダ
readelf -h <ファイルパス>
 
# プログラムヘッダ
readelf -l <ファイルパス>
 
# セクションヘッダ
readelf -S <ファイルパス>
 
# シンボルテーブル
readelf -s <ファイルパス>
 
# リロケーション情報
readelf -r <ファイルパス>
 
# ダイナミックセグメント
readelf -d <ファイルパス>
 
# バージョンセクション
readelf -V <ファイルパス>

共有ライブラリの依存関係を確認

Everything is expanded.Everything is shortened.
  1
 
ldd <ファイルパス>

アセンブラ表示

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
-
|
!
objdump -d <ELFバイナリ>
 
# ソースコード付き
# ビルドオプションに-gが必要
objdump -S -d <ELFバイナリ>

C++シンボルをデマングル

Everything is expanded.Everything is shortened.
  1
  2
 
 
nm --demangle <.oファイルパス>
nm <.oファイルパス> | c++filt

ファイルシステム

ディレクトリのサイズを調べる

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
-
!
 
-
!
# -sで合計サイズのみ表示される
du -s <ディレクトリパス>
 
# 1階層分のディレクトリのサイズが表示される
du -d1 <ディレクトリパス>

swap領域を確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
!
-
!
# Swap:行のtotal列
free -h
# Linux swapとなっている行のBlocks列
fdisk -l

ディスク使用状況を確認

Everything is expanded.Everything is shortened.
  1
 
df -h

ファイルシステムを確認

Everything is expanded.Everything is shortened.
  1
 
df -T

inode状況を確認

Everything is expanded.Everything is shortened.
  1
 
df -i

パーティションテーブルを確認

Everything is expanded.Everything is shortened.
  1
 
fdisk -l

パーティションを作成

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 
-
!
 
-
|
|
|
|
|
fdisk <デバイスパス>
# 例.
fdisk /dev/sdb
 
# pで状態確認
# dでパーティション削除
# nでパーティション作成
# wで保存
# qで保存せずに終了
# mでヘルプ

フォーマット

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
-
!
-
!
 
-
!
-
!
# ext3
mkfs.ext3 <デバイスパス>
# 例.
mkfs.ext3 /dev/sdb1
 
# ext4
mkfs.ext4 <デバイスパス>
# 例.
mkfs.ext4 /dev/sdb1

マウント/アンマウント

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
-
!
 
-
!
 
 
 
# まずマウントしたいデバイスパスとフォーマットを確認
fdisk -l
 
# 例.
mkdir /mnt/foo
mount -t ext3 /dev/sdb1 /mnt/foo
 
umount /mnt/foo

起動時に自動でマウントするデバイスを追加

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
 
 
-
|
|
|
|
!
vi /etc/fstab
 
# 例. 
# <デバイスパス> <マウントポイント> <フォーマット>
# <オプション(defaults:デフォルトオプションセット, noatime:atimeを更新しない)>
# <ダンプするか(0:しない)>
# <fsckによるチェックをするか(0:しない,1:する(ルートシステム),2:する(その他))>
/dev/sda1       /mnt/usb        ext4    defaults,relatime  0       2

ネットワーク

NICを指定して起動,停止

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
-
!
-
!
 
-
!
 
# 起動
ifup <デバイス名>
# 停止
ifdown <デバイス名>
 
# 一括して行うなら
service networking start
service networking stop

リンク状態や対応規格を確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
 
-
!
 
-
!
 
ethtool <デバイス名>
# 結果が不正確なことがあったので、ethtoolのほうが良い 
mii-tool -v <デバイス名>
 
# 例.
ethtool eth0
mii-tool -v eth0

ドライバを確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
ethtool -i <デバイス名>
 
# 例.
ethtool wlan0

無線接続状態の確認

Everything is expanded.Everything is shortened.
  1
  2
  3
 
-
!
iw <デバイス名> info
# 非推奨
iwcnofig <デバイス名>

SSIDをスキャン

Everything is expanded.Everything is shortened.
  1
 
iwlist <デバイス名> scan

MTU確認/変更

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
-
!
 
-
!
 
# 確認
ip addr
ifconfig
# 設定(揮発)
ip link set dev <デバイス名> mtu <MTU値>
ifconfig <デバイス名> mtu <MTU値>

統計情報の表示

Everything is expanded.Everything is shortened.
  1
 
netstat -s

パケットキャプチャ

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
-
!
 
-
!
# 基本
tcpdump host <IP>
 
# ポート指定
tcpdump host <IP> and port <ポート1> or port <ポート2>

名前解決

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
 
-
!
host <名前|IP> <DNSサーバー(省略可能)>
dig <名前|IP> @<DNSサーバー(省略可能)>
 
# クエリタイムの取得
dig <名前|IP> | grep "Query time"

経路の表示

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
-
!
 
-
!
 
-
!
 
-
!
# デフォルトでUDP:53を使う
traceroute <名前|IP>
 
# TCP
traceroute -T -p <ポート> <名前|IP>
 
# UDP
traceroute -U -p <ポート> <名前|IP>
 
# ICMP
traceroute -I <名前|IP>

静的経路の設定

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
!
-
!
# 追加
route add -net <IP|ネットワークアドレス> netmask <サブネットマスク> gw <ゲートウェイアドレス> <デバイス名>
# 削除
route del -net <IP|ネットワークアドレス> netmask <サブネットマスク>

ARPテーブルの表示

Everything is expanded.Everything is shortened.
  1
 
arp

ARPテーブルの値を削除

Everything is expanded.Everything is shortened.
  1
 
arp -d <アドレス(arpで確認できる)>

グローバルIPの確認

Everything is expanded.Everything is shortened.
  1
 
curl inet-ip.info

ブート時のオンライン待ちスキップ

Everything is expanded.Everything is shortened.
  1
  2
  3
-
!
 
# オンラインになるまでブートプロセスをブロックするのをスキップ(Ubuntu18.04)
systemctl disable systemd-networkd-wait-online
systemctl mask systemd-networkd-wait-online

グローバルIPの確認

Everything is expanded.Everything is shortened.
  1
 
curl inet-ip.info

再生/録音のカード/デバイスを確認

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
-
|
!
-
!
 
-
!
# それぞれ、[カード <num>:],[デバイス <num>:]の<num>値が重要(直接指定をする際などで)
# 再生デバイス
aplay -l
# 録音デバイス
arecord -l
 
# 両方(playback:再生, capture:録音)
cat /proc/asound/pcm

デバイス一覧

Everything is expanded.Everything is shortened.
  1
  2
-
!
# 何も指定しないとデフォルトカードのデバイス一覧を表示
amixer -c <カード番号>

音量変更

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
amixer -c <カード番号> set <デバイス名> <音量(%)>
 
# 例.
amixer -c 0 set PCM 90%

ロケール

現在の設定

Everything is expanded.Everything is shortened.
  1
 
locale

設定の変更

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
-
!
 
 
-
|
!
# .bashrcにでも、以下を書いておけばいい
export LANG=ja_JP.UTF8
export LC_ALL=ja_JP.UTF8
 
# 日本語環境が入っていない場合は入れる
# Ubuntuの場合
apt-get install language-pack-ja

環境変数

表示

Everything is expanded.Everything is shortened.
  1
  2
  3
 
 
 
printenv
 
echo $<環境変数名>

一時追加

Everything is expanded.Everything is shortened.
  1
 
env <環境変数名>=<値>

永続追加

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
-
!
 
-
!
 
# システムの環境変数なら
/etc/environment
 
# ユーザーの環境変数なら
~/.profile
~/.bashrc

その他

コマンドの場所を調べる

Everything is expanded.Everything is shortened.
  1
 
which <コマンド>

カーネルソースのダウンロード

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
-
!
 
-
git clone --recursive git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git <clone先パス>
# ミラー
git clone --recursive https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable <clone先パス>
 
# 中身を見たいだけであれば--depth 1を付けると、取得にかかる時間が減って幸せ

ターミナルのクリア

Everything is expanded.Everything is shortened.
  1
 
clear

設定の再読み込み

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
source <実行したいスクリプトパス>
 
# 例
source .bashrc

デスクトップ環境のある状態でテキストモードをデフォルトにする

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
 
 
 
 
 
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="text"
 
sudo update-grub
sudo update-grub2

ddの進捗状況を確認

Everything is expanded.Everything is shortened.
  1
 
while true; do killall -USR1 dd; sleep 2; done

定期実行(監視にも使える)

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
-
!
 
-
!
 
-
|
!
# 2秒間隔で自動実行
watch '<コマンド>'
 
# 指定秒間隔で自動実行
watch -n <秒> '<コマンド>'
 
# 変更箇所がハイライトされる
# 使用するコマンドにもよるだろうが基本的に見づらい
watch -d '<コマンド>'

コマンドの実行時間を調べる

Everything is expanded.Everything is shortened.
  1
 
time -p <コマンド>

ホスト名を変更したい

/etc/hostname, /etc/hostsを変更する

Everything is expanded.Everything is shortened.
  1
  2
-
!
# もしくは
hostnamectl set-hostname <ホスト名>

USBデバイスの一覧

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
lsusb
 
# 絞り込んで詳細表示(バス番号, デバイス番号はlsusbで確認)
lsusb -v -s <バス番号>:<デバイス番号> | less

ハードウェア情報の一覧

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
-
!
lshw
 
# 絞ることも可能
lshw -class processor

PCI接続の一覧

Everything is expanded.Everything is shortened.
  1
 
lspci

ディストリビューションのバージョンを調べる

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
 
 
cat /etc/debian_version
cat /etc/redhat-release
 
lsb_release -a

カーネルのバージョン/CPUアーキテクチャを調べる

Everything is expanded.Everything is shortened.
  1
  2
 
 
uname -a
cat /proc/version

UUIDを生成

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
 
 
 
 
-
|
|
|
apt-get install uuid
 
uuid -v<1|3|4|5>
 
# 1: 時刻+MACアドレス
# 3: 文字列をMD5でハッシュ化した値
# 4: 乱数
# 5: 文字列をSHA1でハッシュ化した値

行数を取得

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
-
!
 
-
!
# -lを付けないと、 <ファイルの行数> <単語数> <バイト数>が表示される
<調査対象> | wc -l
 
# 例
yum list | wc -l

/bootの空き確保

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
-
!
 
-
!
 
 
-
!
 
 
# 現在のカーネル確認
uname -a
 
# 現在の空き確認
df -h
ls -lhA /boot
 
# 不要なカーネル名確認
dpkg -l | grep linux-image
 
apt remove <カーネル名>