Corredor

ウェブ、プログラミングの勉強メモ。

Bash

Ctrl + D でターミナルを閉じないようにする

通常の「ターミナル」で作業している時とか、docker exec でシェルに入っている時とかに Ctrl + D を押下すると、シェルからログアウトされてしまう。 Ctrl + D は EOF (End of File)、ファイルの終わりを示す特殊文字で、標準入力の終了を示すことから、シ…

moreutils の中の便利そうなコマンド : sponge と vidir

moreutils という便利コマンド集があって、Yum とか Homebrew とかで簡単に入れられるので試してみた。今回はその中でも特に有用そうな2つのコマンド、sponge と vidir を紹介する。 moreutils のインストール方法 sponge vidir 以上 moreutils のインストー…

ラズパイ4に接続している Bluetooth 機器を信頼する : bluetoothctl

ラズパイ4に Bluetooth キーボードを接続したのだが、どうも接続が切れやすい。自動で再接続してくれるように出来ないかなーと思い調べてみた。 ラズパイで Bluetooth 管理するためのツールとして、Bluez というパッケージが知られている。恐らくデフォルト…

chmod のシンボルモードを覚える

chmod コマンドは、3桁の数字を記載する「数値モード」と、rwx を +- とかで操作する「シンボルモード」という、2種類のパーミッション指定方法がある。 自分は数値モードの方が直感的で多用していたのだが、-R オプションでファイルやディレクトリに再帰的…

コマンドラインで Google 検索を行う googler を試してみた

コマンドラインから Google 検索を行える、Googler というツールを試してみた。 GitHub - jarun/googler: Google from the terminal 検証は MacOS にて。以下のコマンドでシングルバイナリをダウンロードしてインストールした。 sudo curl -o /usr/local/bin…

htop と gtop を試してみる

リッチな top コマンドである htop と gtop を試してみる。 htop gtop htop htop は OS に応じてパッケージマネージャでインストールする。C 言語製。 $ brew install htop # MacOS $ sudo apt install htop # Ubuntu など $ sudo yum install htop # CentOS…

xdg-open : Linux の GUI で Mac の open コマンドっぽいヤツ

MacOS において open コマンドを使うと、 ディレクトリを指定すれば Finder が開き、 ファイルを指定すれば「テキストエディタ」など適切なソフトでファイルが開く といった動きをする。 Windows の場合は start コマンドを使ったり、explorer.exe の引数に…

chown と chgrp を1回で実行する方法

root ユーザでファイルを作ったりしていて、やっぱり apache ユーザとグループで作らないといけなかったー、みたいな時に、 $ chown apache target_file $ chgrp apache target_file と2回コマンドを実行していた。コレがめんどくさいので、chown と chgrp …

自分の全ての GitHub リポジトリを横断的に検索・文字列置換する

はてなブログを HTTPS 配信に切り替えたので、はてなブログへのリンク URL が http:// から https:// に変わった。 neos21.hatenablog.com 自分は GitHub リポジトリの README.md などにはてなブログへのリンクを貼っているので、全ての GitHub リポジトリを…

Bash でコマンドをエディタで編集して実行する

私はどのようにしてLinuxカーネルを学んだか【電子書籍】[ 平田豊 ]価格: 550 円楽天で詳細を見る Bash 上で Ctrl + x → Ctrl + e とキーを押すと、エディタが開く。このエディタ上でコマンドを編集し、エディタを醜虜すると、入力したコマンドが一括実行で…

Bash でアスタリスクを展開させないようにする

Bash のコマンド中に、アスタリスク * を「文字列」として認識させたい場合があったりする。 # 以下のような場合は「アスタリスク展開」をさせたいが… $ cp ./* ../../dest/ # 以下のコマンドでは「アスタリスク」を文字として使いたい $ set_char * (set_ch…

yum や apt コマンドをラップする「pmw」コマンドを作った

Red Hat Enterprise Linux 7 (できるPRO) [ 平初 ]価格: 3300 円楽天で詳細を見る 僕は CentOS 歴が長いので、Ubuntu の apt コマンドに慣れず、ついつい yum コマンドの要領でコマンドを叩いてしまう。また、Windows の Git SDK に同梱される pacman は全…

Docker で Ubuntu 18.04 を動かしたら日本語入力ができなかったので対処

Ubuntu 18.04 LTS 日本語 Remix 使い方が全部わかる本【電子書籍】ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天Kobo電子書籍ストア価格: 1,628円 以前、Docker で動かした CentOS で、日本語表示の文字化けを直す方法を紹介した…

Bash で空の if ブロックを書くにはコロン「:」を使う

難読化シェル芸の世界【電子書籍】[ kanata ]ジャンル: 本・雑誌・コミック > PC・システム開発 > OS > UNIXショップ: 楽天Kobo電子書籍ストア価格: 3,080円 次のような Bash スクリプトを書いた。 #!/bin/bash if [ 'a' == 'a' ]; then # 今は処理がないの…

ファイルを指定行数ごとに分割するスクリプトを PowerShell と Bash で

