- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-08-20T18:52:27+09:00","default:dramsukohome","dramsukohome")
#author("2020-10-13T08:42:33+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
*** その他 [#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