LoginSignup
3
4

More than 5 years have passed since last update.

リンク集 - いつかちゃんと見る(bat, python vbscript, excel, electron)

Last updated at Posted at 2017-06-20

Linux

ps

運用で使えるpsコマンドの便利な使い方 _ 株式会社ビヨンド

psコマンドにて指定した項目のみ表示する

$ ps -eo pid,user,rss,pcpu,pmem,args
  PID USER       RSS %CPU %MEM COMMAND
    1 root      2456  0.3  0.2 /sbin/init
    2 root         0  0.0  0.0 [kthreadd]
    3 root         0  0.0  0.0 [ksoftirqd/0]
    4 root         0  0.0  0.0 [kworker/0:0]
    5 root         0  0.0  0.0 [kworker/0:0H]

例ではプロセスID,ユーザ,物理メモリ使用量,CPU使用率,メモリ使用率,プロセス名を表示させています。このように指定した項目のみ表示し、必要な情報のみ出力することができます。指定できる項目はかなり多いのでいくつかを紹介します。

    pcpu(%cpu) – プロセスのcpu 使用率
    pmem(%mem) – メモリ使用率
    args(cmd,command)- 文字列の引き数がついたコマンド
    pid – プロセスID
    ppid – 親プロセスのID
    uid(euid) – 実行ユーザのID
    gid(egid) – 実行グループのID
    user(euser,uname) – 実行ユーザ
    group(egroup) – 実行グループ
    rss(rssize,rsz) – 物理メモリ使用量
    lstart – プロセスの起動時刻 

awk

psコマンドの結果からプロセスIDを取得するときはcutではなくawkを使う - myhd

以下の出力結果からpsコマンドのプロセスID(1234)を取得したい。

$ ps -ef | head -n 3
UID        PID  PPID  C STIME TTY          TIME CMD
myokoym   1234     0  0 12:34 pts/0    00:00:00 ps -ef
myokoym 999999     0  0 12:34 pts/0    00:00:00 head

cutの場合

最初はcutを使ってみます。
・・・略・・・
こちらは取れました。どうも、cutだとスペースが連続する場合に上手く取れない様子。スペースの数だけフィールド数が増えてしまっています。

それに対して、awk(オーク)ではデフォルトで「1個以上の連続スペース」または「タブ」が区切り文字として扱われるため、以下の通り、きちんと取得できます。

$ ps -ef | head -n 3 | grep "ps -ef" | awk '{ print $2 }'
1234

(特殊変数の$1$2・・・に、1番目のフィールド、2番目のフィールド・・・が入っている)

以下のような使い方を見た。

$ ps -o pid,rss,command -x | awk '{A=substr($3,0,1);if(A!="[") print $0}'

awkをしらないのでいつか見る(sedももはや忘れてしまったけど。)

メモリ

mallocはチューンできるらしい。たとえば、MALLOC_PERTURB_があるかないかで

myblog MALLOC_PERTURB_

あるソフトを使っていたら, 私だけエラーが起こる.
・・・略・・・
. 私とその人との違いは, ログインシェル. 私は bash, その人は tcsh を使っていた. ログインシェルを tcsh に変更してみると, このエラーは起こらなくなった. しかし, ログインシェルを tcsh にした後, bash を起動し, その中でそのソフトを起動するとエラー. こんな時には環境変数が原因だろうと考え, diff をとってみた.

env | sort > tcsh-env.out
bash
$ env | sort > bash-env.out
$ diff tcsh-env.out bash-env.out

ここで分かったのは, bash 環境では MALLOC_PERTURB_ が設定されているということ. この環境変数を消すと, エラーは起こらなくなった.

The GNU C Library Memory Allocation Tunables

Tunable: glibc.malloc.perturb

This tunable supersedes the MALLOC_PERTURB_ environment variable and is identical in features.
If set to a non-zero value, memory blocks are initialized with values depending on some low order bits of this tunable when they are allocated (except when allocated by calloc) and freed. This can be used to debug the use of uninitialized or freed heap memory. Note that this option does not guarantee that the freed block will have any specific values. It only guarantees that the content the block had before it was freed will be overwritten.
The default value of this tunable is ‘0

言語

プログラミング言語処理系論 (2016年度)
プログラミング言語処理系論 (2014年度)
プログラミング言語処理系論 (2012年度)

関数型言語

なぜ関数プログラミングは重要か

