Linux_コマンド

Linux history コマンドの出力内容に日時が表示されるようにする

estis2018/12/05 (水) 21:31 に投稿

~/.bashrc に、
HISTTIMEFORMAT='%Y/%m/%d %T '
と書くと、

1016 2018/12/05 21:28:59 vi ~/.bashrc
1017 2018/12/05 21:30:27 . ~/.bashrc
1018 2018/12/05 21:30:29 history

といった表示になる。

whereis と which

estis2017/03/16 (木) 10:32 に投稿
$ whereis openssl
/usr/bin/openssl
$ which openssl
/usr/local/opt/openssl/bin/openssl

の違いは、

$ echo $PATH
/usr/local/opt/openssl/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/local/opt/ruby/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/share/dotnet

だからで、

$ man whereis

WHEREIS(1)                BSD General Commands Manual               WHEREIS(1)

NAME
     whereis -- locate programs

SYNOPSIS
     whereis [program ...]

DESCRIPTION

fuser

estis2011/02/12 (土) 19:32 に投稿
# w
 午前11時21分  稼働  4時37分,  2 ユーザ,  負荷平均率: 1.78, 0.87, 0.35
ユーザー 端末     場所             ログイン時刻     待機     JCPU     PCPU  現プロセス名
root     tty1     -                09年10月 3日  4時37分   0.03秒   0.01秒  -bash
admin    pts/0    192.168.1.15    午前11時20分   1.00秒   0.08秒      ?      -

みたく、その昔コンソールからログインした時にログアウトするのを忘れていた時、もう一度コンソール繋いでログアウトするのも、わざわざそのマシンのところまで行かないといけないので邪魔くさい。

そんな時は、

# fuser -k /dev/tty1
/dev/tty1:             918   924

と、fuser コマンドで終了することができる。

オプションなしで実行すると、

# fuser /dev/tty1
/dev/tty1:             918   924

のように、そのデバイスを使用しているプロセスを表示する。

自宅テスト環境CentOS5.5のコマンド一覧

estis2010/10/03 (日) 22:01 に投稿

を晒してみる。
# for cmd_path in $(echo $PATH|sed 's/:/\n/g'); do find $cmd_path -perm +111 -type f; done|wc -l
3354

# for cmd_path in $(echo $PATH|sed 's/:/\n/g'); do find $cmd_path -perm +111 -type f; done
/usr/lib/qt-3.3/bin/lrelease
/usr/lib/qt-3.3/bin/qembed
/usr/lib/qt-3.3/bin/uic
/usr/lib/qt-3.3/bin/findtr
/usr/lib/qt-3.3/bin/qt20fix
/usr/lib/qt-3.3/bin/qm2ts
/usr/lib/qt-3.3/bin/lupdate
/usr/lib/qt-3.3/bin/designer
/usr/lib/qt-3.3/bin/qtrename140
/usr/lib/qt-3.3/bin/moc
/usr/lib/qt-3.3/bin/linguist
/usr/lib/qt-3.3/bin/assistant
/usr/lib/qt-3.3/bin/qmake

seq

estis2010/05/03 (月) 02:58 に投稿

数列を表示する。

seq [開始値 [変化値]] 終了値

終了値以外のデフォルトは1

$ seq 7
1
2
3
4
5
6
7

$ seq 7 9
7
8
9

$ seq 7 2 9
7
9

減少していく時は、

$ seq 9 -1 7
9
8
7

と減少していくという事を明示しないといけない。デフォルトは1だから。

$ seq 9 7

だと何も返ってこない。

整数に限らない。

$ seq 7 .1 7.9
7
7.1
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9

-w で出力結果の桁数を揃える。揃えるために0を前後に補う。

$ seq -w 9.95 .03 10.1
09.95
09.98
10.01
10.04
10.07
10.10

-s で区切り文字を指定。デフォルトは\n、つまり改行。

$ seq -s , 7 9
7,8,9

.screenrc の設定

estis2009/05/05 (火) 17:46 に投稿

自宅PCでの設定をメモ。

startup_message off
vbell off
autodetach on
caption always "[%m/%d(%D)%0c:%s] %-w%{=b Bw}%n %t%{-} %+w%=[%l]"


caption always "[%m/%d(%D)%0c:%s] %-w%{=b Bw}%n %t%{-} %+w%=[%l]"

のところが、パッと見ではわからないので詳細。

同名ファイルでサイズ違いのものだけを表示

estis2009/04/07 (火) 18:06 に投稿

やりたいこと:

次のような二つのディレクトリがあり、同じ名前のファイルがそれぞれあるが、その内サイズが異なるファイル名を表示する。
これをワンライナーで実現する。

$ ls -l *

TEST_1:
total 32
-rw-r--r--  1 estis  estis    4  4  7 09:44 test01
-rw-r--r--  1 estis  estis   44  4  7 09:49 test02
-rw-r--r--  1 estis  estis  118  4  7 09:46 test03
-rw-r--r--  1 estis  estis   40  4  7 09:47 test04

TEST_2:
total 32
-rw-r--r--  1 estis  estis    4  4  7 09:44 test01
-rw-r--r--  1 estis  estis    4  4  7 09:45 test02
-rw-r--r--  1 estis  estis  118  4  7 09:46 test03
-rw-r--r--  1 estis  estis   80  4  7 09:48 test04

こういう状態なので、欲しい答えは、
test02とtest04。

getoptのオプション

estis2009/04/02 (木) 22:39 に投稿

getopt のオプション(の内いくつか)

-q getopt 自身のエラーを表示しない。

  getopt ~~~
  if [ $? != 0 ]
  then
   exit 1
  fi
 って大抵書くので、このexitの前で、独自のメッセージを出してやる。

-o 短いオプション文字の指定。

  getopt -o shibajun

-l オプション文字列の指定。

  getopt -o shibajun -l canbeer

 この時、-l だけ使用するとあなたの想定外の動きになるので、

  getopt -o "" -l canbeer

 と、短いオプションはねえょ! とはっきり指定する。

getopt

estis2009/03/29 (日) 09:46 に投稿

Mac OSX 10.5.6 のターミナル上では、
getopt --version
としても
--
しか返ってこない。

Vine Linux 4.2 が近くにあったので同じようにしたら
getopt (enhanced) 1.1.3
と返ってくる。

そもそもmanの内容が違う。
Macの方は、オプションがない、-oとか-lとか。