アーシの毎日インプット

毎日1つ以上学習する。学習した内容を公開する。を目標に自分のスキルアップを目指します。

linux

基本のlinuxコマンド

最近ちょっと真面目に新人教育を行っています。 システムエンジニアになるとlinuxコマンドをよく使うようになるのですが、基本として何を教えたらいいかなと思い、ちょっと考えてみました。 【環境内移動系】(4コマンド)pwdcdlsll 【ファイル確認系】(5コ…

echoの""と''の違い

今まであまり意識していませんでしたが、linuxシェルのechoコマンドで囲み文字に""(ダブルクォーテーション)を使うか''(シングルクォーテーション)を使うかで処理が変わる事に気付きました。 echoコマンドとはlinuxにおける文字列出力のコマンドです。 …

cp -pでそのままコピーしよう!

Linux環境でよく使うcp(コピー)コマンド。 そのコマンドのオプションに-pをつけてあげると「そのままコピーできる」ことを知りました。 「そのままコピーできる」とは、所有者・権限・更新日時といった情報まで丸ごとコピーできるという意味です。 逆に、…

欲張りなteeコマンド

Linuxで使用できる欲張りなコマンドを見つけました。 Linuxコマンドって基本的には結果が画面出力されます。 その結果を直接見て確認できるのはいいですが、結果を保存しておきたいということもありますよね。 そういった時に使えるのがリダイレクトという機…

ファイルの更新日を操作するLinuxコマンド

ファイルの更新日を自由に操作するLinuxコマンドを覚えました。 touchコマンドの-dオプションです。 今回はローカルでLinuxコマンドを使えるGit Bashを使って下記のようなコマンドを実行してみました。 まず、何もファイルがないところで下記のコマンドを実…

grepでヒットした行の前後も合わせて出力する

linuxコマンドの一つgrep 特定の文言を含む列を特定するのに優れたコマンドです。 ただし、調べたいって、特定の行だけを特定したいときもあれば、その前後の行についても合わせて情報が欲しい時ってありますよね。 前後の行の情報を知りたいときって、今ま…

shellのif文中になにもしない

bashのシェル中でifの条件分岐を切ったとき、 中に処理を記載しないと書式的に正しくなく、異常終了してしまいます。 「≧」の処理を「<」に置き換えるなど、処理を書かない条件をなくししまう方法もあるのですが、周りのプログラムと整合性を取ったり、今後…

shellの絶対パス取得

shellを実行したとき、下記のシェルを実行した場所や実行方法で挙動が変わるのがちょっと嫌でした。 ・シェルの格納ディレクトリでそのシェルを実行したとき ・絶対パスでシェルを実行したとき ・関係ないディレクトリから相対パスでシェルを実行したとき こ…

sh -xでシェルをデバッグ

linuxでシェルを実行する場合、 sh -x <シェル名> で起動するとシェルのデバッグができます。 渡ってきた引数がどのように処理され、どの値とどの値による比較が行われたかなどがコンソール上にでてきます。 今まで知りませんでした。 知ってからはシェル…

sedで空白行を削除する

linux環境で空白行を削除(無視)する方法、sedを使う方法が簡単みたいです。 sed '/^$/d' 先頭記号"^"と終端記号"$"を削除する。 で行削除になるようです。 ex1.m-yabe.com ■ファイルに対して実行するなら sed '/^$/d' <ファイル名> ■ファイルの中身を書き…

xargsでワンライナーの幅が広がりそう

linux環境で実行できるコマンドxargs これを使うとワンライナーが捗りそうです。 www.atmarkit.co.jp www.atmarkit.co.jp linux環境で何かを捜査するときは、簡単なコマンドはワンライナーで、難しい処理はシェルを作成するのが私の基本ですが、xargsを利用…

bashの数値比較

shellを作る時によく書くif文ですが、条件に使う演算子がなかなか覚えられません。 覚えるためにここに書き記しておきます。 ■NUM1=NUM2であれば -eq:equalで覚えられそう if [ ${NUM1} -eq ${NUM2} ]; then # 処理 fi ■NUM1>NUM2であれば -gt:greater tha…

これって1ステップ?

プログラミングの仕事をしていると生産量をステップ数(コードを記載した行数)で評価されることが多々あります。 ステップ数では生産量も品質もわからないことはわかっていながら、他に指標がないので、生産している感じを出すために計測しています。この間…

シェルの拡張子

シェルの拡張子って.shだと思っていました。拡張子なしでも、他の拡張子でも、中身の記述がシェルなら動作するみたいです。よく考えたら、unix系のOSってファイル名でファイル種別を意識していませんし、当然といえば当然ですが。 (拡張子だけtarに変えてバ…

linuxでcsvカラム数を調べるのって

head -1 fileName.csv | sed 's/,/¥n/g' | wc -lのような感じで調べてしまうのですが、もっと簡単な方法はないんですかね?ちなみに、上記の方法では、カンマを改行に置換することにより、カラム数を行数という形で取得できめす。 行によってカラム数が変わ…

sedって改行コードを削除できない

linuxコマンドのお話です。sedという置換コマンドがあります。(ファイルを指定したりパイプで繋いだりなどの方法があるので)簡単に書くと、 sed 's/置換される文字列/置換後の文字列/g'正規表現も利用可能です。そんなsedという置換コマンドで、特定の文字…

【アーシの原点】

【頭を鍛える迷路集】


スポンサードリンク