PDF

詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方 - プログラムモグモグ

このエントリーでは、PDFのファイル構造を理解するための基礎的な内容を丁寧にお伝えしたいと思います。 PDFファイルに興味があるが、どこから手を付ければいいかわからない人や、PDFファイルをエディタで直に書けるようになりたい人、あまり興味はないけどPDFのファイル構造がどうなっているか雰囲気でも掴みたい人など、どんな人でも歓迎です。 PDFは数限られたソフトが出力することを許された闇に満ちたバイナリフォーマット?いいえ、全く違います。 ある程度単純なPDFなら、ほんの100行程度のコードで生成できるのです。

PDF Reference sixth edition Adobe Portable Document Format

PyPDF2の使い方 _ SrLTテクノアーカイブ

PDFの結合
PDF1の後にPDF2を結合する場合のサンプルコードです。

ページの抽出
複数のページを持つPDFから任意のページのみを抽出するサンプルコードです。先頭ページは「0」として数えます。

ページの回転
すべてのページを時計回りに回転させます。角度は、90°、180°、270°を選択できます。

Pythonで超簡単にPDFを連結 _ tm23forest.com

UML

UTI_UML教育研究所-使えるUML

設計

テンプレ

テンプレ

powershell

Windows PowerShell でのスクリプティング

バッチファイルにPowerShellスクリプトを埋め込む - Programming Field

バッチファイル

[開発に役立つ,BATファイルの書き方・パターン集 (コマンドプロンプトの定石を体系的に学び,バッチ中級者になろう) - 主に言語とシステム開発に関して][1]

(0) BATプログラミングの特徴
(1) BATファイルの雛型
(2) バッチの構造化
(3) ファイル操作
(4) 変数と演算
(5) その他の処理

[バッチファイル - shinoshino_google][2]

1 ページ概要
2 どこからバッチを起動させても大丈夫なようにする
3 バッチパラメータ・修飾子
4 ファイル名の連なった環境変数を設定する
5 外部呼び出しのバッチエラー終了を捕まえる
6 .svnを削除する
7 日付つきのディレクトリを作成する
8 64bitマシンと32bitマシンを区別する

if文の中で変数の値が反映されない
CMD.EXEの遅延環境変数の展開 - ふなWiki

各コマンドが実行されるときに環境変数が展開されるのではなく、バッチファイルのテキスト行が読み取られるときに展開が行われてしまうから

cmdのforやif内値代入!setできない原因は遅延環境変数! _ 自作PCテクニカルセンター

ECHO は <OFF> です。
このメッセージってechoさせた変数が初期化されて時に出るやつだ・・・。

コマンド別_echo - CMD.EXE TIPs

空かもしれない環境変数の出力

そのまま書くと、まずい。echo の直後に何か記号を書く必要がある。

setlocal enabledelayedexpansion
set X=
echo %X%ECHO<ONorOFF> です。を出力
echo !X!ECHO<ONorOFF> です。を出力
echo.%X%            → 空行を出力
echo.!X!            → 空行を出力

ただし、echo. 等とすると遅延展開を使う場合、 ! ! の間に , ; = の文字が入ると駄目である。

setlocal enabledelayedexpansion
set X=1234567
echo.!X:~0,3!X:~0,3 を出力
echo.!X:1=9!X:1=9 を出力
set X;Y=123
echo !X;Y!123 を出力
echo.!X;Y!X;Y を出力

ここで、echoの直後に書く記号を , ; = のいずれかを使うと大丈夫。

setlocal enabledelayedexpansion
set X=1234567
echo,!X:~0,3!123 を出力
echo;!X:1=9!9234567 を出力
set X;Y=123
echo !X;Y!123 を出力
echo=!X;Y!123 を出力

DOS コマンド一覧 - Programming Field

  • 目的別コマンド一覧
    • Xcopy
      • ファイル/ディレクトリをコピーします。ファイルの複数コピーやディレクトリの一括コピーに対応しています。
  • DOSプロンプト・コマンドプロンプトとは
  • 環境変数の使い方
  • カレントディレクトリについて
  • バッチファイルについて
  • 組み込みコマンド

  • Unix系シェルコマンドと類似のコマンド一覧

VBScript/VBA

[ADSI プログラミング デバッグ やっぱり VBScript がいい !! という方へ – 1 – 管理者は見た!~AD と ILM 一家の秘密~][6]

