Cyberblack.net

Cyberblack Official Site

Exercise1 Standard input/output & Pipeline

1.標準入力、標準出力、標準エラー出力の確認

1.カレントディレクトリをホームディレクトリに変更してください。

Answer
$ cd
$ pwd
/home/student

2.catコマンドとリダイレクト機能を使って、cloud.txtというファイルをホームディレクトリに作成してください。

ファイルの内容は次の3行です。作成後、catコマンドで確認してください。 aws gcp azure

Answer
$ cat > cloud.txt
aws //[enterキー]
gcp //[enterキー]
azure //[enterキー]
//[Ctrl]+[D]終了
$ cat cloud.txt
aws
gcp
azure

3.catコマンドとリダイレクト機能を使って、2.で作成したcloud.txtの4行目以降に、次の3行を追記してください。また、catコマンドで追記できたことを確認してください。

oracle cloud IBM cloud digital ocean

Answer
$ cat >> cloud.txt
oracle cloud //[enterキー]
IBM cloud //[enterキー]
digital ocean //[enterキー]
//[Ctrl]+[D]終了
$ cat cloud.txt
aws
gcp
azure
oracle cloud
IBM cloud
digital ocean

4.cloud.txtの内容を画面表示してください。このとき、cloudベンダーの名称がアルファベットの順と逆順に並べ替えられた状態で表示してください。

Answer
$ cat cloud.txt | sort
IBM cloud
aws
azure
digital ocean
gcp
oracle cloud
$ cat cloud.txt | sort -r
oracle cloud
gcp
digital ocean
azure
aws
IBM cloud

5.findコマンドを使って、/etc から拡張子が.txtのファイルを検索してください。パーミッションがないため、「許可がありません」と表示されるファイルがあります。なので、リダイレクト機能を利用して、エラー内容が表示されないようにしてみましょう。

Answer
$ find /etc -name '*.txt'
/etc/pki/nssdb/pkcs11.txt
find: ‘/etc/pki/rsyslog’: 許可がありません
find: ‘/etc/grub.d’: 許可がありません
find: ‘/etc/lvm/archive’: 許可がありません
find: ‘/etc/lvm/backup’: 許可がありません
find: ‘/etc/lvm/cache’: 許可がありません
find: ‘/etc/dhcp’: 許可がありません
find: ‘/etc/nftables’: 許可がありません
find: ‘/etc/cups/ssl’: 許可がありません
find: ‘/etc/sssd’: 許可がありません
find: ‘/etc/polkit-1/rules.d’: 許可がありません
find: ‘/etc/polkit-1/localauthority’: 許可がありません
/etc/brltty/Input/ba/all.txt
/etc/brltty/Input/bd/all.txt
/etc/brltty/Input/bl/18.txt
/etc/brltty/Input/bl/40_m20_m40.txt
/etc/brltty/Input/ec/all.txt
/etc/brltty/Input/ec/spanish.txt
/etc/brltty/Input/eu/all.txt
/etc/brltty/Input/lb/all.txt
/etc/brltty/Input/lt/all.txt
/etc/brltty/Input/mb/all.txt
/etc/brltty/Input/mn/all.txt
/etc/brltty/Input/tn/all.txt
/etc/brltty/Input/tt/all.txt
/etc/brltty/Input/vd/all.txt
/etc/brltty/Input/vr/all.txt
/etc/brltty/Input/vs/all.txt
/etc/brltty/Input/xw/all.txt
find: ‘/etc/audit’: 許可がありません
find: ‘/etc/libvirt’: 許可がありません
find: ‘/etc/firewalld’: 許可がありません
find: ‘/etc/sudoers.d’: 許可がありません
$ find /etc -name '*.txt' 2>/dev/null
/etc/pki/nssdb/pkcs11.txt
/etc/brltty/Input/ba/all.txt
/etc/brltty/Input/bd/all.txt
/etc/brltty/Input/bl/18.txt
/etc/brltty/Input/bl/40_m20_m40.txt
/etc/brltty/Input/ec/all.txt
/etc/brltty/Input/ec/spanish.txt
/etc/brltty/Input/eu/all.txt
/etc/brltty/Input/lb/all.txt
/etc/brltty/Input/lt/all.txt
/etc/brltty/Input/mb/all.txt
/etc/brltty/Input/mn/all.txt
/etc/brltty/Input/tn/all.txt
/etc/brltty/Input/tt/all.txt
/etc/brltty/Input/vd/all.txt
/etc/brltty/Input/vr/all.txt
/etc/brltty/Input/vs/all.txt
/etc/brltty/Input/xw/all.txt

6.5の検索結果をエラー出力も含めて、画面とfind_results.txtという名前のテキストファイルに出力してください。catコマンドでfind_results.txtを確認してみましょう。

