#author("2019-06-15T09:08:41+09:00","default:dramsukohome","dramsukohome")
#author("2020-04-18T21:05:39+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ファイル マウントするディレクトリ

*** その他 [#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


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