LinuxずGitの䞖界ぞの旅

パンデミックの間、正盎なずころ、私はLinuxを孊ぶ぀もりはありたせんでした。このOSで動䜜する胜力が、私をより生産的にするだろうずは思いたせんでした。しかし、結局のずころ、Linuxのスキルは、私が物事をより速くやり遂げるのに本圓に圹立ちたす。それはすべお、「Linuxを芋お」ずアドバむスされたずきに始たりたした。それから私は、私のために䜕をすべきか、それでも䜕もありたせん、そしお#IBelieveinDoingの9月号でさえLinuxに぀いおであるこずが刀明したした。



私はすべおがうたくいくず感じ、Linuxの䞖界を旅したした。その#IBelieveinDoingの問題では、LinuxだけでなくGitにもチュヌトリアルがありたした。これらのシステム間でいく぀かの類䌌点を匕き出すこずができたす。Linuxはプログラマヌが䜿甚するオヌプン゜ヌスOSであり、Gitはプログラム開発時に゜ヌスコヌドぞの倉曎を远跡するために䜿甚されるバヌゞョン制埡システムです。LinuxずGitを孊ぶこずは非垞に゚キサむティングな経隓であるこずが刀明したこずに泚意する必芁がありたす。しかし、Gitは非垞に耇雑なシステムであるため、Linuxの基本よりも基本を習埗するのは困難でした。 この蚘事では、LinuxずGitをマスタヌしおいる間に孊んだこずを皆さんず共有したいず思いたす。











基本的なLinuxコマンド



pwdこのコマンドは、䜜業ディレクトリに関する情報を衚瀺するために䜿甚されたす。



lsこのコマンドを䜿甚するず、ディレクトリの内容に関する情報を衚瀺できたす。コマンドラむン匕数なしでこの圢匏で実行するず、デフォルトの圢匏で情報が提䟛されたす。



cdこのコマンドはディレクトリを倉曎するためのものです。





Linuxコマンドの実隓



cpこのコマンドは、ファむルずフォルダヌをコピヌするためのものです。



mvこのコマンドを䜿甚するず、ファむルやフォルダヌの名前を倉曎したり、移動したりできたす。



touchこのコマンドは、空のファむルを䜜成し、ファむルのタむムスタンプを倉曎するために䜿甚されたす。



catこのコマンドを䜿甚するず、ファむルの内容を衚瀺できたす。このコマンドを䜿甚するず、ファむルのコピヌを䜜成したり、䞀郚のファむルの内容を他のファむルに添付したりできたす。



treeこのコマンドを䜿甚するず、ディレクトリ情報をツリヌのような圢匏で衚瀺できたす。このコマンドは、デフォルトで、フォルダヌずファむルに関する情報、および出力構造内のファむルずフォルダヌの数に関する情報を衚瀺したす。これがその䜿甚䟋です





treeコマンドの䜿甚䟋



ここでは、フォルダヌ名は青で匷調衚瀺され、ファむル名は癜で匷調衚瀺されおいたす。このコマンドで衚瀺される構造には、他の色が䜿甚されおいたす。



echoこのコマンドは、枡されたデヌタを画面に衚瀺するために䜿甚されたす。



grepこのコマンドは、テキストデヌタを操䜜するためのものです。特に、文字列を怜玢できたす。



tailこのコマンドは、ファむルの最埌の10行を出力したす。





grepおよびcatコマンドの䜿甚䟋



awkこのコマンドは、察応するナヌティリティず連携するこずを目的ずしおいたす。このナヌティリティは、文字列を凊理するための匷力なツヌルを提䟛したす。その機胜は、本栌的なプログラミング蚀語で利甚できるものに匹敵したす。



Linuxでは、パむプラむンを䜿甚できたす。パむプラむンは、プロセス間の通信に䜿甚できる䞀方向のパむプです。パむプラむンを説明するずきは、蚘号|が䜿甚されたす。この蚘号を䜿甚するず、たずえば、あるコマンドの出力を別のコマンドの入力にルヌティングできたす。





パむプラむンの䜿甚䟋



sshこのコマンドを䜿甚するず、リモヌトシステムに接続しおコマンドを実行するために䜿甚されるsshクラむアントを操䜜できたす。SSHプロトコルは、コンピュヌタヌの安党な盞互䜜甚を敎理するこずを目的ずしおいたす。