Answer
$ find /etc -name '*.txt' 2>&1 | tee find_results.txt
/etc/pki/nssdb/pkcs11.txt
find: ‘/etc/pki/rsyslog’: 許可がありません
find: ‘/etc/grub.d’: 許可がありません
find: ‘/etc/lvm/archive’: 許可がありません
find: ‘/etc/lvm/backup’: 許可がありません
find: ‘/etc/lvm/cache’: 許可がありません
find: ‘/etc/dhcp’: 許可がありません
find: ‘/etc/nftables’: 許可がありません
find: ‘/etc/cups/ssl’: 許可がありません
find: ‘/etc/sssd’: 許可がありません
find: ‘/etc/polkit-1/rules.d’: 許可がありません
find: ‘/etc/polkit-1/localauthority’: 許可がありません
/etc/brltty/Input/ba/all.txt
/etc/brltty/Input/bd/all.txt
/etc/brltty/Input/bl/18.txt
/etc/brltty/Input/bl/40_m20_m40.txt
/etc/brltty/Input/ec/all.txt
/etc/brltty/Input/ec/spanish.txt
/etc/brltty/Input/eu/all.txt
/etc/brltty/Input/lb/all.txt
/etc/brltty/Input/lt/all.txt
/etc/brltty/Input/mb/all.txt
/etc/brltty/Input/mn/all.txt
/etc/brltty/Input/tn/all.txt
/etc/brltty/Input/tt/all.txt
/etc/brltty/Input/vd/all.txt
/etc/brltty/Input/vr/all.txt
/etc/brltty/Input/vs/all.txt
/etc/brltty/Input/xw/all.txt
find: ‘/etc/audit’: 許可がありません
find: ‘/etc/libvirt’: 許可がありません
find: ‘/etc/firewalld’: 許可がありません
find: ‘/etc/sudoers.d’: 許可がありません
$ cat find_results.txt
/etc/pki/nssdb/pkcs11.txt
find: ‘/etc/pki/rsyslog’: 許可がありません
find: ‘/etc/grub.d’: 許可がありません
find: ‘/etc/lvm/archive’: 許可がありません
find: ‘/etc/lvm/backup’: 許可がありません
find: ‘/etc/lvm/cache’: 許可がありません
find: ‘/etc/dhcp’: 許可がありません
find: ‘/etc/nftables’: 許可がありません
find: ‘/etc/cups/ssl’: 許可がありません
find: ‘/etc/sssd’: 許可がありません
find: ‘/etc/polkit-1/rules.d’: 許可がありません
find: ‘/etc/polkit-1/localauthority’: 許可がありません
/etc/brltty/Input/ba/all.txt
/etc/brltty/Input/bd/all.txt
/etc/brltty/Input/bl/18.txt
/etc/brltty/Input/bl/40_m20_m40.txt
/etc/brltty/Input/ec/all.txt
/etc/brltty/Input/ec/spanish.txt
/etc/brltty/Input/eu/all.txt
/etc/brltty/Input/lb/all.txt
/etc/brltty/Input/lt/all.txt
/etc/brltty/Input/mb/all.txt
/etc/brltty/Input/mn/all.txt
/etc/brltty/Input/tn/all.txt
/etc/brltty/Input/tt/all.txt
/etc/brltty/Input/vd/all.txt
/etc/brltty/Input/vr/all.txt
/etc/brltty/Input/vs/all.txt
/etc/brltty/Input/xw/all.txt
find: ‘/etc/audit’: 許可がありません
find: ‘/etc/libvirt’: 許可がありません
find: ‘/etc/firewalld’: 許可がありません
find: ‘/etc/sudoers.d’: 許可がありません

2.主なフィルタコマンドの確認

1.カレントディレクトリをホームディレクトリに変更してください。

Answer
$ cd
$ pwd
/home/student

2.catコマンドとリダイレクト機能を使って、programming.txtというファイルをホームディレクトリに作成してください。

ファイルの内容は次の8行です。作成後、catコマンドで確認してください。

ruby ruby javascript shellscript shellscript shellscript python go

Answer
$ cat > programming.txt
ruby //[enterキー]
ruby //[enterキー]
javascript //[enterキー]
shellscript //[enterキー]
shellscript //[enterキー]
shellscript //[enterキー]
python //[enterキー]
go //[enterキー]
//[Ctrl]+[D]終了
$ cat programming.txt
ruby
ruby
javascript
shellscript
shellscript
shellscript
python
go

3.programming.txtから重複行を排除し、昇順(アルファベット順)に並び替えて表示してください。

Answer
$ uniq programming.txt | sort
go
javascript
python
ruby
shellscript

4.programming.txtから重複行を排除し、逆順(アルファベット順)に並び替えて、上位2行を表示してください。

Answer
$ uniq programming.txt | sort -r | head -n 2
shellscript
ruby

5.programming.txtから重複行を排除し、逆順に並び替えて、画面表示と同時にファイルtee.txtに保存してください。

Answer
$ uniq programming.txt | sort -r | tee tee.txt
shellscript
ruby
python
javascript
go
$ cat tee.txt
shellscript
ruby
python
javascript
go
Last updated on 13 Apr 2020
Published on 17 Oct 2017