Unix command list

Unix command のページ
動作確認は、macbookair のみ
つまり、マックのコマンドと言ってもいいかも・・

ターミナルの起動と終了

起動

初めての場合は、ターミナルがメニューの奥に隠れているから
以下のような操作で探してみてください。
fn + F4 その他 のグループに ターミナルがある。
アイコンをダブルクリック
起動したら、ドッグのアイコンを右クリックして、オプション/ドッグに追加
でドッグに追加すると、次からはドッグから起動できる。

終了

ターミナルの終了は、control + d でプロセスを終了し
command + q でターミナルを終了させる。
ターミナルの終了は、開いて居る全てのターミナルが終了するので注意
> exit
でプロセス終了


Unix command list


ディレクトリとファイル操作

pwd : 現在のディレクトリの確認
ls : ファイルの確認
cd : ディレクトリの変更
mv : 移動
rm : 削除
cp : コピー
mkdir : ディレクトリの作成
cat : ファイルの中身の表示

Unix command list


検索と置換

grep : キーワード検索
$ grep -n '嘉之' *.txt



awk : 行別の検索・集計



sed : 文字別検索・置換
$ sed 's/検索文字/置換文字/g' file
$ sed '/^$/d' file ## file から 空白行を削除する
$ sed -n '/href/p' index.html



find : ファイルの保存先検索
whatis : コマンドの簡単な説明
whereis : 指定したファイルのソース・オブジェクト、マニュアルの場所を探す。
which : コマンドの所在を調べる


who : ログイン中のユーザーを検索
$ who
yonmon console Sep 22 16:39
yonmon ttys000 Sep 22 22:14
yonmon ttys001 Sep 22 22:35



whoami : 現在のユーザーを調べる
who am i : 現在のユーザーを調べる


w
$ w
9:05 u
p 1 day, 1:57, 3 users, load averages: 1.19 1.14 1.15
USER TTY FROM LOGIN@ IDLE WHAT
yonmon console - 木16 16:25 -
yonmon s000 - 木22 - emacs
yonmon s001 - 木22 38 -bash

Unix command list


エディタ

emacs : 最強のテキストエデイタ
とにかく覚えるまでが大変だが、複数ウィンドを表示させて、
shellモードでの確認などもできる。
新しいデータの作成、他のデータとの部分結合や編集に向いている。
コマンドの履歴などをemacs に取り込める。



vi : 行削除や置換もできるテキストエデイタ
Esc キーでコマンドと編集を区別する。 使いこなせれば、編集作業ではemacsより最強かも
どのPCでも使える。



ed : 一行修正のテキストエデイタだが、複数行を一度に
削除なんてことも可能
$ ed -s file < edmemo > output
edmemoに ed の 検索キーを入れておくと仕事が早い。
例えば、 2018というキーワードを含む行を検索したファイルを作るとしよう。
file から 2018のキーを抜き出して 2018serch.txtというファイルを作る。
$ ed
P
*
a
, g/2018/
.
* w ./ed2018
*! cat ed2018
, g/2018/
!
*q
$ ed -s file < ed2018 >2018serch.txt
$ cat 2018serch.txt
例えば、 2018と検索したファイルでは
去年と比較すると、2018年という年は
2018 ## 2016-2018までの9月を表示
$
ed 専用ページ






時刻日付

at : 指定時刻にコマンド実行

cal : カレンダー表示
$ cal 9 2016 ; cal 9 2017 ; cal 9 2018 ## 2016-2018までの9月を表示
$ cal 2020 ## 2020年のカレンダー
$ cal -m 9 ; cal -jm 9 ##9月のカレンダーと元旦からの日数



date :現在の日時を表示
$ date "+%x %H:%M"
2016/09/23 20:30



Unix command list


計算器

bc : 簡易計算器
$ bc
$ 2 + 3
$ 5
$ 2 * 3 - 2 * 4
$ -2
$ quit
$ echo '23 + 45' | bc
68



dc : 計算器 結果はスタックに入るのでPで表示
[例]
$ 23 44 56 + ##(23+44+56)の意味
$ p
$ 100 ## 2つの数値のみ計算するので 44 + 56 の結果
$ 45 +
$ 145 ## pはスタックの値の表示 先ほどpで100がスタック
に入っていたので、 45 + 100(s)=145 が計算できる
(s)スタックの意味
$ q ## 終了



