コマンド系の話はこっちに書いていこう。

一般ユーザー向け

ディレクトリを削除

中身のはいっているディレクトリを削除する場合は、rm -r で中まで再帰的に削除。

ディレクトリごとコピー

/aaaの中のbbbというディレクトリを、ディレクトリごと、~/cccの中に移動したい場合、

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

./aaaを中身ごと./bbbという名前に変えて./bbbにコピーしたい場合

$ rsync -auv ./aaa/ ./bbb

もしこれを

$ rsync -auv ./aaa ./bbb

としてしまうと、./bbbの中に./bbb/aaaとコピーされてしまう。

~(チルダ)ファイルとかswpファイルの扱い方

わかりやすいのみつけたので

chmodで属性変更

  • スクリプトなどに実行属性を与えたいなら、chmod 744 hoge
  • メディアからコピーして実行属性がついてしまったファイルを通常の属性にしたいなら chmod 644 hoge chmod ijk hogeの意味は、 iは自分に対して、jはグループに対して、kは他人に対して、 4なら読める、5なら読みと実行ができる、6なら読み書きできる、7なら読み書き実行ができる。

lsで秒単位まで表示

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

nkf(文字コード変換、改行コード変換)

  • 文字コードを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

kcc(文字コードを調べる)

文字コードを調べるには、kcc -c hoge

hexdump(改行コードを調べる)

改行コードを調べるには、hexdump -c hogeとやって、 出力に\r\nが入ってるか、\nだけか。

cat(ファイルの追加、結合)

  • ファイルaをファイルbに追加: cat a>>b
  • ファイルa,bを結合してcに: cat a b>c

tar

  • 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で文字列を有すファイル検索

カレントディレクトリーの中から「あいうえお」という文字列を有するファイルを 探すには、 grep -lr あいうえお ./

zipでファイルを圧縮

例えば、hoge.txtをhoge.zipに圧縮。

zip hoge hoge.txt

ディレクトリ内の全ての*.txtの場合は、

zip hoge *.txt

zipでディレクトリごと圧縮

zip -r hoge.zip hoge/*

zipでパスワードを設定

zip -e --password=xxxx hoge *.txt

unzipで文字コードをsjis指定して展開

unzip -Ocp932 hoge.zip 

bz2を展開

bzip2 -d hoge.bz2

IPアドレス、MACアドレスを見る

IPアドレス、MACアドレス等を見るには、/sbin/ifconfig

メモリ容量やCPU情報を調べる

  • メモリ容量などの情報はmore /proc/meminfo
  • CPU情報はmore /proc/cpuinfo

ディレクトリ内のすべてに同じコマンドを実行(再帰的に実行)

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

locateデータベースの更新

locate用のデータベースの更新はrootになってupdatedb

kccで文字コードを調べる

ファイルの文字コードを調べたいときは kcc -c hoge

nkfで文字コードを調べる

nkf -guess ファイル名

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

k2のgotouの中にあるhogeというファイルを自分のパソコンの今いるディレクト(./)に コピーするなら、

rsync -auv gotou@k2.ce.akita-u.ac.jp:/home/gotou/hoge ./

rsyncでk2にバックアップ

例えば、自分のパソコンの~/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で消えたファイルを復元

ある時刻以降に削除したファイルを復元する場合

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

恐らく、~/RECOVERED_FILES 辺りに復元されるらしいが、保存場所の変更もできるらしい。

Sedで文字置換

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

と書いておいて、

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

を実行。

ディレクトリ内のすべてのファイルの文字置換

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

ディレクトリ内のファイル名を一括で置換

例えば、デジカメの画像ファイルdscn0001.jpgのdscnの部分を全てgに変えたいとか。

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

ハードディスクの残り容量を表示

df -h

特定ディレクトリの使用容量を表示

du -h 

ディレクトリ中のファイルサイズの合計を表示

ジョブを途中からバックグラウンドに切替える

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

controlキー + z でジョブを一時停止 ( [1]+ stopped    hoge と表示される)
$ jobs                            走っているジョブを確認
[1]+ stopped    hoge
$bg %1                  %の後の 1 は、上の[1]の1
$jobs
[1]- Running     hoge &           『&』がついて、 バックグラウンドジョブに

vi小技(箱選択、改行コード変換)

コマンドラインでviのキー操作が使えるようにする

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

isoイメージを作成

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

pdfのパスワード解除

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

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

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

pdfのパスワード設定

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

サーバー管理系

ユーザーの追加

gotouを追加したい場合、

adduser gotou

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

atコマンドの使い方

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

atコマンドで予約シャットダウン

例えば、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コマンドの予約内容の確認

at -l またはatq で、予約したジョブのジョブ番号を確認し(一つだけなら1)、
at -c ジョブ番号で確認
at -r 削除したいジョブ

apache2

  • バージョンを調べる/usr/sbin/apache2ctl -v
  • 再起動/usr/sbin/apache2ctl restart

.htaccess等のパスワードを生成する

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

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

nslookup

DNSのシリアルナンバーを調べる

nslookup -type=soa hoge.hoge.jp

よりは

dig hoge.hoge.jp SOA

DNSサーバーのbindのバージョンを調べる

DNSサーバーにログインしないで、端末から調べるには、

dig @123.123.123.123 chaos txt version.bind
123.123.123.123は、DNSのIP

ftpのログインエラー

パスワードを入れた後に

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

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

/bin/bash

を追加。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-08-27 (金) 13:33:02