mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1080 文字
3 分
missing-semester-class01
2023-01-11

class01

shell#

特徴#

それらは、プログラムを実行し、入力を与え、出力を半構造化された方法で確認できるようにします。

使い方#

date # 显示时间
echo hello # 输入参数‘hello’并输出
echo "hello world"
echo $PATH # 输出环境变量¥PATH
# /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

私たちが echo コマンドを実行すると、シェルは echo というプログラムを実行する必要があると理解し、次いで $PATH によって「:」で区切られた一連のディレクトリの中から名前でそのプログラムを検索します。プログラムが見つかると、それを実行します。どのプログラム名が具体的にどのプログラムを指しているかを確認するには which コマンドを使用します。私たちは $PATH を回避し、実行したいプログラムのパスを直接指定して実行することもできます。

シェルでのナビゲーション#

シェルでのパスは、区切られたディレクトリの集合です。Linux と macOS では / で区切りますが、Windows では \\ です。/ はルートディレクトリです。

pwd # 現在のディレクトリを取得
cd /home # ルートディレクトリ直下の home ディレクトリへ
cd ./home # 現在のディレクトリ内の home ディレクトリへ
cd .. # 一つ上のディレクトリ

一般的には、プログラムを実行する際、パスを指定しなければ、そのプログラムは現在のディレクトリで実行されます。

ls # ディレクトリ内のファイルを表示
ls --help
ls -l /home
# drwxr-xr-x 4 root root 4096 11月 30 21:01 data

まず、この行の最初の文字 d は、data がディレクトリであることを示します。続く9文字は、それぞれ3文字ずつグループを形成します(rwx)。それぞれが、ファイルの所有者root)、グループroot)およびその他の人 が持つ権限を表します。- は、そのユーザーが該当する権限を持っていないことを意味します。

上記の情報から、ファイルの所有者だけが変更できる(w)、data ディレクトリ(例:ディレクトリ内のファイルを追加・削除すること)です。

あるディレクトリに入るには、そのディレクトリとその親ディレクトリの「検索」権限(実行権限:x)が必要です。含まれる内容を一覧表示するには、そのディレクトリに対して読み取り権限(r)が必要です。ファイルについても、権限の意味は同様です。注意として、/bin ディレクトリ内のプログラムは、最後のグループにあるものとして、すべてのユーザーのグループにも x 権限が含まれており、つまり誰でもこれらのプログラムを実行できるということです。

mv test ./data/test.txt
cp test.c test01.c
mkdir test
man ls

プロセスにおける入出力リダイレクト#

シェルでは、プログラムには2つの主な「ストリーム」すなわち入力ストリームと出力ストリームがあります。プログラムが情報を読み取ろうとする場合、入力ストリームから読み取り、情報を表示する場合は出力ストリームへ出力します。通常、プログラムの入出力ストリームは端末です。つまり、キーボードを入力、ディスプレイを出力として使います。しかし、これらのストリームをリダイレクトすることもできます!

最も簡単なリダイレクトは < file> file です。これらのリダイレクトは、プログラムの入力ストリームと出力ストリームを、それぞれファイルへリダイレクトします:

echo hello > hello.txt
cat hello.txt
cat < hello.txt
cat < hello.txt > hello2.txt
cat hello2.txt
ls -l / | tail -n1
curl --head --silent baidu.com | grep --ignore-case content-length | cut --delimiter=' ' -f2

ルートユーザー root#

アクセスが拒否されました(permission denied)

sudo

演習問題#

# 第二题
cd /tmp
mkdir missing
ls | grep missing
# 第三题
man touch
# 第四题
touch ./missing/semester
# 第五题
echo '#! /bin/sh' > ./missing/semester
echo 'curl --head --silent <https://baidu.com>' | tee -a ./missing/semester
cat ./missing/semester
# 第六题
./missing/semester
ls -l ./missing
# -rw-r--r-- 1 root root 62 1月 11 21:46 semester
# 该文件无x 运行权限
# 第七题
man chmod
# 第八题
chmod +x ./missing/semester
# 第九题
./semester | grep Date > ./last-modified.txt
cat last-modified.txt
共有

この記事が役に立ったときは、ぜひ他の人に共有してください!

missing-semester-class01
https://dreaife.tokyo/jp/posts/smart-shell-guide/
著者
dreaife
公開日
2023-01-11
ライセンス
CC BY-NC-SA 4.0

一部の情報は古い可能性があります

関連した投稿 スマート
1
Ubuntuでoh-my-zshとそのコンポーネントを導入する
prog-side Ubuntuでoh-my-zshと関連コンポーネントを導入する手順として、まずzshとgitをインストールし、次にwgetでoh-my-zshを導入します。その後、powerlevel10kテーマと必要なプラグインをクローンし、.zshrcを更新してテーマとプラグインを適用します。最後にzsh-batやyou-should-useなどの追加プラグインを導入し、システム更新を行って正常動作を確認します。
2
UbuntuでNATを使ってルーターへネットワークを転送する
prog-side Netplan設定の変更、IPフォワーディングの有効化、NAT転送設定を行うことで、Ubuntuからルーターへネットワークを転送できます。手順には既存設定のクリア、静的IP設定、DHCPサービスの導入と設定、ネットワーク共有が正常に機能するかの確認が含まれます。
3
正規表現入門
prog-side 正規表現は、文字列の特定パターンを記述・照合するための強力なテキストパターンマッチングツールです。リテラル文字、特殊文字、文字クラス、メタ文字などの要素から構成され、多くのプログラミング言語やテキスト処理ツールで広く利用されています。データ検証、テキスト置換、部分文字列抽出などに使え、柔軟性と表現力に優れています。代表的なメタ文字や機能には、文字マッチ、量指定子、境界マッチ、グルーピングなどがあり、効率的なテキスト処理に役立ちます。
4
新時代における第一回の選抜
life AI技術の発展に伴い、高度なモデルを利用するコストが社会の階層化を招き、経済力のある人だけがこれらのモデルを使えるようになる可能性がある。現在の価格はまだ許容範囲だが、将来的な値上がりにより大多数が負担できなくなり、第一のふるい分けが生じるかもしれない。筆者はこの現象に不安を覚えつつ、AIの応用がすでにプログラミング領域を超え、より広範な産業へと広がっていることも実感している。新しい世界の課題と機会に向き合いながら、個人は時代の推進力に押されつつ探索を続けている。
5
ブログ移行-Mizuki設定記録
infra notionNextからmizukiへの移行過程の記録、主な理由はnotionNextの制限です。mizukiを選んだ理由は、軽量で機能のバランスが良く、日記とプロジェクトの表示をサポートしているからです。設定プロセスは簡単で、内容はmdとtsファイルによって制御され、同時にbangumi APIとの接続も実現しています。CIを用いてNotionのコンテンツを同期する計画を立て、多言語対応を進め、画像リンクの有効期限切れの問題を解決しました。

目次