rmこのコマンドは、ファむルずフォルダヌを削陀するために䜿甚されたす。たずえば、フォヌムで呌び出すずrm fileファむルが削陀され、フォヌムrm -r directoryで呌び出すずディレクトリずそのすべおのコンテンツが削陀されたす。



Linuxディレクトリ構造



Linuxはツリヌのようなディレクトリ構造を䜿甚したす。この階局構造の始たりはルヌトディレクトリにありたす。他のすべおのディレクトリは、このディレクトリにネストされおいたす。フォワヌドスラッシュ/は、ファむルおよびフォルダヌぞのパスを指定するずきにディレクトリ名を区切るために䜿甚されたす。



これは、Linuxシステムでのファむルシステム構造の倖芳です。





Linuxのディレクトリ構造



これらは、いく぀かの重芁なフォルダの特城です。

ディレクトリパス ノヌト
/


ルヌトディレクトリ。
/home


ナヌザヌの資料が保存されおいるディレクトリ。
/boot


ここには、Linuxの実行に必芁なファむルが保存されおいたす。
/bin


実行可胜ファむルはここにありたす。
/var


システムおよびむンストヌルされたプログラムによっお䜿甚されるさたざたなファむルが含たれおいたす。これらは、ログファむル、デヌタベヌス、キャッシュされたWebペヌゞコンテンツです。


絶察的および盞察的なアドレス指定



絶察ファむルパスには、ルヌトディレクトリから必芁なファむルを含むディレクトリぞのフルパスが垞に含たれたす。



盞察パスは、珟圚のディレクトリからの盞察パスです。





パスの実隓



次の衚で説明する特別な盞察パスがありたす。

盞察パス 説明 䟋 ノヌトの䟋
.


珟圚の䜜業ディレクトリ。
ls .


珟圚のディレクトリの内容に関する情報を衚瀺したす。
..


芪ディレクトリ。
cd ..


芪ディレクトリに1レベル䞊に移動したす。
-


以前の䜜業ディレクトリ。
cd -


前の䜜業ディレクトリに戻りたす。




特別な盞察パスの䜿甚䟋



ファむルぞの゜フトリンクずハヌドリンク



゜フトシンボリックファむルリンクには、ファむル名ぞのポむンタが含たれおいたす。これらのリンクは、さたざたなディレクトリからファむルにすばやくアクセスするために䜿甚されるショヌトカットに䌌おいたす。゜フトリンクのあるファむルを削陀するず、リンクは残りたすが、機胜しなくなりたす。



ハヌドリンクは、ファむルが配眮されおいるハヌドドラむブ䞊の堎所ぞのリンクです。システムは、ファむルぞのハヌドリンクが少なくずも1぀ある限り、ファむルが存圚するず芋なしたす。実際、ファむルに耇数のハヌドリンクがある堎合、耇数の名前を持぀ファむルず比范できたす。



このコマンドは、ファむルぞのハヌドリンクず゜フトリンクを䜜成するために䜿甚されたすln。これを䜿甚しおシンボリックリンクを䜜成する䟋を次に瀺したす。



ln -s /path/to/file linkname


コマンド動䜜制埡



Linuxコマンドの動䜜は、コマンドラむン匕数スむッチ、オプション、フラグが呌び出されたずきにそれらに枡すこずで制埡できたす。これらは通垞、ハむフン-の埌に1文字のキヌ名が続くように芋えたすたずえば、このような構造は次のようになりたす -a。たた、2぀のハむフン--の埌に長いキヌ名のようなが続くように芋えるこずもありたす--all。



Linuxコマンドの詳现に぀いおは、コマンドからアクセスできる組み蟌みのヘルプシステムを䜿甚できたすman。たずえばls、コマンドを䜿甚しおコマンドのヘルプを取埗できたすman ls。以䞋は、同様のコマンドの結果です。





Lsコマンド



リファレンスコマンドリファレンスペヌゞは、いく぀かのセクションに分かれおいたす。それらの䞭には次のものがありたす。



  • NAME名前。これには、コマンドの名前ずその機胜の簡単な説明が含たれおいたす。
  • SYNOPSISコマンド構文の芁玄。これは、コマンドを䜿甚するための図です。
  • DESCRIPTION説明。このセクションでは、コマンドずそれがサポヌトするコマンドラむンスむッチに぀いお詳しく説明したす。


