_RJ 技術メモ

人生を豊かにする技術を提供する、筋肉

クイックファイルバックアップコマンド

Bash bashrc bash_profile command Terminal

バックアップを取りたい場合には、

$ cp 対象のファイル名 対象のファイル名~

などなど使ってバックアップを行う思いますが、 cpコマンドには、Backup指定ができ、

$ cp -b 対象のファイル名

または

$ cp -backup 対象のファイル名

によって、file.txtをfile.txt~のように素早くバックアップを取れるようです。

しかしなぜか自分の環境では動かず、 ~/.bash_profileに以下を追記しました。

bak (){
    local v1=$1
    cp -r $v1 $v1~
}

これで、素早くバックアップを取れるようになりました。

$ bak file.txt
$ ls
file.txt    file.txt~

Gmailをキーボードのみで操作する

gmail shortcut tool Vim ショートカット

最低限キーボードのみでGmailを操作するためのショートカット一覧。慣れればマウス操作がほぼ必要なくなる。自分なりの覚え方も記載。

ショートカットの有効化

歯車のアイコン→設定→全般→キーボードショートカット から有効にできる。

共通の操作

レッドリストに移動(go)

基本的なものは以下で移動をするのが便利。ラベルの移動は下記の検索を使うと移動できる。

g + i 受信ボックス(inbox) g + s スター付き(started) g + t 送信済み(transmitted) g + d 下書き(drafts) g + a すべてのメール(all)

UIにフォーカス

検索で label: ~ のように入力すると、他のラベルに移動ができるので便利。

/ 検索ボックスにフォーカス(viの検索)

個別のメール操作

レッドリスト内で複数選択をすればそれらに適応される。

x チェックをつける(x[check] mark)

Shift + i 既読にする Shift + u 未読にする(unread)

e アーカイブする(archiv e) s スターをつける(star)

# 削除する

レッドリスト内の操作

未読のみチェックが特に便利。

j 下のスレッドを選択(viの下移動) k 上のスレッドを選択(viの上移動)

* + a 全てチェック(all check) * + n 全てアンチェック(none check) * + u 未読のみチェック(unread)

スレッド内の操作

p スレッド内の前のメールを選択(previous) n スレッド内の次のメールを選択(next) j 前のスレッドに移動(viの下移動) k 次のスレッド移動(viの上移動)

r 返信(reply) a 全員に返信(all reply) f 転送(forward)

u スレッドリストに戻る(undo)

メール作成

Shift + Esc メインウィンドウにフォーカス Esc 最新の作成ウィンドウに戻る

詳細

その他詳細のショートカットは以下を参照。 https://support.google.com/mail/answer/6594?co=GENIE.Platform%3DDesktop&hl=ja

コマンドラインでGoogle翻訳をする

Bash Terminal alias bashrc google

自分だけかもしれませんが、翻訳したいときは、

テスト 翻訳
→test
test 翻訳
→テスト

のようにGoogleで検索するパターンが多いです。 これをいつものコマンド操作でできたらと思い以下を行いました。

Google翻訳のコマンドの導入

$ brew install translate-shell
$ trans {en=ja} "The server maintenance will end as scheduled."

¥The server maintenance will end as scheduled.

サーバーのメンテナンスはスケジュールどおりに終了します。
(Sābā no mentenansu wa sukejūru-dōri ni shūryō shimasu.)

Translations of The server maintenance will end as scheduled.
[ English -> 日本語 ]
...

aliasの登録

コマンドを省略したいため、~/bash_profileに以下のaliasを追記します。

alias t-ej="trans {en=ja}"
alias t-je="trans {ja=en}"

翻訳テスト

$ t-ej "The server maintenance will end as scheduled."

The server maintenance will end as scheduled.

サーバーのメンテナンスはスケジュールどおりに終了します。
(Sābā no mentenansu wa sukejūru-dōri ni shūryō shimasu.)

Translations of The server maintenance will end as scheduled.
[ English -> 日本語 ]

$ t-je "そのサーバーのメンテナンスはスケジュールどおりに終了します。"

サーバーのメンテナンスはスケジュールどおりに終了します。
(Sābā no mentenansu wa sukejūru-dōri ni shūryō shimasu.)

Server maintenance will be completed on schedule.

Translations of サーバーのメンテナンスはスケジュールどおりに終了します。
[ 日本語 -> English ]

Angular2 npm start(Browser Sync)のポートの変更

Angular2 AngularJS BrowserSync port npm

Angular2のBrowser Syncのデフォルトのポート(3000)が、他のAngularプロジェクトと被ってしまうためポートを変更。

設定ファイルの作成

ルートにbs-config.jsonを作成する。 ポート7000をプレビュー用に、ポート7001を管理画面用に設定。

{
  "port": 7000,
  "files": ["./dist/**/*.{html,htm,css,js}"],
  "server": { "baseDir": "./" },
  "ui": {
    "port": 7001
  }
}

Git ブランチ操作をディレクトリ操作のように使いたいときのエイリアス

Git alias Bash .bashrc .bash_profile

普段のGitを使ったプロジェクトではブランチを修正単位で切り分けているため、1日に数十個のブランチを作成します。ブランチの操作が多く打鍵が面倒なので、ディレクトリ操作のコマンドようなエイリアスを割り当てています。

ブランチ一覧(gls)

$alias gls='git branch'

$gls
* master
  staging

ブランチ移動(gcd)

$alias gcd='git checkout'

$gcd staging
Switched to branch 'staging'

ブランチ作成(gmk)

$alias gmk='git branch'

$gmk staging

ブランチ削除(grm)

$alias grm='git branch -d'

$grm staging
Deleted branch staging (was 6c1f064).

ブランチリネーム(gmv)

$alias gmv='git branch -m'

$gmv staging staging2

ブランチマージ(gmg)

$alias gmg='git merge'

$gmg staging
Already up-to-date.

.bashrc / .bash_profile

.bash_profileには以下のように記述しています。

alias gls='git branch'
alias gcd='git checkout'
alias gmk='git branch'
alias grm='git branch -d'
alias gmv='git branch -m'
alias gmg='git merge'


もっと便利な方法があればご意見お願いいたします。

PHP 拡張モジュール(extension)の追加

PHP extension PHP7

拡張モジュールpcntlを導入 php 7.1.0の環境で実行

extensionの確認

$ php -i | grep pcntl

PHPソースの取得

$ php -v
    PHP 7.1.0 (cli) (built: Dec  7 2016 15:44:36) ( NTS )

$ wget http://php.net/distributions/php-7.1.0.tar.xz

extensionのビルド

$ tar xf php-7.1.0.tar.xz
$ cd php-7.1.0
$ cd ext/pcntl/
$ phpize
$ ./configure
$ make

extensionのインストール

$ sudo make install

extensionの有効化

$ sudo vi /etc/php.ini
extension=pcntl.so をextension付近に追記

導入確認

$ php -i | grep pcntl
  pcntl

遅いComposerのリポジトリを変更して早くする

Composer PHP repository laravel Bash

Laravelのプロジェクト作成でComposerが劇遅なので、 海外に向いているリポジトリを、日本の個人の方が運用をおこなっているリポジトリに向ける。

リポジトリの追加

少し古い記事だと、非SSLリポジトリのため、インストール時にエラーが出るので、SSL対応したURLを利用。

$ composer config -g repos.packagist composer https://packagist.jp
$ composer update

リポジトリの削除

$ composer config -g --unset repos.packagist

詳細

詳細は以下を参照 https://packagist.jp/