これを知らなければ、おそらくLinuxを使い始めてもいないでしょう
毎日暖かな町家
Linux Rookie Level Starter Kit 2
Linuxのパーミッションと基本的な開発ツール
1. Linuxのパーミッション
1.1 Linuxのパーミッションの考え方
Linuxでは、スーパーユーザ(root)と一般ユーザの2種類のユーザが存在します。
スーパーユーザー:Linuxシステム上であらゆることを無制限に行うことができます。
通常ユーザー:Linuxでできることは限られています。
スーパーユーザーのコマンドプロンプトは "#"、通常ユーザーのコマンドプロンプトは "$"です。
ユーザーの切り替え
su [ユーザー名]: 現在地が前のパスのままのユーザーに切り替わる
su - [username]: あるユーザーに切り替えて、切り替えたユーザーのホームディレクトリに戻る
exit 前のユーザーに戻る
1.2 Linuxの著作権管理
1. 基本的なパーミッション
- 読み取り可能(r/4)。Read は、ファイルについてはファイルの内容を読み取る、ディレクトリについてはそのディレクトリの情報を閲覧する権限を持ちます。
- 書き込み(w/2)。書き込みは、ファイルの内容を変更したり、ディレクトリ内のファイルを削除する権限を持ちます。
- 実行可能(x/1):executeは、ファイルに対してファイルを実行する、ディレクトリに対してディレクトリに入る権限を持ちます。
- "-"は、そのパーミッションが利用できないことを示します。
2. ユーザー別の略語
3. ファイルパーミッション値の表現
a) 文字表現
b) 8進数の値の表現
4. ファイルのパーミッションの変更
最初の方法: ユーザー +/- 文字のパーミッション
chmod [u/g/o]+/-[r/w/x][ファイル名またはフォルダ名]を指定します。
2つ目:8進数変更方式
chmod [8進数] [ファイル名またはフォルダー名]を指定します。
5. ファイルやフォルダーに対するパーミッションの効果
1. ファイルの場合
<ブロッククオート読み取り可能なパーミッション ユーザーがファイルに対して読み取り可能な権限を持っていない場合、ファイルの内容を閲覧することはできません
書き込み可能なパーミッション ユーザーがファイルに対して書き込み可能なパーミッションを持っていない場合、ファイルへの書き込みはできません
実行可能なパーミッション ユーザーがファイルに対して実行可能な権限を持っていない場合、そのファイルは実行できず、結果はファイルの内容によって異なります
2. フォルダの場合
<ブロッククオート読み取り可能なパーミッション。ユーザーがフォルダーの内容を見ることができる権限に影響します。
書き込み可能なパーミッション:ユーザーがフォルダ内にファイルやフォルダを作成する能力に影響します。
実行可能なパーミッション:フォルダーに書き込むユーザーに影響します。
6. ファイルやフォルダの所属ユーザーやグループを変更する
1. ファイルやフォルダの所属ユーザーを変更する
chown [-R] ユーザー名 ファイル名
-R 再帰的修正
2...所属するユーザーグループを変更する
chgrp new ユーザー名 ファイル名 [-R].
2. yum パッケージマネージャ
<マーク
担当:Linuxオペレーティングシステムへのソフトウェアのインストール、およびLinuxオペレーティングシステムからのソフトウェアのアンインストール
2.1 パッケージとは何ですか?
Linuxでソフトウェアをインストールする一般的な方法は、プログラムのソースコードをダウンロードし、コンパイルして、実行ファイルを取得することです。しかし、これでは面倒なので、一般的なソフトウェアをあらかじめコンパイルして、パッケージ(Windowsのインストーラと解釈してもよい)を作ってサーバに置き、パッケージマネージャが簡単にコンパイルしたパッケージにアクセスして、直接インストールする人もいるようです。
パッケージとパッケージマネージャは、quot;アプリとquot;アプリストアの関係に似ています。
yum (Yellow dog Updater, Modified) は、Linux 用の非常に一般的なパッケージマネージャです。主にFedora、RedHat、Centosやその他のディストリビューションで使用されています。
注意事項
yum のすべての操作は、ホスト (仮想マシン) のネットワークが開いていることを確認する必要があります!!!
pingコマンドで確認することができます
2.2 パッケージの操作
1. yumソースで提供されるソフトウェアをリストアップする yum list
yum listコマンドは、現在入手可能なパッケージを一覧表示することができます。パッケージの数は非常に多いので、grepコマンドで気になるパッケージだけを絞り込む必要があります。
yum list | grep lrzsz
その結果は以下の通りです。
lrzsz.x86_64 0.12.20-36.el7 @base
2. ダウンロードとインストール
yum install [パッケージ名]をインストールします。
3. アンインストール方法
yum remove [パッケージ名]を削除します。
//lrzsz.
<マーク
フォルダを直接渡すことができない
rz: winからlinuxのOSにファイルをアップロードする。
sz [files in linux]: linux から win システムへファイルを渡す。
xftp: フォルダを直接渡すことができる
3. vimエディタ
viとvimの違いは、単にどちらもマルチモードエディタであるということです。vimはviのアップデート版で、すべてのviコマンドと互換性があるだけでなく、いくつかの新機能が搭載されているのが違いです。例えば、シンタックスハイライト、ビジュアルオペレーションはターミナルだけでなく、Mac OSやWindowsでも実行可能です。
3.1 vimの基本概念
<ブロッククオートvimエディタには実際には12個のモードがありますが、初心者はここでそんなに多くのモードを知る必要はなく、次の3つ、コマンドモード、挿入モード、最終行モードをマスターすればよいのです。
vimでファイルを編集する:vim[ファイル名]編
<ブロッククオート例:vim test
3.2 vimの基本操作
<ブロッククオート
通常モード。ノーマルモードではファイルへの書き込みができないので、普通に書き込むにはインサートモードに入る必要がある
挿入モード:i 挿入モードに入ると、通常の挿入ができるようになります。間違った単語を入力したことに気づき、カーソルキーで戻って削除したい場合は、"ESC"キーをクリックして[通常モード]に移行してから、テキストを削除することが可能です。もちろん、直接削除することも可能です。
ESC どのモードからもノーマルモードに戻ることができる
通常モード」から「最終行モード」への切り替え: "shift + ;"、これは実際には ":"を入力しています。
vimを終了してファイルを保存し、[通常モード]で、":" コロンキーをクリックして、"最終行モード"にします。
:w (ファイルを保存する)
:wq ("wq" と入力し、保存して vim を終了する)
:q は終了時に保存されません
:q! (保存せずにvimを強制終了)
3.3 vimのコマンドセット
1.
<マーク
通常モードでのクイックアクション
移動、削除、元に戻す、ジャンプ
カーソルを移動する
上下左右キー(ルーキーレベル) h:左 j:下 k:上 l:右
$: カーソルのある行の "end of line" に移動します。
^ : カーソルがある行の "行頭" に移動します。
w: カーソルは次の単語の先頭にジャンプする
e: カーソルは次の単語の末尾にジャンプします。
b: カーソルが前の単語の先頭に戻る
#l: カーソルは行の#番目の位置に移動します。
ctrl+b 画面を1ページ戻します。
ctrl+f: 画面を最前面に移動します。
ctrl+u: 画面を半ページ分、後ろに移動します。
ctrl+d: 画面を半ページ分手前に移動します。
gg 素早く最初の行に戻る
G:すばやく最終行に戻る
[num] G: 行へ素早くジャンプ
削除
1.x:カーソル位置の文字を後ろから削除する。Winシステムの[delete insert]キーに相当する。
[num] x: 番号のついた文字を後ろから削除します。
2. x: カーソルのある文字を含まない、前方の文字を削除します。
[num] X: カーソル位置を除く前方数文字を削除する
3.dd: カットの機能、WinシステムでのCtrl+xに相当
[num] dd: 複数行のクリッピング
コピー、ペースト
<ブロッククオート
yy: 行をコピーする
[num] yy: 複数行のコピー
小文字のp:カーソルのある現在行から次の行に貼り付ける
大文字のP:カーソルのある現在行の上の行に貼り付ける
置き換える。
r: 現在のカーソルがある文字を置き換える
R: (置換モード)に進み、置換を行う、esc終了
元に戻す
<ブロッククオート
u: 間違ってコマンドを実行した場合、すぐに"u"を押すと、前の動作に戻ることができます。複数回"u"を押すと、複数回のレジュームを行うことができます。
ctrl + r リカバリーを元に戻す
変更点
cw: 単語の置換と通常モードから挿入モードへの切り替え
行を移動する
<ブロッククオート
ctrl+g カーソルがある行の行番号をリストアップします。
[num]G:5Gは、記事の5行目の先頭にカーソルを移動させることを意味します。
gg=G:現在のコード形式を整理する
2. 共通コマンド
挿入モードへの素早い移行
o : 次の行へ素早く移動
O : 前の行へ素早く移動
A : 素早く行末に戻る
I : 急いで行頭に戻る
3.
下段モードの場合
検索
<ブロッククオート/: 下方向の検索、n を使用
: 検索アップ、nと一緒に使用
探す
行番号の設定:ボトムラインモードでνを設定する
行番号の取り消し:最下段モードでnonuを設定する
ボトムローモードで
: %s/[置換対象]/[置換対象]/g" % 完全置換 g: 現在行の対象文字列をすべて置換
3.4 簡単なvimの設定
1. 設定ファイルの場所
- etc/ ディレクトリの下に vimrc というファイルがあり、これはシステム上で公開されている vim の設定ファイルであり、すべてのユーザが利用可能です。
- そして、各ユーザーのホーム・ディレクトリーには、次のような名前の自分専用の設定ファイルを作成することができます: ".vimrc". 例えば、/root ディレクトリには、通常、既に .vimrc ファイルが存在しますので、存在しない場合は、作成してください。
- ユーザーを自分に切り替え、suを実行して自分のホームワーキングディレクトリに入り、cd ~を実行します。
- 自分のディレクトリの .vimrc ファイルを開き、vim .vimrc を実行します。
2. 共通設定オプション、テストに使用
シンタックスハイライトの設定:シンタックスオン
行番号の表示:セットヌ
インデントするスペース数を4つに設定:set shiftwidth=4
4. gcc/g++ コンパイラ
4.1GCC (C)/G++(C++)の場合
1. 前処理(マクロの置換)
前処理機能には、マクロ定義、ファイルインクルード、条件付きコンパイル、コメントアウトの解除などがあります。
gcc/g++ -E ファイル -o ファイル.i
2. コンパイル(アセンブリの生成)
シンタックスセマンティックディテクション
gcc -S file.i -o file.s ソースコードからアセンブリコードに変換します。
3. アセンブリ(機械が認識可能なコードの生成)
機械語コードから機械語コード(バイナリコード)への変換
gcc -c ファイル -o ファイル.o
4. リンク
ターゲットファイル+実行ファイルを生成するためのライブラリファイル
gcc file.o -o ファイル
4.2 機能ライブラリ
4.1 静的ライブラリ
gcc/g++のコマンドラインで、1つのパラメータを追加する必要があります: -static
gcc ファイル -o 新しいファイル -static
4.2 ダイナミックライブラリ
デフォルトのリンクはダイナミックリンク
gcc ファイル -o 新しいファイル
file コマンド: 現在のファイルの詳細を表示します。
ldd コマンド:実行ファイルが依存するライブラリファイルを表示します。
5. gdbデバッガ
<ブロッククオートgcc ファイル -o 新しいファイル -g (デバッグバージョン)
5.1 デバッギング
デバッグのためのパラダイム: gdb ファイル名
list/l 行番号: ファイルの内容を表示
binFileのソースコードを表示し、その後にリストの最後の位置から10行ずつ表示します。
r または run。プログラムを実行します。
b (ブレークポイント) 行番号: ある行にブレークポイントを設定する
i b (info breakpoints) : ブレークポイント情報を表示します。
disable breakpoints: ブレークポイントを無効にする, disable
ブレイクポイントを有効にする ブレークポイントを有効にする
n(next)はプロセスごとに実行され、WinのF10に相当する。
s(step) ステートメント単位で実行 win F11
p(print) 変数名:変数の値を表示、またはカスタムタイプを表示することができます。
q(quit)終了
bt(breaktrace)** 重要:すべてのレベルの関数呼び出しと引数を表示する
どこがbtと同じか、違いはない
coredump ファイル: クラッシュした瞬間のプロセスのメモリイメージを保持するカーネルダンプファイル
6. make/Makefileプロジェクト自動化ビルドツール
6.1make & makefile
1. make は makefile ファイルを解釈するインタプリタです。
makefile コンパイルルールを書き込むファイル
makeはコマンド、makefileはファイルであり、この2つを組み合わせてプロジェクトのビルドを自動化するために使用します。
2. makefileファイルの書き方のルール
対象オブジェクトと依存オブジェクトとコンパイルコマンド
3. make の makefile ファイル解釈のルール
<ブロッククオート
a.make は、カレントディレクトリにある "Makefile" または "makefile" という名前のファイルを探します。
b.常に最初のターゲットオブジェクトの生成にのみ使用されます。
c. ターゲットオブジェクトが依存オブジェクトより新しい場合、生成されない。
d. Makeは、最初のターゲットオブジェクトが生成された後、依存オブジェクトも後で生成する必要がある場合、その依存オブジェクトを使用してターゲットオブジェクトを生成する
4.makefileファイル:組み込み変数 & カスタム変数
$^: すべての従属オブジェクトを表します
$@: ターゲットオブジェクトを表します
6.2 擬似ターゲット
<ブロッククオート.PHONYターゲットオブジェクト
.PHONY :cleanは、一般的にプロジェクトのクリーンアップに使用されます。
#コメント行の選択 --> I(shift+i) コメント文字の挿入 -->esc
コメント解除:crtl+v l
上記は、この記事の焦点である、これは今日のハの終わりです、著者の創造的な能力が限られているので、多かれ少なかれコンテンツがエラーを持っているでしょう要約することができ、私を修正するためにあなたを歓迎し、この記事は、公共がちょうどLinux初心者を学び始めているので、知識の一部は、私は非常に浅い非常に一方的に書いて、大物が相互進歩の精神で、光プライベート私ハ、鑑賞するあなたを歓迎を持っているなら原則私はあなたが私に多くのアドバイスを与えることを願って、あなたが〜する感謝します。
関連
-
スクリプトが ssh を呼び出した後、stdin がターミナルでないため、疑似ターミナルが割り当てられない
-
Linux の ssh 公開鍵の追加
-
undefinedmakefile:n: *** セパレータがありません。
-
ConnectionRefusedErrorです。[Errno 111] 接続が拒否されました。
-
時間問題をたくさん出してくれた人たち(連続更新)
-
変数 `xxx' の解は、初期化子を持っているが型が不完全である。
-
変数 "xxx" はイニシャライザを持ちますが、型は不完全です。
-
Python easy_install は "ImportError: pkg_resources という名前のモジュールがありません" というエラーが発生しました。
-
テキストファイルがビジー状態になる問題を解決
-
Linuxでよくあるパーミッション関連のエラーとその解決法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
"collect2: error: ld returned 1 exit status" の解決法
-
Makefileを参照してください。***セパレータがない。 停止 原因と解決策
-
LinuxでのPythonとpipのインストールと "AttributeError: module 'pip.__main__' has no attribute '_main'エラー"
-
undefinedlinuxでは127.0.0.1、 : では0.0.0.0です。
-
Makefile:9: *** セパレータがありません。
-
解決 ERROR: EnvironmentError のため、パッケージをインストールできませんでした。[Errno 28] デバイスに空き領域がありません。
-
MongoDBインストール+解決エラー。mongod.service の起動に失敗しました:until not found
-
VNC mesg を開くとき: ttyname に失敗しました。デバイスに不適切な ioctl
-
セキュアネットワーク(sshポートマッピング) -----図の詳細を使用することができます。
-
dpkg: パッケージの処理エラー ***(--install): 依存関係の問題 - 未設定にする