初心者の書く自分用のメモです。
インストール後のssh設定
ssh-keygen -R "サーバーIP"
ssh ユーザー名@サーバーIP
インストール後すぐにアップデートする
最新のアップデートを確認します。参考(アップデートしないとすぐにフリーズする。)
sudo apt-get update
確認した最新のアップデートを適用します。
sudo apt-get -y upgrade
依存関係解決後に使わなくなったパッケージを削除
sudo apt-get -y dist-upgrade
他のパッケージの依存関係を満たすため自動的にインストールされ、不要になったパッケージを削除
sudo apt-get -y autoremove
aptキャッシュを削除
sudo apt-get -y autoclean
apt-get updateが出来ない場合の解決方法
apt-get err [省略] trusty inrelease
自分の場合はただインターネットがつながってなかっただけでした。
参考
初期設定
rootパスワードを設定してrootユーザーに遷移できるようにする
sudo passwd root
プロキシを介してネットワークに接続
exportしたプロキシの設定をsudoでも引き継ぎたい場合
sudo -E
自分好みの環境をsudo時にも使えるようにする
http://yudoufu.hatenablog.jp/entry/20110326/1301129885
ファイアーウォールの設定
ubuntuの場合はufwじゃなくてiptablesでもオッケー。
後述のnmapをインストールするも使用する。ファイアーウォールはパケットフィルタリング型とプロキシ型が存在する。ufw、Iptablesはパケットフィルタリング型。
ufwの状態を確認
sudo ufw status
sshでサーバーをいじりたい場合はsshを許可する(ufw)
ufw allow ssh
ファイアーウォールを有効化(※エラーがでるがyesを選択)
sudo ufw enable
IPTablesの3つのポリシー
INPUT、OUTPUT、FORWORDをDROP(拒否)かACCEPT(許可)に設定をする。
INPUT:サーバーに入ってくる通信のポリシー
OUTPUT:サーバーから出て行く通信のポリシー
FORWARD:受信したデータを他のサーバーへ転送する際に適用される設定
IPTablesの一覧を確認
sudo iptables -L
sshでサーバーをいじりたい場合はsshを許可する(Iptables)ip1.1.1.1で8080portを許可する場合
iptables -A INPUT -p tcp -m tcp -s 1.1.1.1 --dport 22 -j ACCEPT
portで走ってるプロセスを調べる
sudo lsof -i:80
portで走ってるプロセスを切る
sudo kill `sudo lsof -t -i:9001`
sudo kill $(sudo lsof -t -i:9001)
強制的にプロセスを切る
kill -9 "PID"
ソフトをインストール
gitのインストール
sudo apt-get install git
emacsエディタのインストール
sudo apt-get install emacs
Atom editor のインストール
sudo apt-get install libgnome-keyring-dev
git clone https://github.com/atom/atom
cd atom
script/build
sudo script/grunt install
apacheのインストール
sudo apt-get install apache2
デフォルト設定の確認
cat /etc/hosts
起動する
sudo service apache2 start
停止する
sudo service apache2 stop
Apacheの起動の確認
netstat -na | grep -e "^tcp.*:80.*LISTEN"
nmapをインストールする
sudo apt-get install nmap
nmapでポートの空き/閉じ等を確認できる。
nmap localhost
Nginxをインストールする
sudo apt-get install nginx-extras
sudo apt-get install nginx-doc
nginxの設定ファイル
/etc/nginx/sites-available/default
/etc/nginx/nginx.conf
起動、停止、再起動
sudo service nginx start
sudo service nginx stop
sudo service nginx restart
リースプロキシ
...webブラウザに送る元をリバースプロキシ1個にまとめたりする。
https://tech-sketch.jp/2013/02/nginx-proxy.html
mysql
DB一覧表示
show databases;
使用するDBを選択
use [DB名];
テーブル一覧を表示
show tables;
テーブル要素を表示
show table status\G
select文を見やすくする(qで終了)
pager less -n -i -S
プロセスが動いてるか確認
ps ax | grep mysqld
mysql.server start
mysql -u root
wordpress
sudo chown -R www-data hogehoge
www-dataはユーザー名。nginxのconfに書かれているユーザー名を指定する
rubyのインストール(2014/12/28:ruby1.9.1になってしまう。最新は2.1)
sudo apt-get install ruby
ruby2.0のインストール
sudo apt-get install ruby2.0
さくらVPS関連
windowsからさくらvpsにssh接続(※はじめの接続はメッセージがでるがyesでOk)
1.puttyをインストール
"[ファイルパス省略]putty.exe" [サーバーのIPアドレス] -l [ユーザー名] -pw [パスワード]
ubuntuからさくらvpsにssh接続(※はじめの接続はメッセージがでるがyesでOk)
ssh [ユーザー名]@[サーバーのIPアドレス]
鍵認証の設定
ローカルで秘密鍵、公開鍵のセットを作る
ssh-keygen -t rsa
出来たもののパーミッションを変更する
chmod 600 ~/.ssh/id_rsa.pub
vps側のユーザーのホームディレクトリに.sshのフォルダーを用意する
mkdir ~/.ssh
ローカルで作った公開鍵をvpsにコピーする
scp .ssh/id_rsa.pub [ユーザー名]@[IPアドレス]:~/.ssh/authorized_keys
出来たもののパーミッションを変更する(※このパーミッションより緩くてもキツくても弾かれるので注意とのこと)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
ローカルの端末からログインする
ssh -i ~/.ssh/id_rsa [ユーザー名]@[IPアドレス]
基本コマンド
Ubuntuのバージョンを確認するコマンド
cat /etc/lsb-release
アーキテクチャ(OSが32bit, 64bitどちらなのか)を調べるコマンド
arch
ディレクトリを内部のファイルごと削除する(※かなり気をつけて消すこと)
rm -rf [ディレクトリ名]
ワールドカード指定して削除
rm -rf *.txt
隠しファイル (ディレクトリ)も含めた一覧を表示
ls -a
隠しファイル (ディレクトリ)も含めた一覧(詳細情報)を表示
ls -la
scp -rオプション:ディレクトリごとコピー
scp ~/hogehoge [ユーザー名]@[IPアドレス]:hogehoge
ファイルを探す
30分以内に更新されたファイル
find . -type f -mmin -30
3日以内に更新されたファイル
find . -type f -mtime -3
ログファイルをリアルタイムで見る
tail -f -n 20 /var/log/messages
フォントを入れる
/usr/share/fontsに直接コピー
反映
fc-cache -f -v
ファイル数をカウント
ls -1 | wc -l
ファイルを一気に一回層下に移動
mv * ../
ファイルを一気に一回層下に移動(ファイル数が多い場合)
find 検索フォルダ -name "*.png" -exec mv {} 移動先フォルダ \;
ファイルを一気に削除(ファイル数が多い場合)
find . -name "*.png" -print | xargs rm
ファイルの圧縮(zip)
zip -r hoge.zip hoge
ファイルの解凍(zip)
unzip hoge.zip
ファイルの圧縮(bz2)
bzip2 -d hoge.bz2
ファイルの展開(bz2)
tar jxf hoge.tar.bz2
ファイルの解凍(bz2)
bzip2 hoge.txt
ファイルの中身を見る
less ファイル名
G 最終行へ移動
ubuntuバージョン確認
cat /etc/lsb-release
アーキテクチャを確認
arch
sshが自動切断される場合
理由:ルーターを介してアクセスしてる場合はアクセスがないと切断される。
・・解決方法1
・topコマンドなどで接続し続ける
・・解決方法2
・sshの設定をいじる。(設定だけしてまだ試してない)
・サーバー側を設定
/etc/ssh/sshd_config
ファイルに下記設定を追加
ClientAliveInterval 60
ClientAliveCountMax 3
再起動
sudo /etc/init.d/ssh restart
・クライアント側を設定
/etc/ssh/ssh_config
ファイルに下記設定を追加
ClientAliveInterval 60
ClientAliveCountMax 3
切断エラーの例
Connection to 100.100.100.100: Broken pipe
容量の多いものを検索
du -h --max-depth=1 /
ramdiskを構築
メモリをHDとして使用。処理を高速化させる場合の方法。
RAMディスクとは
メインメモリの一部をディスク領域にする。
(1)initrd,(2)容量が可変の/dev/shm,(3)固定容量の/dev/ramdisk
df -h
sudo emacs /etc/fstab
hogehogeフォルダにmountする
/dev/shm /home/ubuntu/hogehoge tmpfs size=60G 0 0
sudo mount -a
あとでumount
device is busyになった場合は-lをつかう。
sudo umount -l /home/ubuntu/hogehoge
メモリを解放(ubuntu)
sudo su
free -h
echo 3 > /proc/sys/vm/drop_caches
メモリ解放(mac)
sudo purge
スワップ解放(mac)
http://d.hatena.ne.jp/kazuhooku/20130207/1360226719
メモリ使用状況詳細
cat /proc/meminfo
フォルダの状況確認
watch -n 1 ls -al
メモリ使用状況のリアルタイム確認
top
dstat
ログインしてるユーザ
who
自然言語関係
mecabを入れる
sudo apt-get install mecab libmecab-dev mecab-ipadic
sudo aptitude install mecab-ipadic-utf8
sudo apt-get install python-mecab
大規模コピー
http://qiita.com/iron-breaker/items/74a2ed1753587476157f
find ~/image -name '*.jpeg' -exec cp {} ~/image2 \;
大規模削除
find ./*.txt -type f | xargs rm -rf
gpu関連
cudaバージョンの確認
nvcc -V
gpuの使用状況
nvidia-smi -l 10 -i 1
nvidia-smi
usbをmount
こちらを参照
http://qiita.com/miyamotok0105/private/2baf80cf1c300503bf5d
デーモンとしてプログラムを実行する
実行するスクリプを準備
/usr/test.sh
chmod 755 test.sh
デーモンとしてシステムに登録
/etc/init.d/ ディレクトリを開き、その中に実行ファイルを実行するシェルスクリプトを作成します
エディタでテキストファイル test を作成します
その中に
./usr/test.sh &
と一行書き込み保存します
このとき最後に & を付け忘れると、プログラムが終了するまでシステムの起動が停止します。
chmod 755 test
▼システムから呼ばれるシンボリックリンクの作成
/etc/rc3.d/ のランレベル3のディレクトリに移動します(1~5まで必要な所に移動してください)
▽その中に上で作成したシェルスクリプトのシンボリックリンクを作成します
▽シンボリックリンクの命名規則
S + 二桁の数字 + シェルスクリプトの名前
(二桁の数字により他のデーモンとの実行順序が制御できます)
▽シンボリックリンクの作成
ln ../init.d/test S10test
■デーモンの手動での起動と終了
▼起動
/etc/rc3.d/ に移動してシンボリックリンクを直接実行
logoutしても生き続ける
./S10test &
スクリプトの場合
perl /usr/script.pl &
▼終了
psコマンドでPIDを調べてkill
エラー
HDのデータが満タン
No space left on device
対応策:何かのデータを消す
注意
GUI上で使えるショートカット
全てのウィンドウを最小化する/元に戻す
Ctrl + Super(windowsマーク) + D
ウィンドウを画面左半分に表示する
Ctrl + Super(windowsマーク) + ←
ウィンドウを画面右半分に表示する
Ctrl + Super + →
全てのワークスペースのウィンドウ一覧を表示する(なんかかっこいい)
Super + W
環境変数
特定のpath削除のメソッド追加
http://qiita.com/ironsand/items/10e28d7589298090ec23
path_remove ~/sh
参考URL
http://oxynotes.com/?p=6361
http://7ujm.net/linux/daemon.html