1.プログラム実行位置、変数値などの確認情報を Echo 出力する。

' エラー発生時、エラー行と、エラー番号を出力する
Sub ErrSub()
    WScript.Echo("Line – "& ErrLine & " : Error Code – "& Err.Number)
End Sub

2.プログラム実行位置、変数値などの確認情報を FileSystemObject 等でログファイル出力する。

VBAシステム開発‎ > ‎1. VBAの世界‎ > ‎第4章‎ > ‎4.1 COMとは

4.1.5 オブジェクト消滅の管理
前提として、オブジェクトの本体は、メモリのヒープ領域に確保され、変数に格納されるのは、そのヒープ領域へのポインタのみとなっています。変数はスタック領域に確保され、スコープが外れると変数もクリアされてしまいます。つまり、変数の消滅とオブジェクトの消滅は必ずしも一致しないというのが前提にあります。

  1. エイリアス(オブジェクト参照)が作成されるとIUnknown : Addrefメソッドが呼ばれ、参照数カウントアップ。NewやCreateObjectによるオブジェクトの生成、オブジェクト変数への代入処理などが該当。

  2. エイリアスが消滅する、つまり「Set x = Nothing」のコードを実行すると、 IUnknown : Releaseメソッドが呼ばれ、カウントダウン。

  3. カウント=0になったとき、オブジェクトはメモリからアンロードされる(自己消滅)。

Python

IBM developerWorks

Pythonでのメタクラス・プログラミング

Pythonでのメタクラス・プログラミングの第2回が見つからない

Python でのメタクラス・プログラミング、第 3 回

魅力的な Python_ デコレーターで魔法を身近に - IBM developerWorks

魅力的なPython: cursesプログラミング

魅力的なPython_ Pythonでの関数プログラミング_ 第1回

Pythonでの関数プログラミング_ 第2回

魅力的なPython_ Pythonでの関数プログラミング_ 第3回

unit test

コードサンプル

wmi Cookbook — WMI v1.4.9 documentation

windows - How to access wmi in python - Stack Overflow

[テキストプロセッサとしての Python][3]

例題
cat
cmp
cut
head
sort
tail
tee
tr
uniq
・・・

Python Tips:オブジェクトのメソッドを調べたい - Life with Python

1.組み込みの関数で調べる

In [8]: for attr in dir(obj):
   ...:     if callable(getattr(obj, str(attr))):
   ...:         print(attr)
   ...:         
__add__
__class__
__contains__
__delattr__
__dir__
__eq__
__format__
__ge__
__getattribute__
__getitem__
__getnewargs__
__gt__
__hash__
__init__
__init_subclass__
__iter__
__le__
__len__
__lt__
__mod__
__mul__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__rmod__
__rmul__
__setattr__
__sizeof__
__str__
__subclasshook__
capitalize
casefold
center
count
encode
endswith
expandtabs
find
format
format_map
index
isalnum
isalpha
isdecimal
isdigit
isidentifier
islower
isnumeric
isprintable
isspace
istitle
isupper
join
ljust
lower
lstrip
maketrans
partition
replace
rfind
rindex
rjust
rpartition
rsplit
rstrip
split
splitlines
startswith
strip
swapcase
title
translate
upper
zfill

In [9]: 

2.inspect ライブラリの関数で調べる

In [1]: import inspect

In [2]: obj=""