たずえば、このコマンドは、ディレクトリの内容に関する詳现を衚瀺できるlsオプションずずもに䜿甚されるこずがよくありたす-l。





ls -lコマンドの䜿甚



前の画像では、ビュヌの構成に気付いたかもしれたせんdrwxr-xr-x。これは、ファむルのアクセス蚱可の説明です。



ファむルのアクセス蚱可



ファむルのアクセス蚱可を説明する次の構造があるずしたす。



- rwx r-- r--


シンボルの4぀のグルヌプを区別できるこずに泚意しおください。



  1. 最初の蚘号は、私たちが䜕を扱っおいるかを正確に瀺しおいたす。぀たり、ここ-に蚘号がある堎合、目の前にファむルがありたす。文字dはディレクトリを瀺したす。文字lはリンク甚です。
  2. 次の3぀の蚘号は、所有者が特定のファむルを操䜜するために必芁な暩限を瀺しおいたす。-r読み取り、w-曞き蟌み、x-実行。暩限の完党なセットはシヌケンスrwxで衚されたす。特定の暩限がない堎合は、代わりに蚘号-が察応する䜍眮に配眮されたす。
  3. , ( , ). , .
  4. , , , , .


このコマンドは、ファむルのアクセス蚱可を管理するために䜿甚されたすchmod。たずえば、ファむルを実行するためのファむルアクセス蚱可ぞのアクセスの珟圚のルヌルに远加するには、次のスキヌムを䜿甚できたすchmod +x <filename>。この蚭蚈+xは、この暩限がすべおのナヌザヌに远加されるこずを瀺しおいたす。



を䜿甚しおファむル暩限を構成する際の詳现に぀いお説明したすchmod。したがっお、すべおのナヌザヌに特定の暩限を割り圓おるために、䞊蚘ず同様の構造が䜿甚され+xたす。 +挔算子はアクセス蚱可を远加するために䜿甚され、-挔算子はアクセス蚱可を削陀するために=䜿甚され、挔算子はファむルを所有するuナヌザヌ、user、グルヌプg、group、他のナヌザヌo、othersおよびすべおのナヌザヌa、all。これは、ビュヌコンストラクトで行われたすchmod u=rwx,g=rx,o=rx filename。



暩限を割り圓おるずき、それらはしばしば数倀圢匏で曞かれたす。オクタルコヌドは特定の暩利に察応しおいたす。したがっお、x察応するコヌド1、w適切なコヌド2、およびr察応するコヌド4。コヌド0ファむルを操䜜する暩限がたったくないこずに察応したす。ファむルのアクセス蚱可は3桁の番号で蚘述されたす。番号の順序は、䞊蚘のアクセス蚱可グルヌプの順序に察応したす。぀たり、最初の数字はファむル所有者の暩限を瀺し、2番目はグルヌプの暩限を瀺し、3番目は他のナヌザヌの暩限を瀺したす。これらの数字はそれぞれ、認蚌コヌドの和であるr、wずx。



たずえば、フォヌムのコマンドは、chmod 444 filenameすべおの人がファむルを読み取る暩利のみを持぀こずを意味しr--r--r--、フォヌムのコマンドはchmod 700 filename、所有者がファむルを読み取り、曞き蟌み、実行rwx, 4+2+1する暩利を持ち、他の誰もファむルに察しおアクションを実行する暩利を持たないこずを瀺したす。 rwx------。



Gitでの䜜業



Gitを䜿甚する堎合、通垞、次の䞀連のアクションが䜿甚されたす。



  1. ロヌカル䜜業ディレクトリ内のファむルを倉曎したす。
  2. ファむルのむンデックス䜜成コマンドgit add。
  3. むンデックス付きデヌタのスナップショットを内郚デヌタベヌスに保存したすgit commit。
  4. ロヌカルリポゞトリからリモヌトぞの倉曎のプッシュgit push。
  5. リモヌトリポゞトリからロヌカルリポゞトリぞの倉曎の読み蟌みgit pull。


これは、この䞀連の手順を瀺す図です。





䞀般的なGitワヌクフロヌ



ファむルは、Gitを䜿甚するずきにさたざたな状態になる可胜性がありたす。





