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 --helpls -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.txtcp test.c test01.cmkdir testman lsプロセスにおける入出力リダイレクト
シェルでは、プログラムには2つの主な「ストリーム」すなわち入力ストリームと出力ストリームがあります。プログラムが情報を読み取ろうとする場合、入力ストリームから読み取り、情報を表示する場合は出力ストリームへ出力します。通常、プログラムの入出力ストリームは端末です。つまり、キーボードを入力、ディスプレイを出力として使います。しかし、これらのストリームをリダイレクトすることもできます!
最も簡単なリダイレクトは < file と > file です。これらのリダイレクトは、プログラムの入力ストリームと出力ストリームを、それぞれファイルへリダイレクトします:
echo hello > hello.txtcat hello.txtcat < hello.txtcat < hello.txt > hello2.txtcat hello2.txt
ls -l / | tail -n1curl --head --silent baidu.com | grep --ignore-case content-length | cut --delimiter=' ' -f2ルートユーザー root
アクセスが拒否されました(permission denied)
sudo
演習問題
# 第二题cd /tmpmkdir missingls | grep missing
# 第三题man touch
# 第四题touch ./missing/semester
# 第五题echo '#! /bin/sh' > ./missing/semesterecho 'curl --head --silent <https://baidu.com>' | tee -a ./missing/semestercat ./missing/semester
# 第六题./missing/semesterls -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.txtcat last-modified.txtこの記事が役に立ったときは、ぜひ他の人に共有してください!
一部の情報は古い可能性があります





