シェル
特徴
プログラムを実行し、入力を与え、その出力を半構造化された方法で確認できます
使い方
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/binecho コマンドを実行すると、シェルは 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)、そしてその他のすべてのユーザーが持つ権限を表します。- は、そのユーザーが該当する権限を持っていないことを示します。
上記の情報から、data フォルダーを変更(w)できるのはファイルの所有者だけだと分かります(たとえば、フォルダー内のファイルを追加または削除できます)。
あるフォルダーに入るには、そのフォルダーと親フォルダーに対する「検索」権限(「実行可能」権限の 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=' ' -f2rootユーザー
アクセス拒否(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この記事が役に立ったときは、ぜひ他の人に共有してください!
一部の情報は古い可能性があります