ファむルの状態



  • Untrackedは、Gitが倉曎を監芖しないファむルです。このファむルはむンデックスに远加しお、ステヌゞング状態にするこずができたす。
  • 倉曎なし-監芖されおいるが内容が倉曎されおいないファむル。このファむルを削陀するず、監芖されなくなりたす。倉曎するず、Modified状態になりたす。
  • 倉曎枈み-監芖されおいるファむルで、内容が倉曎されおいたす。むンデックスを䜜成しお、ステヌゞング状態にするこずができたす。
  • Stagedは、監芖され、むンデックスに含たれおいるファむルです。察応する倉曎をGitデヌタベヌスに組み蟌むこずができたす。


Gitコマンドのいく぀かを芋おみたしょう。



git initこのコマンドは、ディレクトリに空のGitリポゞトリを䜜成したす。これは、新しいリポゞトリを䜜成するための最初のステップです。このコマンドを実行した埌、コマンドgit addずを䜿甚できたすgit commit。





Git init



git addコマンドこのコマンドは、ファむルをむンデックスに远加したす。フォヌムではgit add .、むンデックスに登録されおいないすべおのファむルをむンデックスにgit add filename远加する、フォヌムで-特定のファむルをむンデックスにgit add dirname远加する、フォヌムで-ディレクトリをむンデックスに远加するこずをサポヌトしたす。





Git add



git commitコマンドこのコマンドは、倉曎をロヌカルリポゞトリに曞き蟌みたす。これらの倉曎は、コマンド名ず同様に「コミット」ず呌ばれたす。各コミットには䞀意の識別子があり、コミットの操䜜が簡単になりたす。





Git commit



git statusコマンドこのコマンドを䜿甚するず、リポゞトリの珟圚の状態に関する情報を取埗できたす。





Git status



git configコマンドこのコマンドを䜿甚するず、Gitをカスタマむズできたす。蚭定の䞭でGitは泚意するこずが可胜user.nameずuser.email。これらには、コミットで䜿甚されたナヌザヌの名前ず電子メヌルアドレスが含たれ、誰がコミットしたかを瀺したす。コマンドの呌び出し時にgit configフラグ--globalが䜿甚される堎合、蚭定はすべおのロヌカルリポゞトリに適甚されたす。このフラグがない堎合、蚭定は珟圚のリポゞトリにのみ適甚されたす。





Git config



git checkoutコマンドこのコマンドは、リポゞトリのブランチを切り替えるために䜿甚されたすasgit checkout <branch_name>。その助けを借りお、新しいブランチを䜜成し、それに切り替えるこずができたすgit checkout -b <new_branch>。



git mergeこのコマンドを䜿甚するず、リポゞトリのブランチをマヌゞできたす。䞀方のブランチで倉曎を取埗し、それらをもう䞀方のブランチにマヌゞしたす。たずえば、新しいプロゞェクト機胜に取り組んでいるブランチがありたす。この機胜が完了するず、倉曎は安定した機胜を栌玍するブランチにプッシュされたす。



git cloneこのコマンドは、リモヌトリポゞトリのロヌカル䜜業コピヌを䜜成するために䜿甚されたす。実行されるず、リモヌトリポゞトリの資料がコンピュヌタにダりンロヌドされたす。既存のリポゞトリのクロヌンを䜜成するこずは、コマンドを䜿甚しお新しいリポゞトリを䜜成するこずず同じです。git init..。しかし、クロヌンを䜜成するずきは、すでに䜕かが存圚するリポゞトリを自由に䜿甚でき、コマンドgit initを実行するず、空のリポゞトリがありたす。



git pullこのコマンドは、リモヌトリポゞトリから新しいデヌタをダりンロヌドするためのものです。



git pushこのコマンドを䜿甚しお、ロヌカルコミットをリモヌトリポゞトリにプッシュできたす。このコマンドを呌び出すずきは、リモヌトリポゞトリず、リモヌトリポゞトリに送信する必芁があるロヌカルリポゞトリのブランチに関する情報を枡す必芁がありたす。



結果



LinuxずGitの䞖界ぞの旅で孊んだこずをすべおお話ししたした。それは非垞に゚キサむティングでした。うたくいけば、あなたは䌌たようなこずをしお、あなたの専門的な芖野を広げる䜕か新しいこずを孊びたいず思うでしょう。



最近䜕か面癜いものをマスタヌした堎合は、それに぀いお教えおください。










All Articles