In [3]: inspect.getmembers(obj, inspect.ismethod)
Out[3]: []
inspect.getmembers(obj, inspect.ismethod)
Out[3]: []
inspect.getmembers(obj, inspect.isbuiltin)
Out[5]: 
[('__dir__', <function str.__dir__>),
 ('__format__', <function str.__format__>),
 ('__getnewargs__', <function str.__getnewargs__>),
 ('__init_subclass__', <function str.__init_subclass__>),
 ('__new__', <function str.__new__>),
 ('__reduce__', <function str.__reduce__>),
 ('__reduce_ex__', <function str.__reduce_ex__>),
 ('__sizeof__', <function str.__sizeof__>),
 ('__subclasshook__', <function str.__subclasshook__>),
 ('capitalize', <function str.capitalize>),
 ('casefold', <function str.casefold>),
 ('center', <function str.center>),
 ('count', <function str.count>),
 ('encode', <function str.encode>),
 ('endswith', <function str.endswith>),
 ('expandtabs', <function str.expandtabs>),
 ('find', <function str.find>),
 ('format', <function str.format>),
 ('format_map', <function str.format_map>),
 ('index', <function str.index>),
 ('isalnum', <function str.isalnum>),
 ('isalpha', <function str.isalpha>),
 ('isdecimal', <function str.isdecimal>),
 ('isdigit', <function str.isdigit>),
 ('isidentifier', <function str.isidentifier>),
 ('islower', <function str.islower>),
 ('isnumeric', <function str.isnumeric>),
 ('isprintable', <function str.isprintable>),
 ('isspace', <function str.isspace>),
 ('istitle', <function str.istitle>),
 ('isupper', <function str.isupper>),
 ('join', <function str.join>),
 ('ljust', <function str.ljust>),
 ('lower', <function str.lower>),
 ('lstrip', <function str.lstrip>),
 ('maketrans', <function str.maketrans>),
 ('partition', <function str.partition>),
 ('replace', <function str.replace>),
 ('rfind', <function str.rfind>),
 ('rindex', <function str.rindex>),
 ('rjust', <function str.rjust>),
 ('rpartition', <function str.rpartition>),
 ('rsplit', <function str.rsplit>),
 ('rstrip', <function str.rstrip>),
 ('split', <function str.split>),
 ('splitlines', <function str.splitlines>),
 ('startswith', <function str.startswith>),
 ('strip', <function str.strip>),
 ('swapcase', <function str.swapcase>),
 ('title', <function str.title>),
 ('translate', <function str.translate>),
 ('upper', <function str.upper>),
 ('zfill', <function str.zfill>)]

Basic python file-io variables with enumerate - Stack Overflow

[Orange – Data Mining Fruitful & Fun ][4]

Open source machine learning and data visualization for novice and expert. Interactive data analysis workflows with a large toolbox.

[Orange (ソフトウェア) - Wikipedia][5]

Orangeはオープンソースのデータ視覚化、機械学習、データマイニング用ツールキットである。ビジュアルプログラミング言語として、事前に定義されたウィジェットまたは利用者自身が設計したウィジェットをリンクしてワークフローを作成するインターフェースを介して実装される。またPythonライブラリとして使用できる[2]。オレンジ色のコンポーネントはウィジェットと呼ばれ、単純なデータの視覚化、サブセットの選択と前処理、学習アルゴリズムや予測モデリングの経験的評価まで幅広く活用できる。

Cython

深入りしないCython入門 - Qiita

Cythonとは?

Pythonは処理速度は決して早くない、むしろ遅い部類である。
そこで、C/C++に変換することにより高速化しようというのがCythonである。

Cythonでデバッグする - Qiita

はじめに

Cythonのコードをデバッグしたい.
しかし,デバッガが思ったとおりにうごいてくれない.
そもそも,デバッガが起動しない.
いろいろ試してみたところ,デバッガ上でスクリプトを実行することはできた.(ブレークポイントは張れてるみたいだけど,実行をとめてくれなかった.)

Cython on Raspberry Pi - Qiita

データ分析

やってみよう分析!〜データサイエンティストもコーディング始めました〜 By Fringe81をやってみた

第2部 エクセルで学ぶ分析入門

第3部 データ可視化(ビッグデータに限らない)

Excelだけでワードクラウドをつくってみた! – コラバド(Colaboad)|行政との上手なおつきあいを提案する情報メディア!

  • ワードクラウドを作ってみよう!
  • オープンデータで試してみよう!

Electron

[【2017年1月版】今からでも遅くない!Electron入門 - Qiita][7]
[30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで - Qiita][10]

[10]:http://qiita.com/nyanchu/items/15d514d9b9f87e5c0a29
[7]:http://qiita.com/umamichi/items/6ce4f46c1458e89c4cfc
[6]:https://blogs.technet.microsoft.com/jpilmblg/2009/02/14/adsi-vbscript/
[5]:https://ja.wikipedia.org/wiki/Orange_(ソフトウェア)
[4]:https://orange.biolab.si
[3]:http://www.aihara.co.jp/~taiji/unix-tips/a2asterisk/python-howto-0.html
[2]:https://sites.google.com/site/shinoshino0904/home/programming_tips/kai-fa-huan-jing/batchi-fairu
[1]:http://language-and-engineering.hatenablog.jp/entry/20130502/PatternsOfMSDOSorBAT

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4