#author("2022-02-08T11:46:27+09:00","default:kouzouken","kouzouken")
#contents
コマンド系の話はこっちに書いていこう。

*一般ユーザー向け [#s6c1a53e]
**ディレクトリを削除 [#tc0c906d]
中身のはいっているディレクトリを削除する場合は、rm -r で中まで再帰的に削除。

**ディレクトリごとコピー(cpとrsyncの使い方) [#r8b1af1e]
~/aaaの中のbbbというディレクトリを、ディレクトリごと、~/cccの中に移動したい場合、

 $ cp -r ~/aaa/bbb ~/ccc/

変更されたファイルだけを上書きした場合は、rsyncを使う。

 $ rsync -auv ~/aaa/bbb ~/ccc/

./aaaを中身ごと./bbbという名前に変えて./bbbにコピーしたい場合
 $ rsync -auv ./aaa/ ./bbb
もしこれを
 $ rsync -auv ./aaa ./bbb
としてしまうと、./bbbの中に./bbb/aaaとコピーされてしまう。

**~(チルダ)ファイルとかswpファイルの扱い方 [#qf3394ad]
[[わかりやすいのみつけたので:http://nanasi.jp/articles/howto/file/seemingly-unneeded-file.html]]
**chmodで属性変更 [#v59cf72a]
-スクリプトなどに実行属性を与えたいなら、chmod 744 hoge 
-メディアからコピーして実行属性がついてしまったファイルを通常の属性にしたいなら chmod 644 hoge
chmod ijk hogeの意味は、
iは自分に対して、jはグループに対して、kは他人に対して、
4なら読める、5なら読みと実行ができる、6なら読み書きできる、7なら読み書き実行ができる。

**lsで秒単位まで表示 [#a05e434a]
1年以上前のファイルは、日時までしか表示されなくなってしまうのが、以下のようにすれば、秒まで表示できる。
ls -l --full-time


**nkf(文字コード変換、改行コード変換) [#nbc609fd]
-文字コードをeucに変換するなら、nkf -e hoge.s > hoge.e
-改行コードをLFに変換するなら、nkf -Lu hoge.cr > hoge.lf
-両方同時にやるなら、nkf -e -Lu hoge.win > hoge.linux 
-文字コードを調べる nkf -guess hoge.txt
-ディレクトリ内文字コードの一括変換:find . -type f -print0 | xargs -0 nkf -w --overwrite
--http://d.hatena.ne.jp/tera3_acc/20080627/1214554353

**kcc(文字コードを調べる) [#i6fca019]
文字コードを調べるには、kcc -c hoge
**hexdump(改行コードを調べる) [#bf030a17]
改行コードを調べるには、hexdump -c hogeとやって、
出力に\r\nが入ってるか、\nだけか。 

**cat(ファイルの追加、結合) [#qb5379f4]
-ファイルaをファイルbに追加: cat a>>b
-ファイルa,bを結合してcに: cat a b>c

**tar [#l0d7e0a7]
-hoge.tar.gzを展開するには
tar xvzf hoge.tar.gz
-ディレクトリをまとめて.tarアーカイブファイルを作るには、
tar -cvf hoge.tar dir/

画像ファイルやオフィスファイルなど、既に圧縮されてるファイルは
更に圧縮しても、サイズは小さくならない。

-hoge.tarを展開するには、tar -xf hoge.tar

-ディレクトリごと圧縮して.tar.gzアーカイブファイルを作るには、
tar -cvzf hoge.tar.gz dir/
**grepで文字列を有すファイル検索 [#u8600d46]
カレントディレクトリーの中から「あいうえお」という文字列を有するファイルを
探すには、
grep -lr あいうえお ./

**zipでファイルを圧縮 [#wf2bb356]
例えば、hoge.txtをhoge.zipに圧縮。
 zip hoge hoge.txt
ディレクトリ内の全ての*.txtの場合は、
 zip hoge *.txt


**zipでディレクトリごと圧縮 [#oaa894b1]

 zip -r hoge.zip hoge/*

**zipでパスワードを設定 [#dbba6475]
 zip -e --password=xxxx hoge *.txt

**unzipで文字コードをsjis指定して展開 [#n0ed7fa8]

 unzip -Ocp932 hoge.zip 


**bz2を展開 [#x9fa37ec]

 bzip2 -d hoge.bz2


**IPアドレス、MACアドレスを見る [#p4982e61]
IPアドレス、MACアドレス等を見るには、/sbin/ifconfig
**メモリ容量やCPU情報を調べる [#dd84631d]
-メモリ容量などの情報はmore /proc/meminfo
-CPU情報はmore /proc/cpuinfo



**ディレクトリ内のすべてに同じコマンドを実行(再帰的に実行) [#g03a1c4d]
サブディレクトリも含めてディレクトリ内のすべてのファイルの文字コードを変換するとか、
パーミッションやオーナーを一括変更するとか、したいときは、-Rのオプションをつけてコマンドを実行する。

**locateデータベースの更新 [#p05f7d1e]
locate用のデータベースの更新はrootになってupdatedb

**kccで文字コードを調べる [#zce7d611]
ファイルの文字コードを調べたいときは kcc -c hoge

**nkfで文字コードを調べる [#r6a69adb]

 nkf -guess ファイル名


**rsyncでk2のファイルをローカルのパソコンにダウンロード [#f5ab3a88]

k2のgotouの中にあるhogeというファイルを自分のパソコンの今いるディレクト(./)に
コピーするなら、
 rsync -auv gotou@k2.ce.akita-u.ac.jp:/home/gotou/hoge ./


**rsyncでk2にバックアップ [#fa07178b]
例えば、自分のパソコンの~/2018/gotou/の中にあるtexというディレクトリーをディレクトリーごと、
k2の/home/gakusei/2018/gotou/の中にバックアップ


 rsync -auv ./2018/gotou/tex gotou@k2.ce.akita-u.ac.jp:/home/gakusei/2018/gotou/


**extundeleteで消えたファイルを復元 [#od2b047c]
ある時刻以降に削除したファイルを復元する場合

 $ date --date='2020-01-14 19:00' '+%s'
 $ sudo extundelete /dev/sda2 --after `date --date='2020-01-14 19:00' '+%s'`

恐らく、~/RECOVERED_FILES 辺りに復元されるらしいが、保存場所の変更もできるらしい。
-http://exlight.net/linux/extundelete/index.html



**Sedで文字置換 [#z274b9f7]
-http://ja.wikipedia.org/wiki/Sed_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29
例えば、学務の成績ファイルの科目コード番号を科目名に置換したい場合は、hoge.sed
というファイルに

 s/1234/構造力学/g
 s/1235/水理学/g
 s/1236/材料力学/g

と書いておいて、

 sed -f hoge.sed seiseki.mae > seiseki.ato 

を実行。

**ディレクトリ内のすべてのファイルの文字置換 [#xeeb17e2]

 find ./ -type f | xargs sed -i "s/hoge/hage/g"



**ディレクトリ内のファイル名を一括で置換 [#s27495fe]
例えば、デジカメの画像ファイルdscn0001.jpgのdscnの部分を全てgに変えたいとか。

 for a in dscn*; do mv $a `echo $a | sed s/dscn/g/g` ; done


**ハードディスクの残り容量を表示 [#f7b3871e]

 df -h

**特定ディレクトリの使用容量を表示 [#acaeb6e4]

 du -h 

**ディレクトリ中のファイルサイズの合計を表示 [#s4880ffc]
-[[ディレクトリ中のファイルサイズ合計値を バイト表示:http://sonic64.com/2004-05-26.html]]
これは便利。fsみたいなコマンドにして、/usr/bin 辺りに入れておくか。

**ジョブを途中からバックグラウンドに切替える [#vf007c83]
バッチファイルを走らせるときに&を付け忘れてしまった場合など、
ジョブを途中からバックグラウンドで走るように切替えたい場合は、

 controlキー + z でジョブを一時停止 ( [1]+ stopped    hoge と表示される)

 $ jobs                            走っているジョブを確認

 [1]+ stopped    hoge

 $bg %1                  %の後の 1 は、上の[1]の1

 $jobs
 [1]- Running     hoge &           『&』がついて、 バックグラウンドジョブに



**vi小技(箱選択、改行コード変換) [#sa5560c3]
-viで箱選択(矩形選択)するには、cntl+vを押してから箱選択すればよい。
これでMifes for Linuxを買う必要はなくなった。
-windowsで作成された\r\nの改行コードのファイルをviで開くと改行位置に
^Mが表示されて目障りなのを消すには、:%s/\r として、\rを置換して消去。
http://www.rfs.jp/sitebuilder/perl/02/09.html
-viで改行コードを変えるには :set fileformat="unix"
http://gmax.whitesnow.jp/C810822235/E1046815546/index.html
-http://ogawa.s18.xrea.com/fswiki/wiki.cgi?page=Vim%A4%CE%A5%E1%A5%E2

**コマンドラインでviのキー操作が使えるようにする [#u34dcaa8]
-http://www.atmarkit.co.jp/flinux/rensai/linuxtips/307bashkyebind.html
ターミナルを開いて、set -o vi と打つと、
例えば、ESCキーを押してからviの編集モードみたいにhlで左右に移動したり、
xで削除したりrで置換したりできるようになり、履歴も↓↑の他にjkが使えるようになる。
文字を打ち込むときはiを押して挿入モードにする。/で履歴の検索ができるのも便利。

**isoイメージを作成 [#v4bd94c6]

 mkisofs -r -J -V "hoge" -o hoge.iso hoge


**pdfのパスワード解除 [#e0054c32]

 pdftk hoge.pdf input_pw pasuwaado output hoge-kaizyo.pdf


エラーのあるpdfファイルだとpdftkでは解除できないことがある。
その場合は、qpdfをインストールして、

 qpdf --password=pasuwaado --decrypt hoge.pdf hoge-kaizyo.pdf

-https://texwiki.texjp.org/?QPDF

**pdfのパスワード設定 [#c191af41]

 pdftk hoge.pdf output hoge-yomenai.pdf user_pw pasuwaado


*サーバー管理系 [#z6564483]
**ユーザーの追加 [#q529e7e7]
gotouを追加したい場合、

 adduser gotou

useraddは、ホームディレクトリやシェルやパスワードの設定を自動ではやってくれない。
パスワードが設定されなかったときは、suになって、passwd gotouでパスワードを設定。
ユーザーの削除はuserdel


**atコマンドの使い方 [#tbea4a62]
その日の12:34に何かを実行したいときは、at 12:34 エンターで、
プロンプトが>になったところで実行したいジョブなどを入力し、
ctrl+dでatコマンドを終了。

**atコマンドで予約シャットダウン [#t0e263cf]
例えば、2010年6月7日の23時45分にシャットダウンしたければ、rootになってから、
 at -t 201006072345
 または、
 at 23:45 07.06.10
 または
 at 23:45 06/07/10

で、プロンプトが>になったら、shutdown -h nowでctrl+d

なお、大学の敷地全体を「手形団地全域」というらしいので、
「手形団地全域が停電」という通知があった場合には、予約シャットダウンの
対応をしておく必要がある。


**atコマンドの予約内容の確認 [#kb591a88]
 at -l またはatq で、予約したジョブのジョブ番号を確認し(一つだけなら1)、
 at -c ジョブ番号で確認
 at -r 削除したいジョブ


**apache2 [#h02bd4cf]
-バージョンを調べる/usr/sbin/apache2ctl -v
-再起動/usr/sbin/apache2ctl restart

**.htaccess等のパスワードを生成する [#n163a0ca]

 perl -e 'print crypt("pasuwaado", "AB"), "\n"'

pasuwaadoの部分が、パスワード、ABは、パスワードの最初の2文字。


**nslookup [#x631a261]
DNSのシリアルナンバーを調べる

 nslookup -type=soa hoge.hoge.jp

よりは

 dig hoge.hoge.jp SOA


**DNSサーバーのbindのバージョンを調べる [#n1eb5267]
DNSサーバーにログインしないで、端末から調べるには、

 dig @123.123.123.123 chaos txt version.bind

 123.123.123.123は、DNSのIP

**ftpのログインエラー [#c70c42ce]
パスワードを入れた後に

 530 Login incorrect.
 Login failed.
 Remote system type is UNIX.
 Using binary mode to transfer files.

のエラーでつながらない場合、
サーバー側の/etc/shells内に、

 /bin/bash

を追加。
-http://www.it-folder.com/indexd.php?document=linux_trouble_ftplogin&docdir=2007
-&link(bashのバグだった,http://www.vinelinux.org/errata/6x/20121002-1.html)

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