関数演算

maxima : 微積分・マトリクス・因数分解など何でもこなす
ここでは、簡易計算のみ紹介
$ maxima
(%i1) i: 入力の意味  1 + 3; 必ず;を入れる
(%o1) o: 出力の意味  4
(%i2) 23 / 34;
(%o2) 23 | 34
(%i3) 402 / 124 ;
(%o3) 201 | 62
(%i4) quit();



統計計算

r : R

> x <- 10:30 # x を 10から30までの行列とする
> x
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
> x^3-x^2
[1] 900 1210 1584 2028 2548 3150 3840 4624 5508 6498 7600 8820
[13] 10164 11638 13248 15000 16900 18954 21168 23548 26100
> sqrt(x)
[1] 3.162278 3.316625 3.464102 3.605551 3.741657 3.872983 4.000000 4.123106
[9] 4.242641 4.358899 4.472136 4.582576 4.690416 4.795832 4.898979 5.000000
[17] 5.099020 5.196152 5.291503 5.385165 5.477226
> q()
Save workspace image? [y/n/c]: yes
yes



Lisp で 計算

clisp : common lisp
虚数計算も可能
$ clisp
[1]> (sqrt 3)
1.7320508
[2]> (sqrt -1)
#C(0 1)
[3]> (+ 23 45 66)
134
[4]> (+ #c(10 20) #c(30 40))
#C(40 60)
[5]> (/ 100 #c(30 40))
#C(6/5 -8/5)
[6]> (* 365 24 60 60)
31536000
[1]> (setq x 234)
234
[2]> (/ x 23)
234/23
[3]> (/ x 3)
78
[4]> (/ x 5)
234/5
[10]> (expt 2 900)

84527124981706439416374365586642657043015572165779443
54047371344426782440907597751590676094202515006314790
31989211405886211756095204296859600862365540703323053
41869439840813466997042828228230568483877265313790144
66368452684024987821414350380272583623832617294363807
973376
[11]> (mod 12 5)
2
[7]> (exit)



Unix command list


alias : コマンドに別名をつける。

$ alias lf='ls -lF'
$ alias aliasの設定確認
$ unalias aliasname aliasの指定削除
/User/midir/Documents/ など いつも使うフォルダは
$ alias doc='cd /User/mydir/Documents/'などに設定すると $ doc だけで、Documents に移動できる。

Other

banner : 花文字を作成
cc
clear : 画面のクリア
cmp : 二つのファイルの変更箇所を比較
cut : フィールド単位でカット
dd :ファイルのフォーマット変換とコピー
df : disk free ファイルシステム情報

chmod : ファイルの許可変更

$ chmod 755 file

ftp sftp:

SFTP の 使い方

$ sftp username@www.server_name.or.jp :サーバーにつなぐ
$ Password? : パスワードを聞かれるので入力
sftp> ls : サーバー側のリスト
sftp> pwd :$ サーバー側のディレクトリ
sftp> !pwd (lpwd) :ローカル側のディレクトリ
sftp> !ls (lls) :ローカル側のリスト
sftp> get file_name.html :サーバー上のファイルをローカルにコピー
sftp> put file_name.html :ローカルからサーバーへコピー
sftp> cd www : サーバー の ディレクトリをwwwへ変更
sftp> close :sftp を閉じる
sftp> exit : sftp コマンド終了

$ sftp user@ wwwServer.openserver.ne.jp
Connected to wwwServer.openserver.ne.jp

Name (wwwServer.openserver.ne.jp :MOOYonKON): USeRS
Password required for USeRS

Password:
User USeRS logged in
Remote system type is UNIX.
Using binary mode to transfer files.

sftp> pwd
Remote directory: /home/USeRS

sftp> cd www
250 CWD command successful

sftp> pwd
Remote directory: /home/USeRS/www

sftp> !pwd
/Users/MOOYonKON
sftp> !ls (lls)

unix_command.html

sftp> put unix_command.html
local: unix_command.html remote: unix_command.html
Entering Extended Passive Mode
Opening BINARY mode data connection for unix_command.html
Transfer complete
xxxx bytes sent in 00:00 (xxx.xx KiB/s)

sftp> ls -l

Entering Extended Passive Mode
Opening ASCII mode data connection for file list

-rw----r-- 1 USeRS users 15249 Mon 25 11:11 unix_command.html

sftp> close

Goodbye.

sftp> exit

help:
locate:
pr:
touch:


diff differential file comparator 二つのファイルの比較相違部分の出力:

二つのファイルの相違点を表示してくれる
$ diff 1.txt 2.txt
0a1
> 2016年 9月24日 土曜日 17時31分59秒 JST
$
$ cat 1.txt
17:35
$ cat 11.txt
17:25
$ diff 1.txt 11.txt
1c1
< 17:35
---
> 17:25



OTHER 2

fc:
file:
du -h : ディレクトリのファイル別容量の表示
echo :引数の内容の表示 echo * で現在のディレクトリのファイルを表示
head :
history:
hostname:
id:
join :

kill :
killとは、プロセスの停止
$ ps
3612 pts/1 00:00:01 bash
3678 pts/1 00:00:00 xeyes
$ kill 3678
$ps
3612 pts/1 00:00:01 bash


last :
$ last
yonmon ttys003 Fri Sep 23 07:12 - 07:14 (00:01)
yonmon ttys001 Thu Sep 22 22:35 still logged in
yonmon ttys000 Thu Sep 22 22:14 still logged in
yonmon ttys003 Thu Sep 22 22:11 - 22:11 (00:00)
yonmon ttys003 Thu Sep 22 22:10 - 22:10 (00:00)
yonmon ttys000 Thu Sep 22 16:40 - 22:13 (05:33)
yonmon console Thu Sep 22 16:39 still logged in
yonmon ttys000 Thu Sep 22 07:08 - 16:37 (09:29)
yonmon console Thu Sep 22 07:08 - 16:38 (09:30)
reboot ~ Thu Sep 22 07:07
shutdown ~ Thu Sep 22 07:05
wtmp begins Thu Sep 22 07:05



leave : メッセージアラーム
ln :
man :
mkdir :
more :
od :
paste :
printenv :
env:
ps :
jobs
rm :
rmdir :
set :
setenv :
sort :


Unix command list

source :ファイル変更後の再読み込みで変更箇所を有効にする時に使う
.bashrc に alias を書き込んだ後、すぐに再読み込みして確認するには
$ source .bashrc



split :
stty :
su :
tail :
tar :
tee :


test : 条件判定 真:0 偽:1 を echo $? で確認する
$ test -f index.html ## ファイル index.html があるか?
$ echo $? ## 結果を表示
$ 0 ##今のディレクトリに存在する



time :
tr :
tty :
unalias :
uname : unixの名前

$ uname -a
Darwin ja1nku-2.local 15.6.0 Darwin Kernel Version 15.6.0:
Mon Aug 29 20:21:34 PDT 2016;
root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64



Unix command list



uniq :
unset : シェル変数の設定解除 <=> set
unsetenv :
uptime :
users :
w :

$ w
23:29 up 1 day, 16:22, 3 users, load averages: 1.31 1.33 1.30
USER TTY FROM LOGIN@ IDLE WHAT
yonmon console - 木16 30:49 -
yonmon s000 - 木22 - emacs
Bonmon s001 - 木22 52 -bash

finger:


wc :
$ ls -l | wc -l ファイル数を数える



fg :
bg :


Unix command list


キーボード入力

read : キーボードからの入力を変数に入れる
bash-3.2$ read a b c
12 33 44
bash-3.2$ echo a b c
a b c
bash-3.2$ echo $a $b $c
12 33 44
bash-3.2$ read a b
22 44
bash-3.2$ echo $[$a+$b]
66



容量ゼロのファイルを作る

$ :> newfile
$ ls -l
-rw-r--r-- 1 user uuue 0 6 15 00:12 newfile

Unix command list


Command List

:>Newfile alias at awk banner bc cal cat cd chmod clear cmp cp cut date dc dd df diff du echo ed env fc fg file find finger ftp grep head help history id jobs join kill last leave ln locate ls man mkdir more mv od paste pr printenv ps pwd read rm rmdir sed set setenv sftp sort source split stty su tail tar tee test time touch tr tty unalias uname uniq unset unsetenv uptime users vi w wc whatis which who whoami who am i

home