PowerShell実践ガイドブック クロスプラットフォーム対応の次世代シェルを徹底解説【電子書籍】[ 吉崎 生 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > プログラミング > プログラミング入門ショップ: 楽天Kobo電子書籍ストア価格: 4,048円 PowerShe…

Node.js をシェルのパイプ中で使ってみる

Node.js 超入門 第2版 [ 掌田津耶乃 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格: 3,300円 Perl や Ruby だと、よくシェルの中でワンライナーを書いて実行していたりする。それを Node.js でもやってみようという…

指定コマンドを繰り返し実行してくれる watch コマンドを試してみた

Linuxシステム〈実践〉入門 沓名亮典/著ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: ドラマ 本と中古ゲームの販売買取価格: 3,168円 REST API で動作ログが確認できるサービスがあり、CLI でログを見られるのだが、何度も同じコマン…

ログファイルに同一行が何行あるかカウントするワンライナー

アクセスログのファイルなんかを見ていて、「12時台に一番アクセスがあったページはどれかな?」みたいなのを探る時に、コマンドで探る方法を紹介する。 example.log 2020-01-01T00:01:24 /index.html 200 2020-01-01T00:01:25 /somepage.html 200 2020-01-0…

Linux システム・ネットワーク管理者向けのコマンド集まとめ

[改訂新版]プロのためのLinuxシステム構築・運用技術【電子書籍】[ 中井悦司 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > ネットワーク > その他ショップ: 楽天Kobo電子書籍ストア価格: 3,278円 いわゆるシスアド的な業務でよく使うであろうコマ…

Bash の $@ と $* の挙動の違い

新しいシェルプログラミングの教科書 [ 三宅 英明 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > その他ショップ: 楽天ブックス価格: 2,970円 ググりづらい Bash の記号に関するネタ。 Bash 関数の中で、全ての引数を取得できる2つの記号がある。 $@ …

同じ Linux マシンにログインしているユーザにメッセージを送る「wall」「write」コマンド

以前、/dev/pts/0 などに echo すると、他のユーザのセッションに対して echo できる、というネタを紹介した。 neos21.hatenablog.com tty コマンドの結果が /dev/pts/0 なユーザのセッションにおいて、 $ echo 'TEST' > /dev/pts/0 と実行すると、自身のプ…

「sudo su」を理解する

Linux で root ユーザに切り替えて作業を始める時に打つ $ sudo su - というコマンド。コレが何を意味しているのか、改めて理解しようとしてみる。 まず、root ユーザは、全ての特権を持つ「神」ユーザ。自分で Linux OS を新規インストールしたりしない限り…

テキストファイルを確認する Linux コマンドのまとめ

普段 Linux 環境でテキストファイルを見たり編集したりする時、僕はもっぱら Vim を使っている。しかし、ログファイルを閲覧したりする時は、less とかを上手く使えるとカッコイイ気がする。 そこで今回は、今更ながらテキストファイルを閲覧するコマンド類…

シェルスクリプトの Lint ツール「shellcheck」を使ってみた

シェルプログラミング実用テクニック (Software Design plusシリーズ) [ 上田隆一 ]ジャンル: 本・雑誌・コミック > PC・システム開発 > OS > Linuxショップ: 楽天ブックス価格: 3,278円 日頃、Bash で簡単なスクリプトを書くことがある。何もインストール…

Git For Windows SDK に expect コマンドが入っていなかったので pacman でインストールする

パスワードを使って SSH 接続する時に、expect コマンドを使うと、入力を自動化できたりする。 neos21.hatenablog.com このシェルスクリプトを作ったのは MacOS だったので、Windows でも同じことをしたくなった時に、GitBash に expect コマンドが入ってい…

SSH Config の管理を捗らせる Include と、ホストを一覧表示するワンライナー

~/.ssh/config (SSH Config) というファイルに、SSH 接続情報を記載しておける。当然、コマンドをイチイチ打つより便利なので多用しているのだが、最近そろそろ登録ホスト数が増えてきて、1ファイルに書いておくのが大変になってきた。 そこで調べてみると、…

踏み台サーバを2台経由して SSH ログイン・ポートフォワーディングする

通常、最もシンプルな構成で別のサーバに SSH 接続する際は、 ローカルマシン 目的のサーバ という登場人物で、ローカルマシンから $ ssh -i 【ローカルマシンにある秘密鍵のパス】 【目的のサーバのユーザ名】@【目的のサーバのパブリック IP】 と叩けば SS…

awk を使って出力のアラインメントを揃える

Node.js スクリプトを書く際は、console.table() とか、columnify という npm パッケージとかを使うと、出力するデータをイイカンジに整形できる。 neos21.hatenablog.com 今回は Bash スクリプトの中で、イイカンジに整形したくて、やり方を調べた。 参考:…

git pull 時に --set-upstream-to とか言われるのを回避するコマンドを作る

git pull した時に --set-upstream-to しろみたいなコメントが出て、git pull 出来ない時がある。 $ git pull There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details…

MacOS と Linux で top コマンドが大分違うので整理する

top コマンドで CPU 使用率やメモリ使用率を見たいなーと思ったのだが、MacOS と Linux (CentOS) とでオプションがかなり違うので、よく使うモノを整理することにした。 環境確認 普通に top コマンドを打った画面 CPU 使用率順にソートする メモリ使用率順…