Open8
また Unix コマンドで唸っている私へ
ピン留めされたアイテム
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
ファイルから特定のフィールドを取り出す
cut を使うと実現できます。
% cut -d: -f1,3 /etc/passwd | head
root:0
toor:0
daemon:1
operator:2
bin:3
tty:4
kmem:5
games:7
news:8
man:9
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
ファイルを横方向に連結する
paste を使うと実現できます。
% paste /etc/group /etc/passwd | head
wheel:*:0:root,mkn root:*:0:0:Charlie &:/root:/bin/sh
daemon:*:1: toor:*:0:0:Bourne-again Superuser:/root:
kmem:*:2: daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
sys:*:3: operator:*:2:5:System &:/:/usr/sbin/nologin
tty:*:4: bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
operator:*:5:root,mkn tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin
mail:*:6: kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin
bin:*:7: games:*:7:13:Games pseudo-user:/:/usr/sbin/nologin
news:*:8: news:*:8:8:News Subsystem:/:/usr/sbin/nologin
man:*:9: man:*:9:9:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
ファイルの「ここ」から「そこ」までを表示
sed を使うと実現できます。
% sed -n '/root/,/tty/p' /etc/passwd
root:*:0:0:Charlie &:/root:/bin/sh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5:System &:/:/usr/sbin/nologin
bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
ファイルの途中から表示する
tail を使うと実現できます。
% printf 'hoge\nfuga\npiyo\n' | tail -n +2
fuga
piyo
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
環境変数の一部分を切り出す
Shell Command Language の記法を使うと実現できます。
$ hoge="https://example.com/index.html"; echo ${hoge%/*}
https://example.com
$ hoge="https://example.com/index.html"; echo ${hoge%%/*}
https:
$ hoge="https://example.com/index.html"; echo ${hoge#*.}
com/index.html
$ hoge="https://example.com/index.html"; echo ${hoge##*.}
html
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
表形式のデータから一部の列を取り出す
cut を使うと実現できます。
ファイルから特定のフィールドを取り出すと同様です。
$ cut -f 2-4 <<EOF
A B C D E
1 2 3 4 5
6 7 8 9 10
EOF
B C D
2 3 4
7 8 9
![KusaReMKN](https://res.cloudinary.com/zenn/image/fetch/s--Dyn54MYO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/18e725e6fc.jpeg)
Bash で直前のコマンドを sudo する
Event Designator を使うと実現できます。
$ echo "$SHELL"
/bin/bash
$ ls -la /root
ls: cannot open directory '/root': Permission denied
$ sudo !!
sudo ls -la /root
total 28
drwx------ 4 root root 4096 8月 17 10:49 .
drwxr-xr-x 18 root root 4096 7月 4 09:14 ..
-rw-r--r-- 1 root root 571 4月 11 2021 .bashrc
-rw------- 1 root root 20 7月 21 12:07 .lesshst
drwxr-xr-x 4 root root 4096 8月 17 09:39 .npm
-rw-r--r-- 1 root root 161 7月 9 2019 .profile
drwx------ 2 root root 4096 7月 4 09:04 .ssh
-rw-r--r-- 1 root root 0 8月 17 10:49 .sudo_as_admin_successful