ホームページ  >  記事  >  運用・保守  >  Linuxシステムの基礎(1)

Linuxシステムの基礎(1)

PHP中文网
PHP中文网オリジナル
2017-06-20 11:18:491815ブラウズ
ターミナル:
ユーザーがホストと対話するために使用する必要がある機器
物理ターミナル: /dev/console
仮想端末: 物理端末に接続されたソフトウェアベースの仮想端末。CentOS 6 はデフォルトで 6 つの仮想端末を起動します
Ctrl+Alt+F#: [1,6]
グラフィック端末: 実装された端末。仮想的には物理端末に接続されているソフトウェア内ですが、デスクトップ環境も提供します
デバイス ファイル パス: /dev/tty#
シミュレートされた端末:
グラフィカル インターフェイス コマンド ライン インターフェイスコマンド ライン インターフェイスで開かれたインターフェイスは、ssh プロトコルまたは Telnet プロトコルに基づいてリモートで開かれました
デバイス ファイル: /dev/pts/# [0,oo)
現在の端末デバイスを表示します。 tty
ITTERACTIVEインターフェイス:端子を起動した後、インタラクティブアプリケーションを端末デバイスに接続します
GUI:
xプロトコル、ウィンドウマネージャー、デスクトップdesktop:
GNOME (C、gtk)
KDE (C++、qt)
XFCE (軽量デスクトップ)
CLI:
シェルプログラム:
シュ(生まれた)
csh
tcsh
ksh (korn)
bash (ボーンアゲインシェル)、GPL
zsh
現在使用されているシェルを表示します:
# echo ${SHELL}
システムによって現在使用されているすべてのシェルを表示します:
# cat /etc/shells
コマンド プロンプト: プロンプト
[root@ localhost ~] #
[root@localhost ~]: PS1
プロンプト:
管理者: #
一般ユーザー: $
コマンド:
コマンドを入力して、 Enter キーを押します:
は、入力されたコマンドに対応する実行可能プログラムまたはコードを見つけるようにシェル プログラムに指示し、分析後、それを実行するためのリソースを割り当てるためにカーネルに送信します。
は 1 つ以上のプロセスとしてマニフェストされます。 ;
シェルで実行できるコマンドには次の 2 種類があります:
組み込みコマンド: シェルによって提供され、特定のコマンド フォームを通じて提供されます。現在のシステム 特定のファイル システム パスの下に対応する実行可能プログラム ファイルがあります
ここで、内部コマンドと外部コマンドを区別します:
# type COMMAND
コマンド:
コマンド形式:
COMMAND [OPTIONS...] [ARGUMENTS...]
オプション: コマンドの 1 つ以上の機能を有効または無効にするために使用されます。オプション: -c、例: -l、-h
コマンドでは複数の短いオプションを使用できます。たとえば、-l -h は、-lh と記述できます。長いオプション: --例: --long、--human-readable
パラメータ: コマンド
のアクション オブジェクトは、コマンド
注:
1。複数のオプション、複数のパラメーターとコマンドを区切るには空白文字を使用する必要があります
2. コマンド実行のキャンセル: Ctrl+c
ファイルシステム:
C:Program filesoffice11wordword.exe
/etc/sysconfig/network-scripts/ifcfg-e 0番目
ファイルには 2 種類のデータがあります:
metadata: メタデータ
data: data
1、file1、File1、FILE1 は異なります。ファイル;
2. ファイル名には / を除く任意の文字を使用できます。特殊文字は推奨されません。
3 より長くすることはできません。 255 文字未満;
4. したがって、 . で始まるファイルはすべて隠しファイルです。
パス: ルート ディレクトリから始まるパス。 : 現在の場所から始まるパス;
現在の場所の表現:
(1) ./: ./sysconfig/network-scripts
(2) 上記の記号を省略します: sysconfig/ network-scripts
...: 現在のディレクトリの上位ディレクトリを示します
現在のディレクトリ: 現在のディレクトリ、作業ディレクトリとも呼ばれます
pwd: 印刷作業ディレクトリ
lsb:Linux Standard BaseCommand概要:LS、CD、タイプ、TTY、CAT、WHEREIS、PWD、ECHO
COMMAND:
(1)ファイルシステム関連:
ディレクトリ管理
ファイル管理
ファイル閲覧
ファイル編集
(2) システム管理関連:
Linuxコマンドヘルプの取得
外部コマンド: ファイルシステムの特定のディレクトリに実行可能プログラムがあります
、ここで
実行可能プログラムファイルを検索するシェルプログラムのパスは、 PATH 環境変数;
# echo $PATH
注: 左から右へ
形式: COMMAND [オプション...] [引数...]
内部コマンド:
# help COMMAND
外部コマンド:
(1) # COMMAND --help
# COMMAND -h
(2) マニュアル
# man COMMAND
(3) 情報ページ
# info COMMAND
(4) プログラム自体のヘルプドキュメント
README
INSTALL
変更ログ
( 5) プログラムの公式ドキュメント
公式サイト: Documentation
(6) ディストリビューションの公式ドキュメント
(7) Google
内部コマンドヘルプ:
# help COMM AND
hash コマンド:
シェルによって検索された外部コマンドのパス結果は、kv (キーと値) ストレージにキャッシュされます
history コマンド:
コマンド履歴;
シェルにログインすると、コマンド履歴ファイルに記録されたコマンドが読み取られます: ~/.bash_history
シェルにログインした後に新しく実行されたコマンドはキャッシュにのみ記録されます。ユーザーが終了すると「追加」されます
history:
-a: このセッションで新しく実行されたコマンド履歴リストを履歴ファイルに追加します
- d: 履歴内の指定されたコマンドを削除します。 ;
-c: コマンド履歴をクリアします。
!#: 履歴内の # 番目のコマンドを呼び出します。 !string: 先頭にある履歴コマンドの最新の文字列を呼び出します。
!!: 前のコマンド
外部コマンド ヘルプ アクセス:
(2) man COMMAND
: /usr/share/man
man1 ... man8
man1: ユーザーコマンド
man2: システムコール
man3: C ライブラリコール
man4: デバイスファイルと特別なファイル
man5:構成ファイル形式
man6:game
man7:miscellaneous
man8:managementコマンド
note:いくつかのキーがヘルプマニュアルに存在します。 1 つの章よりも、
指定した章のマニュアルを表示します: man # COMMAND
Man コマンド設定ファイル: /etc/man.config
MANPATH /PATH/TO/SOMEWHERE: 新しいものを示しますマニュアルファイルの検索場所
# man -M /PATH/TO/SOMEWHERE COMMAND: 指定された場所にある COMMAND コマンドのマニュアルページを検索して表示します
ヘルプマニュアルの段落の説明。 :
NAME
関連項目
概要:
[]: オプションのコンテンツ
<>: 必須のコンテンツ
a|b: 選択してくださいone from two
...: 同じコンテンツが複数回出現する可能性があります
Man コマンド操作方法:
Space、^V、^f、^F: 末尾に反転ファイル;
b、^B: ファイルの先頭に反転します。
d、^D: ファイル画面の最後まで半分に反転します。画面をファイルの先頭に移動します。
RETURN、^N、e、^E または j または ^J: ファイルの末尾に 1 行移動します。
y または ^Y または ^P またはk または ^K: ファイルの先頭に 1 行移動します。
q: 終了します。
1G: ファイルの先頭に戻ります。
G: ファイルの最後まで移動
テキスト検索:
/KEYWORD:
KEYWORDで指定した文字列をキーワードとして、現在位置から最後まで検索ファイルの文字列は大文字と小文字を区別しません。
n: 次へ
?KEYWORD:
キーワードで指定した文字列を使用して検索します。現在の位置からファイルの先頭まで。文字の大文字と小文字は区別されません。
n: 検索コマンドと同じ方向です。
N: 検索コマンドの逆方向、前の
(3) info
info COMMAND
(4) プログラム自身のヘルプドキュメント
/usr / share/doc/COMMAND-VERSION
(5) プログラムの公式ドキュメント
(6) ディストリビューションの公式ドキュメント
(7) ) Google
(8) slideshare
基本コマンド:
date:
date [OPTION]... [+FORMAT]:
を表示
FORMAT: フォーマット記号
%D
%F
%T
date [MMDDhhmm[[CC]YY][.ss]]: 設定
MM:
番目
DD : 何日
hh: 時間
mm: 分
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
.ss: 秒
Linux の 2 種類のクロック:
システム クロック: Linux カーネルの動作周波数を通じてクロックを供給CPU;
ハードウェアクロック:
hw Clock: ハードウェアクロックを表示
-s、--hctosys
-w、--systohc
cal: カレンダー
ディレクトリ関連のコマンド:
現在のディレクトリまたは作業ディレクトリ
ホームディレクトリ、ホームディレクトリ: HOME
ルート: /root
通常のユーザー: /home/USERNAME
/home/tom
~: ユーザーのホームディレクトリ
cd:
cd ~: 現在のユーザーのディレクトリに戻ります家directory
cd ~USERNAME: 指定されたユーザーのホームディレクトリに切り替えます
cd -: in 前のディレクトリと現在のディレクトリを行き来します
.
..
関連する環境変数:
PWD: 現在のディレクトリのパスを保存します。
OLDPWD: 最後のディレクトリへのパスを表示します。
ls: list
指定したパス下のファイルリストを表示します。
ls [OPTION] ... [DIR]...
-a, --all: すべて表示ファイル (隠しファイルを含む)
-l: 長い形式
-rw-r--r-- 1 root root 44800 8 月 14 日 14:32 install.log
-rw-r-- r--:
左の最初の数字:ファイルタイプ
-、d、l、b、c、p、sの後の9桁
:アクセス権、perm
数値: ファイルがハードリンクされた回数
左ルート: ファイルの所有者
右ルート: ファイルのグループ
44800: ファイルのサイズ
Aug 14 14:32 : ファイルが最後に変更された時刻
install.log: ファイル名
-h, --human-readable: 単位変換
-d: 表示関連ディレクトリ自体の属性; 通常は必須 -l とともに使用します。
-R、--recursive: 再帰的
stat /PATH/TO/SOMEFILE: get ファイルのメタデータを指定
ファイル閲覧コマンド: cat, tac
cat [OPTION]... [FILE]...
- E: 行ターミネータを表示 $
-n: 表示される各行に番号を付ける
ファイルコンテンツタイプ表示コマンド: file
file /PATH/TO/SOMEWHERE
Echoコマンド: echo
-n: 改行文字の自動追加を無効にする;
-e: エスケープ文字の使用を許可する;
t: タブ文字
echo "$VAR_NAME" : 変数は置換されます。二重引用符は弱い参照を表します
echo '$VAR_NAME': 変数は置換されません、強参照
どれ: に対応するプログラムファイルのパスを表示しますcommand
that [オプション] COMMAND
--skip-alias: エイリアスの表示を抑制
whatis:
mkwhatis コマンドを使用して、すべてのヘルプマニュアルと対応するデータベースを作成します現在のシステムのキーワード:
システム管理コマンド:
シャットダウン:
halt、poweroff、shutdown、init 0
Reboot:
再起動、シャットダウン、初期化 6
フォロー ユーザーログイン関連:
who, whoami, w
Linux ファイルシステム:
root ファイルシステム (rootfs):
root filesystem
LSB、FHS : (FileSystem Heirache Standard)
/etc、/usr、/var、/root、/home、/dev
/boot: ブートファイル格納ディレクトリ、カーネルファイル(vmlinuz) 、ブートローダー (ブートローダー、grub) はこのディレクトリに保存されます。
: すべてのユーザーの基本コマンドは、OS の起動時に使用される独立したパーティションに関連付けることはできません。 : 管理クラスの基本コマンド。OS の起動時に使用されるプログラム、および基本的な共有ライブラリ ファイル (/lib/modules) に関連付けることはできません。 /lib64: 専用 x86_64 システム上の補助共有ライブラリ ファイルの保存場所
: 設定ファイル ディレクトリ (プレーン テキスト ファイル);
/root: 管理メンバーのホームディレクトリ
/media: ポータブルモバイルデバイスのマウントポイント
usb
/dev : デバイス ファイルと特殊ファイルの保存場所
b: ブロック デバイス、ランダム アクセス
c: キャラクター デバイス、リニア アクセス
/opt: サードパーティアプリケーションのインストール場所;
/srv: システム上で実行されているサービスによって使用されるデータ;
/usr:ユニバーサル共有の読み取り専用データ
sbin:
lib:
include: C プログラムのヘッダー ファイル。
share: doc、man などの構造化された独立したデータ。
サードパーティ アプリケーションのインストール場所。 、lib64 など、share
/var: 変数データファイル
cache: アプリケーションキャッシュデータディレクトリ;
lib: ストア変数専用。 /usr/local の下のアプリケーションのデータ
lock: ロックファイル
log: ログディレクトリとファイル;
opt: /opt 変数データの保存専用。
run: 実行中のプロセスに関連するデータ。通常、プロセスの pid ファイルを保存するために使用されます。
tmp: 2 回のシステム再起動の間に保存される一時データです。 proc: カーネルお​​よびプロセス情報を出力するために使用される仮想ファイル システム
: 現在のシステム上のハードウェア デバイスに関連する情報を出力するために使用される仮想ファイル システム
: 拡張されたファイルの保存場所セキュリティ Linux、selinux 関連のセキュリティ ポリシーおよびその他の情報
Linux 上のアプリケーションのコンポーネント:
バイナリ プログラム: /bin、/sbin、/usr/bin、/usr/sbin、/usr/ local/bin、/usr/local/sbin
ライブラリファイル: /lib、/lib64、/usr/lib、/usr/lib64、/usr/local/ lib、/usr/local/lib64
設定ファイル: /etc、/etc/DIRECTORY、/usr/local/etc
ヘルプファイル: /usr/share/man、/usr/share/doc、/usr/local/share/man、/usr/ local/share/doc
Linux でのファイル タイプ:
- (f): 通常のファイル;
b: ブロック デバイス。 c: キャラクターデバイス;
p: パイプファイル;
シャットダウン:
停止、電源オフ、シャットダウン、初期化 0
再起動:
再起動、シャットダウン、初期化 6
ユーザーログイン関連のフォロー:おいおい、w
シャットダウンまたは再起動:
halt、poweroff
reboot
-f: 強制し、shutdownを呼び出さない
-p: 電源を切る
シャットダウン:
シャットダウン [オプション]...時間 [メッセージ]
-r: 再起動
-h: 停止
-c: キャンセル
TIME:
now: 即時
+m: 相対時間表記、例えば +3;
hh:mm: 絶対時間表現、特定の時間を指定します。
ユーザーログイン情報表示コマンド:
whoami: 現在ログインしている有効なユーザーを表示します。システムセッション内のログイン
w: システムによって実行されるすべての現在のログインセッションと操作
bash の基本機能 (1):
(1) コマンド履歴
history
HISTSIZE: コマンド履歴レコードの数;
HISTFILE: ~/.bash_history
HISTFILESIZE: コマンド履歴の数記録されたファイル
history -d OFFSET
-c
history #: 履歴内の最新の # 個のコマンドを表示します
-a: 現在のセッション バッファーのコマンド履歴を履歴に手動で追加します。ファイル;
履歴内のコマンドを呼び出します:
!#: # 番目のコマンドを繰り返します;
!string
の終わり前のコマンド 1 つのパラメータ:
!$:
ESC、.
Alt+.
コマンド履歴の記録方法を制御:
環境変数: H
ignoredups: 重複したコマンドを無視します。連続した同一のものは「重複」です。
ignoreboth:ignoreupups、ignorespace;環境変数の値:export 変数名="value"
変数の代入:メモリ空間を指す変数名の代入記号以降のデータを格納
(2) コマンド補完
bash 実行コマンド:
内部コマンド:
外部コマンド: bash は、PATH 環境変数で定義されたパスに従って、各パスで指定されたコマンド名で名前が付けられたファイルを左から右に検索します。実行するコマンドが見つかります。
直接補完: ユーザーが指定した文字列には、対応するコマンドが 1 つだけあります。
がユニークでない場合、Tab はリストの外に表示されます。 (3) パス補完
は、ユーザーが指定した文字列をパスの先頭として扱い、で始まるファイル名を検索します。指定された親ディレクトリ内の指定された文字列
一意の場合: 直接完了;
それ以外の場合: もう一度 Tab キーを押してリストを表示します。
~:ユーザーのホーム ディレクトリに展開します
~USERNAME: 指定したユーザーのホーム ディレクトリに展開します
{}: カンマ区切りのリストをホストし、複数のパスに展開できます
/tmp/{ a,b} = /tmp /a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
(5 ) コマンド実行結果ステータス
Success
Failure
bash は、特殊変数 $? を使用して最新のコマンドの実行ステータス結果を保存します:
0: Success
1-255: 失敗
プログラムの実行結果には次の 2 種類があります。
プログラムの戻り値
プログラムの実行ステータス結果;
ディレクトリ管理コマンド:
cd、pwd、ls
mkdir、rmdir、tree
mkdir [オプション] /path/to/somewhere
-p: エラーなしで存在し、必要なディレクトリを自動的に作成できます。
-v: 詳細情報を表示します
-m モード: ディレクトリの作成時に直接権限を指定します;
tree:
-d: ディレクトリのみを表示
-L level: 表示するレベル数を指定
-P pattern: 指定されたパターンに一致するもののみを表示パス;
rmdir: 空のディレクトリを削除します
rmdir [オプション]... DIRECTORY...
テキストファイル表示クラスコマンド:
cat、tac
more、less、tail、head
more
more [オプション...] ファイル...
-d: ページめくりを表示して終了ヒント
less
less [オプション...] ファイル...
頭 [オプション]... [ファイル]...
-c #: 取得する前に # バイトを指定します
-n #: 取得する前に # 行を指定します
-#:
tail
tail [OPTION]... [ FILE]...
-c #: 取得後 # バイト指定
-n #: 取得後 # 行指定
-#:
-f: トレース表示ファイル new追加コンテンツ;
ファイルタイムスタンプ管理ツール:
touch
ファイル: メタデータ、データ
ファイルステータスの表示: stat
タイムスタンプ :
access time: アクセス時間、atime と略称され、ファイル内容を読み取ります
modify time: 変更時間、mtime、ファイル内容 (データ) を変更します
change time: 変更時間、ctime、元データ変更
touchコマンド:
touch [OPTION]... FILE...
-a: atimeのみ
-m: mtimeのみ
- t STAMP:
[[CC]YY]MMDDhhmm[.ss]
-c: ファイルが存在しない場合は作成されません
ファイルシステム:
boot, bin , sbin, lib 、lib64、dev、home、root、mnt、mediaなど、proc、sys
usr
var
bashの基本機能:
コマンド補完
パス完了
コマンド履歴
コマンドライン展開:
~, {}
コマンドのステータス結果
成功: 0
失敗: 1-255
ディレクトリ管理: mkdir、rmdir
ファイル表示: more、less、tail、head
タイムスタンプ管理: touch
-a、-m、-t
-c
ファイル管理:
cp、mv、rm
コピーコマンド: cp
cp [オプション]... [-T] SOURCE DEST
cp I CP [オプション] ... -t ディレクトリソース...
CP SRCDEST
SRCはファイルです。元のファイルと同じ名前で、SRC の内容を新しいファイルに埋め込みます
cp SRC... DEST
SRC...: 複数のファイル
DEST は存在し、存在する必要がありますそれ以外の場合は、エラーが発生します。
DEST が存在しない場合: 指定したディレクトリを作成し、SRC ディレクトリ内のすべてのファイルを DEST にコピーします。
-d:--no-dereference --preserv =links
--preserv[=ATTR_LIST]
モード: 権限
所有権: 所有者グループ
タイムスタンプ:
link
船、タイムスタンプ
-v : --verbose
-f : --force
mv: 移動、ファイルの移動
mv [オプション]... [-T] ソース宛先
mv [オプション]... ソース。 .. ディレクトリ
mv [オプション] .. -t ディレクトリ ソース...
rm [オプション] ... ファイル...
共通オプション:
-i: インタラクティブ
-f: 強制削除
-r: 再帰的
rm - rf
テキストエディタ: nano
全画面エディター
bash の基本機能 (2):
1. コマンドエイリアス (alias)
は alias コマンドによって実装されます:
(1) alias
はすべてを表示しますの現在のシェルプロセス 使用可能なコマンドエイリアス
(2) alias NAME='VALUE'
コマンド VALUE の実行と同等です。コマンドライン、現在のシェルプロセスに対してのみ有効; 永続的に有効にしたい場合は、設定ファイルで定義する必要があります: ~/.bashrc
すべてのユーザー: /etc/bashrc
注: 構成の編集によって指定された新しい構成は、すぐには有効になりません。
bash プロセスは、構成ファイルを再読み取りします:
source / path/to/config_file
. /path/to/config_file
エイリアスを元に戻す: unalias
unalias [-a] name [name ...]
注:エイリアスが元のコマンドの名前と同じである場合、元のコマンドを実行したい場合は、
2、glob (グロビング)
を使用します。ファイル名「WildCard」を実装する
wildcard文字: *、?、[]
(1) *any任意の長さの文字 *b:
aab, ab, a123b,
abc
(2) ?
任意の 1 文字
a?b:
aab
ab、a12b、abc
(3) []
は、指定された範囲内の任意の単一文字と一致します
[0-9]
[a-z]: 文字は大文字と小文字が区別されません
(4) [^]
は、指定された範囲外の任意の単一文字と一致します
[^ 0-9]
特殊文字セット:
[:digit:]: 0-9 に相当する任意の数字
[: lower:]: 任意の小文字
[ :upper:]: 任意の大文字
[:alpha:]: 任意の大文字と小文字
[:alnum:]: 任意の数字または文字
[:space:]:
[:punct:]: 句読点記号
3、bashショートカットキー
Ctrl+l: 画面をクリアします。clear コマンドと同等です。
Ctrl+a: コマンドの先頭にジャンプします。
Ctrl+e: コマンドの最後にジャンプします。
Ctrl+c: コマンドの実行をキャンセルします。
Ctrl+u: コマンドラインの先頭を削除します。
Ctrl+k:カーソルからコマンドラインの最後までのすべての内容を削除します。
4. Bash の I/O リダイレクトとパイプ
プログラム: 命令 + データ
データの読み取り: 入力
出力データ: Output
開かれたファイルにはfd:ファイル記述子(ファイル記述子)が付きます
標準入力:キーボード、0
標準出力:モニター、1
標準エラー出力: モニター、2
I/O リダイレクト: 標準の場所を変更します
出力リダイレクト: COMMAND > NEW_POS, COMMAND >> コンテンツはクリアされます
>>: リダイレクトを追加します。コンテンツはターゲット ファイルの末尾に追加されます。
# set -C: コンテンツを既存のファイルに上書きすることを禁止します。>|
# set +C :
2>: リダイレクトエラー出力データストリームを上書きします。
2>2>: リダイレクトエラー出力データストリームを追加します。
標準出力とエラー出力はそれぞれ異なる場所に送信されます。 :
COMMAND > /path/to/file.out 2> /path/to/error.out
リダイレクトのために標準出力とエラー出力をマージします。 >: リダイレクトをオーバーライド
COMMAND > /path/to /file.out 2>> /path/to / file.out 2>> &1
入力リダイレクト: <
tr コマンド: 文字の変換または削除
tr [OPTION]... SET1 [SET2]
こちらのドキュメント: <<
# cat << EOF
# cat > ; /path/to/somefile << EOF
パイプライン:
COMMAND1 | COMMAND3 |...
注: 最後のコマンドは、現在のシェル プロセス内で実行されます
tee コマンド:
tee OPTION]...[FILE]...
テキスト処理ツール: wc、cut、sort、uniq
wc コマンド:
wc [OPTION]...[FILE]。 ..
-l: 行
-w: 単語
-c: 文字
cut コマンド:
cut [オプション]...[ファイル]。 ..
-d DELIMITER: 区切り文字を指定します
-f FILEDS:
#: フィールド番号
#,#[,#]: 離散的な複数のフィールド (1 など) 3,6
#-#: 1-6
などの連続した複数のフィールド Mix: 1-3,7
--output-delimiter=STRING
sort コマンド:
sort [OPTION]...[FILE]...
- f: 文字の大文字と小文字を無視する
-r: 逆順
-t DELIMITER: フィールド区切り文字
-k #: 指定されたフィールドに基づいて並べ替えます
-n: 数値サイズで並べ替えます 並べ替え
-u: uniq、並べ替え後に重複を削除します
uniq コマンド:
uniq [オプション]... [ファイル]...
-c: 各行の繰り返しの数を表示します。
-d: 繰り返しの行のみを表示します。 : 繰り返さない行のみを表示します
注: 連続した同一の正方形は重複します
ユーザーとグループの管理
リソース割り当て:
認証: 認証
認可: 承認
会計: 監査
オーディション
トークン、アイデンティティ(ユーザー名/パスワード)
Linux ユーザー:ユーザー名/UID
管理者: root、0
通常ユーザー: 1-65535
システムユーザー: 1-499、1-999
リソースを取得するための権限をデーモンプロセスに割り当てます。
ログインユーザー: 500+、1000+
対話型ログイン;
Linux グループ: グループ名/GID
管理者グループ: root、0
通常グループ:
システムグループ: 1-499、1-999
通常グループ: 500+、1000+
Linuxセキュリティコンテキスト:
実行プログラム: process
として実行プロセス開始者:
root: cat
tom: cat
プロセスがアクセスできるすべてのリソースの権限は、プロセス開始者の ID によって異なります。
Linuxグループ カテゴリ:
ユーザーの基本グループ (メイン グループ):
グループ名はユーザー名と同じで、ユーザーが 1 人だけ含まれます: プライベート グループ
追加のユーザー グループ (追加グループ):
Linux ユーザーおよびグループ関連の設定ファイル:
/etc/passwd: ユーザーとその属性情報 (名前、UID、基本グループ ID など)
/etc/group:グループとその属性情報
/etc/shadow: ユーザーのパスワードとその関連属性
/etc/passwd:
名前:パスワード:UID:GID:GECOS:ディレクトリ:シェル
ユーザー名:パスワード:UID:GID:GECOS:ホームディレクトリ:デフォルトシェル
/etc/group:
group_name:password:GID:user_list
グループ名:グループパスワード:GID:現在のグループを追加グループとして含むユーザーリスト(区切り文字はカンマ)
/etc/shadow
ユーザー名: 暗号化されたパスワード: 最終パスワード変更日: パスワードの最小有効期間: パスワードの最大有効期間: パスワード警告期間: パスワード禁止期間: アカウントの有効期限: 予約フィールド
暗号化メカニズム:
暗号化: プレーンテキスト--> 暗号文
復号化: 暗号文 --> 平文
一方向暗号化: データのフィンガープリントを抽出
md5: メッセージ ダイジェスト、128 ビット
sha1: セキュアハッシュアルゴリズム、160ビット
sha224: 224ビット
sha256: 256ビット
sha384: 384ビット
sha512: s
雪崩効果: 初期条件の小さな変化により、結果に大きな変化を引き起こす
固定長出力:
パスワードの複雑さの戦略:
1. 少なくとも 3 種類の数字、大文字、小文字、特殊文字を使用します。
2. 十分な長さ
3. ランダムなパスワードを使用します。
4. 最近使用したパスワードは使用しないでください。
ユーザーの作成: useradd
-u UID: [UID_MIN, UID_MAX]、/etc/login.defs で定義
-g GID: ユーザーが属する基本グループを示します。これはグループ名または GID です。
-c " COMMENT": ユーザーのコメント情報;
-d /PATH/TO/HOME_DIR: 指定されたパスをホームディレクトリとして使用します。
-s SHELL: ユーザーのデフォルトのシェルプログラムを指定します。利用可能なリストは /etc/ 内にあります。
-G GROUP1[,GROUP2,...[,GROUPN]]]: ユーザーの追加グループを指定します。グループは事前に存在する必要があります。 -r: システムユーザーの作成
CentOS 6: ID<500
CentOS 7: ID<1000
デフォルト値設定: /etc/default/useradd ファイル
useradd - D
-s SHELL
グループ作成: groupadd
groupadd [オプション]... group_name
-g GID: GID 番号を指定します。 _MAX]
-r: システムグループの作成 ;
Centos 6: ID & lt; 500
ユーザー関連の ID 情報の表示: idrs [オプション] ... [ユーザー]
-U: UID:-G: GID
-G: Groups
-N: Name
ユーザーを切り替えるか、コマンドを実行します他のユーザーとして: SU
su [options...] [-] [user [args...]]
ユーザーの切り替え方法:
su UserName: 非ログイン切り替えつまり、ターゲットはユーザーの設定ファイルを読み取りません。
su - ユーザー名: ログイン切り替え、ターゲットユーザーの設定ファイルを読み取ります
注: root にはパスワードは必要ありません。 su を他のユーザーに切り替える; 非 root ユーザーはパスワードが必要です
su [-] UserName -c 'COMMAND'
オプション:
-l: "su -l UserName" は "SU-Username" と同等です
ユーザー属性の変更: usermod
usermod [オプション] login
- uid: 新しい uid
-g gID: 新しい基本グループ
-G GROUP1[,GROUP2,...[,GROUPN]]]: 新しい追加グループ。元のグループを保持すると、元の追加グループは上書きされます。 -a オプションも使用する必要があります。これは、append;
-s SHELL: 新しいデフォルト SHELL;
-c 'COMMENT': 新しいコメント情報
-d HOME: 新しいホームディレクトリ; 元のホーム ディレクトリ内のファイルは同期されません。移動する場合は、 -m オプションを同時に使用します。
-L: 指定されたユーザーをロックします
-U: 指定されたユーザーをロック解除します
-e YYYY-MM-DD: ユーザーアカウントの有効期限を指定します
-f INACTIVE:非アクティブ期間;
ユーザーにパスワードを追加します: passwd
passwd [オプション] UserName: 指定されたユーザーのパスワードを変更します (root ユーザー権限のみ)
passwd: 自分のパスワードを変更します。
共通オプション:
-l: 指定したユーザーをロックする
-u: 指定したユーザーをロック解除する
-n mindays: 最小使用期間を指定する
-x s : 最大使用期間
-w warndays: 警告を開始する何日前
-i inactivedays: 非アクティブ期間
--stdin: 標準入力からユーザーのパスワードを受け取ります。
echo "PASSWORD " | passwd --stdin USERNAME
注: /dev/null、ビットバケット
/dev/zero、
ユーザーを削除します: userdel
userdel [オプション]..login
-r: ユーザーのホームディレクトリを削除します。
グループ属性の変更: groupmod
グループ: 新しい名前
-g GID: 新しい GID;
グループの削除: groupdel
groupdel GROUP
グループのパスワード: gpasswd
gpasswd [オプション] グループ
-a user: 指定されたグループにユーザーを追加します。
-d user: 現在のグループをグループ名として持つユーザー user の追加グループを削除します
-A user1, user2,...: 管理権限を持つユーザーのリストを設定します
newgrp コマンド: 基本グループを一時的に切り替えます
ユーザーがこのグループに属していない場合は、グループのパスワードが必要です
ユーザー属性の変更: chage
chage [オプション]... LOGIN
-d LAST_DAY
-E, --expiredate EXPIRE_DATE
-私、--非アクティブINACTIVE
-m、--mindays MIN_DAYS
-M、--maxdays MAX_DAYS
-W、--warndays WARN_DAYS
その他のコマンド: chfn、指
コマンドの概要:useradd、groupadd、su、id、usermod、userdel、groupmod、groupdel、passwd、newgrp、pwck、gpasswd、chage、chsh、chfn、finger
権限管理:
ファイルの権限は主に 3 種類のオブジェクトに対して定義されます:
owner: 所有者、u
group: グループ、g
other: other、o
各ファイルは以下を定義しますタイプごとに 3 つのタイプの訪問者 タイプ権限:
r: 読み取り可能
w: 書き込み可能
x: eXcutable
ファイル:
r: を使用できますファイルの表示コンテンツを取得するためのツール;
w: コンテンツは変更可能;
x: このファイルはプロセスとして開始するためにカーネルに送信できます。 r: ls を使用して、このディレクトリ内のファイルのリストを表示できます。
w: このディレクトリ内のファイルを作成または削除できます。
x: ls -l を使用して、ファイルのリストを表示できます。このディレクトリに移動すると、 cd でこのディレクトリに入ることができます
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
例:
640: rw-r-----
rwxr-xr - x: 755
ファイルのパーミッションを変更する: chmod
chmod [オプション]... OCTAL-MODE FILE...
-R: パーミッションを再帰的に変更する
chmod [オプション] 。 .. . MODE[,MODE]... FILE...
MODE:
あるタイプのユーザーのすべての権限を変更します:
u=
g=
o=
ug=
a=
u=,g=
ユーザーのタイプの 1 つ以上の権限を変更します
u+
う-
chmod [オプション]... --reference=RFILE FILE...
RFILE ファイルの権限を参照し、ファイルを
と同じに変更します。ファイル所有者と所有者グループを変更します:
root のみが使用可能;
ファイルの所有者を変更します: chown
chown [オプション]... [所有者][:[グループ] ] ファイル...
使用法:
OWNER
OWNER:GROUP
:GROUP
注: コロンコマンド内の
は置き換えることができます。
-R: 再帰的
chown [オプション]... --reference=RFILE FILE...
ファイルのグループを変更します: chgrp
chgrp [OPション] ... GROUP FILE.. .
rChgrp [オプション] ...-Reference = rfile ファイル ...
-R
マスクコードのファイルまたはディレクトリ: UMASK
ファイル: 666-umask
注: 特定のタイプのユーザーの権限削減の結果、x 権限があった場合、その権限は +1 になります
DIR: 777-umask
umask: の表示
umask #: 設定
コマンドの概要: chmod、chown、chgrp、umask
ファイル管理、ユーザー管理、権限管理、bash の基本機能
ファイル管理: cp、mv、rm
ユーザー管理:
useradd、usermod、chsh、chfn、chage、userdel
groupad、groupmod、groupdel
passwd、gpasswd、pwck
id、finger、who、whoami、w
su
設定ファイル: /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow
権限管理:
パーマ: モード(rwxrwxrwx)、所有権
chmod
chown
chgrp
-R、--reference=RFILE
ファイル: 666-umask
DIR: 777-umask
umask [UMASK]
bash の基本機能:
コマンドライン展開: ~、{}
コマンドエイリアス: alias/unalias
コマンド履歴:history
コマンドとパス補完:$PATH
glob:*、?、[]、[^]
ショートカットキー: Ctrl+{a,e,l,c ,u,k}
コマンドハッシュ: hash
bashの基本機能(3)
1. プログラミング環境を提供します
プログラム:命令+データ
手続き型プログラミングスタイル:
手続き型: 命令を中心に、データは命令を提供します
目的: データを中心に、命令はデータを提供します
シェルプログラム: プログラミング能力、解釈、実行を提供します
プログラムの実行方法:
コンピューター: バイナリ命令を実行する
プログラミング言語:
低レベル: アセンブリ
高度な:
コンパイル:ハイレベル言語-->コンパイラ-->オブジェクトコード
C、C++、java
説明: 高級言語-->インタプリタ-->マシンコード
シェル、perl、 Python
手続き型プログラミング:
順次実行
ループ実行
選択された実行
手続き型プログラミング: 、解釈された実行
プログラミングの基本構造言語:
データストレージ: 変数、配列
ステートメント
シェルスクリプト: テキストファイル
shebang:
#!/ビン/バッシュ
#!/usr/bin/python
#!/usr/bin/perl
マジックナンバー: マジックナンバー
スクリプトを実行します:
1. 実行許可を与え、特定のファイル パスを介してファイルの実行を指定します。
2. インタープリターを直接実行し、インタープリター プログラムのパラメーターとしてスクリプトを実行します。名前付きメモリ空間;
データ保存方法: ASCII
文字: 110: 24
値: 8
整数
浮動小数点型
変数: 変数タイプ
1. データの保存形式
3. 表現されるデータ範囲。
タイプ:
Character
Value:
Integer
Float
Programming プログラミング言語:
強いタイプ:
弱いタイプ: bash
保存されるすべてのデータを文字として扱います
は浮動小数点数をサポートしません
tru​​e、false
1 、0
と:
1 && 1 = 1
1 && 0 = 0+
0 || 1 = 1
|| 0 = 0
1 = 0
そして、:
最初のものは 0、結果は 0 である必要があります。
最初のものは 1、2 つ目は操作に参加する必要があります。
最初のものは 1 、結果は 1 です。 1 でなければなりません;
最初のものは 0、2 番目のものは操作に参加する必要があります
Linux 上のテキスト処理の三銃士
grep: テキスト フィルタリング (モード) : パターン) ツール;
grep、egrep、fgrep
sed: ストリーム エディター、テキスト編集ツール: グローバル検索正規表現と行の出力
機能: テキスト検索ツール。ユーザーが指定した「パターン」に従ってターゲットテキストを 1 行ずつチェックし、一致した行を出力します。正規表現文字とテキスト文字で記述されたフィルター条件。
REGEXP: 特殊文字とテキスト文字の種類で記述されたパターン。その一部は文字の文字通りの意味を表さず、制御またはワイルドカード関数を表します。
は 2 つのカテゴリに分類されます:
基本正規表現: BRE
拡張正規表現: ERE
grep -E、egrep
正規表現エンジン
grep [OPTIONS] PATTERN [FILE...]
オプション:
--color=auto: 一致したテキストに色を付けます。
-v: 一致する行を表示しません。パターン;
-i: 大文字と小文字を無視します。
-o: 一致した文字列のみを表示します。
-A #: 後、 # 行後
-B #: 前、# 行前
-C #: コンテキスト、# 行前後
-E: ERE を使用します。正規表現メタ文字:
文字の一致:
.: 任意の 1 文字と一致します。
[]: 指定された範囲内の任意の 1 文字と一致します
[^]: 範囲外の任意の 1 文字と一致します指定範囲
[:digit:], [: lower:], [:upper:], [:alpha:], [:alnum:], [: punct:], [:space:]
一致回数: 指定する文字の後に何度も使用され、前の文字が出現する回数を指定するために使用されます。
*: 前の文字と一致する回数。
例: grep "x*y"
abxy
xay
xxxxxxy
貪欲モード
.*: 任意の長さの任意の文字 ;
?: 前の文字と 0 回または 1 回一致します。つまり、前の文字はオプションです。
+: 前の文字と少なくとも 1 回一致します。
{m}: 前の文字と m 回一致します。
{m,n}: 前の文字と少なくとも m 回、最大で n 回一致します。前の文字
{m,}: 前の文字と少なくとも m 回一致します:
^: 行の先頭に使用されます。パターンの末尾アンカー;
$: 行全体のパターン一致に使用されます。 line;
^[ [:space:]]*$
< or b: 単語パターンの左側に使用されます。 : 単語パターンに使用される単語末尾のアンカー;
: 単語全体と一致する;
(): 1 つ以上の文字を束ねるそれらを全体として処理します。
(xy)*ab
注: グループ化括弧内のパターンと一致する内容は、正規表現エンジンによってこれらの変数の名前が記録されます。は: 1、2、3、...
1: 左から順に、最初の左括弧と一致する右括弧の間のパターンと一致する文字
(ab+(xy)*) :
1: ab+(xy)*
2: xy
後方参照: 前のグループ化括弧内のパターンと一致する文字を参照します (パターン自体ではありません)
ユーザー root が存在し、そのデフォルトのシェル プログラムが表示される場合;
# id root &> /dev/null && grep "^root>"
/etc/passwd の 2 桁または 3 桁を調べます
# grep "<[0-9]{2,3}>/etc/passwd
show /etc /rc .d/rc.sysinit ファイルでは、少なくとも 1 つの空白文字で始まり、空白以外の文字が続く行は
# grep "^[[:space:]]+[^[:space: ]]" /etc/grub2.cfg
「netstat -tan」コマンドの結果で、「LISTEN」で終わり、その後に 0、1 つ以上の空白文字が続く行を見つけます;
# netstat -tan | grep "LISTEN[[:space:]]*$"
ユーザー bash、testbash、basher および nologin を追加し、/ でユーザー名を見つけます。同じシェル名行の etc/passwd ファイル
grep "^([[:alnum:]]+>).*1$" /etc/passwd
実装するスクリプトを作成します。次の関数
If user1 が存在する場合はその存在が表示され、そうでない場合は追加されます。
#!/bin/ bash
iduser1 && gt /&& "estistes
egrep [オプション] パターン [ファイル...]
拡張正規表現のメタ文字:
文字の一致:
.
[]
[^]一致数:
*?:+:1回以上;
{m,n} : 少なくとも m、最大 n 回。
アンカー:
^
$
<, b
>, b
グループ:
()
戻る参照: 1、2、...
または:
a|b
C|cat: C または cat
1. 現在のシステムのルート、centos、またはuser1 ユーザーのデフォルトのシェルと UID;
# grep -E '^(root|centos|user1)>' /etc/passwd: -f1,3,7
2 、 /etc/rc.d/init.d/functions ファイル (centos6) 内で、単語の後に括弧が続く行を見つけます。
# grep -E -o "^[_[:alpha: ]] +()" /etc/rc.d/init.d/functions
3. echo を使用して絶対パスを出力し、egrep を使用してそのベース名を抽出します。
# echo " /mnt/sdc" | grep -E -o "[^/]+/?$" |cut -d"/" -f1
さらに: egrep を使用してパスのディレクトリ名を取得します。 dirname コマンドの結果に、
4. ifconfig コマンドの結果で 1 ~ 255 の値を見つけます。
5.
fgrep: 正規表現をサポートしません 式検索
bash の基本機能 (4)
変数の型:
データの保存形式、保存スペースのサイズ、参加演算の種類
文字型
数値型
整数型
浮動小数点型
Strong 型: 変数を定義するときに型を指定する必要があります。参加する操作は型の要件を満たしている必要があります。宣言されていない変数を呼び出すとエラーが発生します。型を指定する必要はありません。デフォルトは文字型変換です。操作; 変数は事前に定義せずに直接呼び出すことができます
bash の変数の種類:
変数の有効範囲などの標準に準拠:
変数: 有効なスコープは現在のシェル プロセスです。現在のシェル以外の他のシェル プロセス (現在のシェルのサブシェル プロセスを含む) は無効です。プロセス;
ローカル変数: 有効スコープは、現在のシェル プロセス内の特定のコード フラグメント (通常は関数) です。
位置変数: $1、$2、... は、スクリプトにスクリプトコードのコマンドラインを通じて渡されるパラメータ
特殊変数: $?、$0、$*、$@、$#
ローカル変数:
変数の割り当て: 名前='value'
参照を使用できます:
value:
(1) 直接文字列にすることができます。 name="username "
(2) 変数参照: name= "$username"
(3) コマンド参照: name=`COMMAND`, name=$(COMMAND)
変数参照: ${name} , $name
"": 弱い参照、変数参照は変数値に置き換えられます。
'': 強い参照。変数参照は変数値に置き換えられませんが、元の文字は維持されます。
定義された変数をすべて表示します。
set
変数の破棄:
名前の設定解除
環境変数:
varvariable宣言と割り当て:export name =value
declare-x name =value
variableリファレンス:$ name、$ {name}
displayすべての環境変数:
export
env
printenv
destroy:
unset name
bashには多くの組み込み機能があります環境変数:PATH、SHELL、UID、HISTSIZE、HOME 、PWD、OLD、HISTFILE、PS1
変数の命名規則:
1. if、for などの予約語は使用できません。2.アンダースコアを付け、数字で始めることはできません。
読み取り専用変数:
readonly name
declare -r name
位置変数:
スクリプト コードのコマンド ラインを通じてスクリプトに渡されるパラメーターを呼び出します。
$1、$2、...: 1 番目、2 番目、およびその他のパラメーターの呼び出しに対応します。
shift [ n]
$0: コマンド自体;
$@: スクリプトに渡されるすべてのパラメータ。
$#: スクリプトに渡されるパラメーターの数
例: 指定されたファイル内の行数を決定します
#!/bin/bash
linecount="$( wc -l $1|cut -d' ' -f1)"
echo "$1 には $linecount 行があります。"
bash 設定ファイル:
スコープには 2 つのカテゴリがあります:
グローバル設定:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
個人設定:
~/.bash_profile
~/.bashrc
Profile クラス: 対話型ログイン シェルの構成を提供します
グローバル: /etc/profile、/etc/profile.d/*.sh
個人: ~/.bash_profile
関数:
(1) 環境変数を定義するために使用されます。 2) コマンドまたはスクリプトを実行します。
bashrc クラス: 非対話型ログイン シェルの構成を提供します
グローバル: /etc/bashrc
パーソナル: ~/.bashrc
機能:
(1) コマンドエイリアスを定義します。
(2) ローカル変数を定義します。
対話型ログイン:
ターミナルから直接ログインするアカウントのパスワードを入力してください
「su - UserName」または「su -l UserName」を使用してユーザーを切り替えます
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile - -> ~/.bashrc --> /etc/bashrc
非対話型ログイン:
グラフィカルの下で開かれたターミナルインターフェース
スクリプトを実行
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh (1) シェルプロセスを再起動します。
(2) ソースまたは コマンドプロセスを使用します。
質問:
1. すべてのユーザーに有効なエイリアスを定義しますか?
2. ユーザーの PATH 環境変数の値に、/usr/local/apache2/bin
Administrator などのパスを 1 つ追加しますか?
全部?
bash での算術演算
+, -, *, /, %, **
算術演算を実装します:
(1) let算術表現
(2) var=$[算術式]
(3) var=$((算術式))
(4) var=$(expr arg1 arg2 arg3 ... )
一部のシナリオでは乗算記号をエスケープする必要があります。
bash には乱数ジェネレーターが組み込まれています: $RANDOM
拡張割り当て:
+=、-=、 *=、/=、%=
let varOPERvalue
例: count+=1
をインクリメントおよびデクリメントします:
let var+=1
させてくださいvar++
let var-=1
let var--
/etc/passwd ファイル内の 10 番目のユーザーと 20 番目のユーザーの ID を計算し、
#!/bin/bash
userid1=$(head -n 10 /etc/passwd | tail -n 1 | Cut -d: -f3)
userid2=$ (head -n 20 / etc/passwd | tail -n 1 |cut -f3)
useridsum=$[$userid1+$userid2]
echo "uid sum: $useridsum " 2 つのファイル パスをパラメータとしてスクリプトに渡し、2 つのファイル内のすべての空白行の合計を計算します
#!/bin/bash
spaceline1=$ (grep "^[[ :space:]]*$" $1 |
wc -l)
spaceline2=$(grep "^[[:space:]]*$" $2 |
wc -l )
echo "スペース行の合計: $[$spaceline1+$spaceline2]"
/etc、/var、/usr ディレクトリーにある第 1 レベルのサブディレクトリーとファイルの数に関する統計。
条件テスト:
特定の要件が満たされているかどうかを判断するには、テストメカニズムによって実装する必要があります
注: 特別なテスト式を完了するには、テストコマンドを支援する必要があります。テストプロセス;
テストコマンド:
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
注: EXPRESSION は前後に置く必要があります。
bash テストの種類:
数値テスト:
-ge: 以上であるかどうか。
-eq: に等しいかどうか;
-ne: に等しいかどうか;
-le: に等しいかどうか以下;
文字列テスト:
==:
と等しいかどうか。
>: より大きいかどうか;
<: より小さいかどうか;
=~: 上の文字列かどうか左は右の PATTERN と一致します ;
注: この式は通常 [[ ]] で使用されます。空でない場合は true、空でない場合は false;
-n "STRING": 文字列が空でない場合は true、空の場合は false。 ;
注: 文字列を比較するときに使用するすべてのオペランドは引用符を使用する必要があります
bash カスタム終了ステータス コード
exit [n]:カスタム出口ステータス コード;
注: スクリプト内で終了コマンドが検出されると、スクリプトは直ちに終了します。終了ステータスは、終了コマンドの後の番号によって異なります。コードがスクリプトに指定されている場合、スクリプト全体の終了ステータス コードは、スクリプト内で実行された最後のコマンドのステータス コードによって異なります。
数値がパラメータとしてファイル パスを受け入れます。パラメーターの数が 1 未満の場合、ユーザーは「少なくとも 1 つのパラメーターを指定する必要があります」というメッセージが表示され、すぐに終了します
パラメーターの数が 1 より小さくない場合は、ファイル内の空白行の数を表示します。最初のパラメータが指す
egrep、拡張正規表現、変数、設定ファイル、算術演算、条件付きテスト、終了ステータス コード
ERE:
文字の一致: .、[] 、 [^]
一致数: *、?、+、{m,n}
位置アンカー: ^、$、<、>、b
グループ化: ()、 1、2、..
または: a|b
変数:
ローカル変数
環境変数
位置変数
特殊変数
は予約語を使用できません
コマンド: unset、export、declare -x、set、env、printenv、readonly
profile:
プロフィール、bashrc
arithmetic操作:
let、$ []、$(())、expr
+=、 - =、 *=、 /=
++、--
条件テスト:
test、[]、[[]]
の3種類:
値: -lt、-le、- gt、-ge、-ne、-eq
文字列: ==、!=、>、<、=~、-z、-n
File
Custom終了コード:
exit [n]
[ $# -lt 1 ] && echo "少なくとも 1 つの引数。" && exit 1
vim エディタ
はじめに
vi: ビジュアルインターフェイス、テキストエディタ
テキスト: ASCII、Unicode
テキスト編集タイプ:
ラインエディタ: sed
エディタ: ナノ、vi
VIM - Vi 改善
vimを使用: モーダル編集
基本モード:
編集モード、コマンドモード
入力モード
最終行モード:
内蔵コマンドラインインターフェース
ファイルを開く:
# vim [オプション] .. FILE...
+#: ファイルを開いた後、カーソルを行 # の先頭に直接置きます
+/PATTERN: ファイルを開いた後、カーソルを最初の行に直接置きます
モード変換:
入力モード
i: カーソル位置に挿入します。 a: 追加、カーソル位置の後に入力します。
o: 現在のカーソル位置の下に新しい行を開きます。
A: 現在のカーソル位置の先頭に入力します。現在のカーソル位置の下に新しい行を入力します。
O: 現在のカーソルがある行の上に新しい行を開きます。モード --> 編集モード ESC
:q 終了
:q! 保存して終了
:x保存と終了
:w /path + j、k、lh:left
l:right
j:bottom
k:トップ
#COMMAND: #; で指定された文字数にジャンプします
単語間をジャンプします:
w: 次の単語の先頭
e: 単語の終わり現在または次の単語
b: 現在または前の単語の先頭
#COMMAND: 一度にジャンプする単語の数は #
Jump で指定されます。行の先頭と末尾:
^: 行の先頭の空白以外の文字にジャンプします。
0: 行の先頭にジャンプします。行の終わり;
行間を移動:
#G: # で指定された行にジャンプします。
1G、gg:最初の行;
文間の移動:
)
(
段落間の移動:
}
{
ヴィム編集コマンド:
文字編集:
x: カーソル位置の文字を削除;
# x: 最初の # 文字を削除します。カーソルの位置の文字とその後ろの文字の位置を入れ替えます
置換コマンド (r、replace)
r: カーソル位置の文字を置換します。
削除コマンド:
d: カーソルと組み合わせて文字をジャンプして範囲を削除できます。
d $:
d^:
d0:
dw
de
db
#COMMAND
dd: を削除しますカーソルがある行;
#dd: 複数行の削除;
Paste コマンド (p、put、paste):
p: バッファーに行全体が保存されている場合は、現在のカーソルがある行の最後、そうでない場合は、現在のカーソル位置の後ろに貼り付けます。
P: バッファに行全体が格納されている場合は、現在のカーソルがある行の上に貼り付けます。現在のカーソル位置の前に移動します。
Copy コマンド (y, yank):
y: コピー、動作は d コマンドと似ています。 y0
y^
ye
yw
yb
#COMMAND
yy: 行をコピー
#yy:複数の行をコピーします。
Change コマンド (c , change)
c:
入力モードを変更します
c^ #コマンド #コマンド #コマンド
cc: 削除して新規入力
#cc:
その他の編集操作
視覚化モード:
v: 文字で選択
V: 行で選択
注: 多くの場合、編集と組み合わせられますコマンド
d, c, y
以前の編集を元に戻す:
u(undo): 以前の操作を元に戻す
#u: 指定された回数の操作を元に戻す;前を元に戻す元に戻す:
Ctrl+r
前の編集操作を繰り返す:
.
スクロール操作:
Ctrl +f: ファイルの最後までスクロールします;
Ctrl+b: ファイルの先頭まで 1 画面回転します。
Ctrl+u: 画面の半分をファイルの最後まで回転します。画面からファイルの先頭まで;
vim モードの最後の行:
組み込みコマンドラインインターフェース
(1) アドレス区切り
:start_pos, end_pos
#: 特定の行 #、たとえば、2 は行 2 を意味します。
#,#: 左から # は行の先頭を表し、右へ # は行の末尾を表します。
#,+#: 左から # は行を表し、右の # は行数を表します。
.: 現在の行
$: 最後の行
.,$-1
%: フルテキスト、1,$
/pat1/,/pat2/:
pat1 パターンに一致した最初の行から pat2 に一致した最初の行まで開始 一致した行終了;
#,/pat/
/pat/,$
使用法:
の後に編集コマンド
d
w /PATH/TO/SOMEWHERE: 範囲内の行を指定したファイルに保存します。
r /PATH/FROM/SOMEFILE: 指定したファイルのすべての内容を指定した場所に挿入します。
(2) 検索
/PATTERN: 現在のカーソル位置からファイルの末尾まで検索します。
?PATTERN: 現在のカーソル位置からファイルの先頭まで検索します。 : コマンドと同じです。 方向
N: コマンドの逆方向。
s/検索対象/置換先/修飾子
検索対象: パターンを使用できます
置換先: パターンは使用できませんが、1、2、... などの後方参照記号は使用できます。また、「&」を使用して、前の検索で見つかったコンテンツ全体を参照することもできます。行が置き換えられます 出現箇所
置換内の区切り文字を見つけます/
s@@@
s###
1 など、/etc /grub2.cfg を /tmp/ ディレクトリにコピーし、検索と置換コマンドを使用して /tmp/grub2.cfg ファイル内の行の先頭にある空白文字を削除します。 [[:space:]]+//g
2. /etc/rc.d/init.d/functions ファイルを /tmp ディレクトリにコピーし、検索と置換コマンドを使用して# 空白文字で始まる /tmp/functions の各行の先頭にあります。モード:
vim FILE1 FILE2 FILE3...
:next 次の
:prev 前
:first first
:last last
:壁すべて保存
:qall すべて終了
ウィンドウ分割モード:
vim -o|-O FILE1 FILE2 ...
-o: 水平分割
-O : 垂直分割
ウィンドウの切り替え: Ctrl+w、矢印
単一ファイルウィンドウの分割:
Ctrl+w、s: 分割、水平分割
Ctrl+w、 v: 垂直、垂直分割
カスタマイズされた vim 動作機能:
設定ファイル: 永続的に有効
グローバル: /etc/vimrc
個人: ~/.vimrc
最後の行: 現在の vim プロセスは有効です
(1) 行番号
表示: setnumber、set nu と省略されます
表示のキャンセル: set nonumber、set nonu と省略されます
(2) ブラケット マッチング
マッチング: set showmatch、set sm
と省略されます。cancel: set nosm
(3) 自動インデント
有効: set ai
無効: set noai
(4) ハイライト検索
有効: set hlsearch
無効化: nohlsearch を設定します
(5) 構文の強調表示
有効: 構文オン
無効: 構文オフ
(6) 文字の大文字と小文字を無視する
有効: set ic
しないでください無視: noic を設定
ヘルプを取得:
:help
:help subject
bash 条件テスト:
テスト方法:
テストEXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
テスト式のカテゴリ:
数値比較
文字列テスト
ファイルテスト:
存在テスト
-a FILE
-e FILE: ファイルの存在テスト、存在する場合は true、存在しない場合は false
存在とカテゴリのテスト
- b FILE; : 存在し、ブロックデバイスファイルであるかどうか。
-c FILE: 存在し、キャラクターデバイスファイルであるかどうか。
-d FILE: 存在し、ディレクトリファイルであるかどうか。
-f FILE: 存在し、通常のファイルであるかどうか。
-h FILE または -L FILE: 存在し、シンボリックリンクファイルであるかどうか。名前付きパイプファイル;
-S FILE: 存在し、ソケットファイルであるかどうか
ファイル権限テスト:
-r FILE: 存在し、読み取り可能かどうか: 存在し、書き込み可能かどうか
-x FILE: 存在し、実行可能かどうか
ファイルの特別な権限テスト:
-g FILE: 存在し、sgid 権限があるかどうか。 -u FILE: 存在し、suid 権限があるかどうか。
-k FILE: 存在し、スティッキー権限があるかどうか。
ファイルサイズテスト:
-s FILE: 存在するかどうか。 empty;
ファイルが開いているかどうか:
-t fd: fd はファイル記述子が開かれているかどうか、端末に関連しているかどうかを意味します
-N FILE: ファイルが開いているかどうか最後に読み取られてから変更されているかどうか。
-O FILE: 現在の実効ユーザーがファイル所有者であるかどうか。 両眼テスト:
FILE1 -ef FILE2: FILE1 と FILE2 が同じデバイス i ノード上の同じファイルを指しているかどうか
FILE1 -nt FILE2: FILE1 が FILE2 より新しいかどうか
FILE1 -ot FILE2: FILE1 が FILE2 より古いかどうか
結合テスト条件:
論理演算:
最初の方法:
COMMAND1 && COMMAND2
コマンド1 || コマンド2
! コマンド
[ -e FILE ] && [ -r FILE ]
2 番目の方法:
EXPRESSION1 -a EXPRESSION2
EXPRESSION1 -o EXPRESSION2
! EXPRESSION
# [ -z "$ホスト名" -o " $hostName "=="localhost.localdomain" ] && ホスト名 www.madu.com
# [ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab
vim:
編集モード、入力モード、最終行モード、視覚化モード
ジャンプ: h,j,k,l,w,b,e,),(,}, {, G 、^、0、$
編集: x、r、c、d、y、p、u、ctrl+r
検索: /、?、n、N
検索置換: s
s///
g:
i:
最終行区切り文字:
#
m,n
m、+#
.
$
/pat1/
/pat1/,/pat2/
%
ファイルテスト:
単眼: -e、- f、-d、-b、-c、-L、-P、-S、-r、-w、-x、-s
バイナリ: -nt、-ot
組み合わせテスト: -a、-o、!
ファイル検索:
ファイル システム上の条件付きファイルを検索します。
ファイル検索: 検索、検索
非リアルタイムsearch (データベース検索):locate
リアルタイム検索:find
locate:
インデックスの構築は、システムが相対的に安定しているときに自動的に実行されます。アイドル (定期的なタスク); データベースを手動で更新します (updatedb)。
高速検索、
非リアルタイム検索
fi nd:
リアルタイム検索ツール、指定されたパスをたどることで、ファイル システムがファイル検索を完了します。
検索速度が若干遅い
リアルタイム検索。
文法:
find [オプション] .. [検索パス] [検索条件] [処理アクション]
検索パス: 特定のターゲット パスを指定します。デフォルトは現在のディレクトリです。
検索条件: 指定された検索条件 (ファイル名、サイズ、タイプ、権限、その他の標準)。デフォルトでは、指定されたパスにあるすべてのファイルが検索されます。
処理アクション: 一致するファイルをどう処理するか。条件; デフォルトの出力は画面に表示されます。
検索条件:
ファイル名に基づいて検索:
-name "ファイル名": glob
の使用をサポートします。 *、?、[]、[^]
-iname "ファイル名": 文字は大文字と小文字が区別されません
-regex "PATTERN": ファイル パス文字列全体と一致させるには PATTERN を使用します。ファイル名のみ
所有者とグループに基づいて検索:
-user USERNAME: 指定されたユーザーが所有者であるファイルを検索します。
group GRPNAME: 指定されたグループがグループであるファイルを検索します。
-uid UserID: owner は指定されたグループ ファイルです。
-gid GroupID: グループが指定された GID 番号を持つファイルを検索します。
-nogroup: 所有者のないファイルを検索します。グループファイル;
ファイルタイプに基づいて検索:
f: 通常のファイル
d: ディレクトリファイル
l: シンボリックリンクファイル
S: パッティングファイル B: ブロックデバイスファイル
c: キャラクターデバイスファイル
P: パイプファイル
組み合わせ条件:
と: -a
または: -o
非: -not、!
!A -a !B = !(A -o B)
!A -o !B = !( A -a B)
/tmp ディレクトリ内で、所有者が root ではなく、ファイル名が fstab ではないファイルを検索します。
find /tmp ( -not -user root -a -not -name 'fstab ' ) -ls
find /tmp -not ( -user root -o -name 'fstab' ) -ls
ファイルサイズに基づいて検索:
-size [+| -] #UNIT
共通単位: k、M、G
#UNIT: (#-1, #]
-#UNIT: [0,#-1]
+ #UNIT: (#,oo)
タイムスタンプによると:
in "日";
-atime [+|-]#,
#: [#, #+1)
+#: [#+1,oo]
-#: [0,#)
-mtime
-ctime
」分":
-amin
-mmin
-cmin
権限に基づいて検索:
-perm [/|-]MODE
モード:正確な権限の一致
/MODE: (u、g、o) オブジェクトの任意のタイプの権限の 1 つが一致する限り、
-MODE: オブジェクトの各タイプが同時に一致する必要があります。 time パーミッション標準が指定されています。
処理アクション:
-print: 画面に表示されるデフォルトの処理アクション。
: found file -l" コマンド;
-delete: 見つかったファイルを削除します;
-fls /path/to/somefile: 見つかったすべてのファイルの長い形式の情報を指定したファイルに保存します;
-ok COMMAND {} ; 見つかったファイルごとに COMMAND で指定されたコマンドを実行します。
コマンドを実行する前に、ユーザーは対話的に確認を求められます。見つかった各ファイルは、COMMAND で指定されたコマンドを実行します。 : 見つかったファイル名自体を参照するために使用されます。
注: find は、見つかったファイルを後で指定されたコマンドに渡します。条件を満たして後続のコマンドにすぐに渡します
一部のコマンドはパラメータが多すぎるため、コマンドの実行が失敗する可能性があります。この問題を回避する別の方法は次のとおりです。
ルートに属しているすべてのファイルまたはディレクトリを検索します。 # find /var -user root -group mail
2. root、bin、hadoop ファイルまたはディレクトリに属さないすべてのファイルを /usr ディレクトリで検索します
# find /usr -not -user root -a -not -user bin -a -not -user hadoop
# find /usr -not ( -user root -o -user bin -o -user hadoop )
3. /etc ディレクトリ内で、所有者が root ではなく、Hadoop ファイルまたはディレクトリでもないファイルまたはディレクトリを検索します。
# find / etc -mtime -7 -a - not -user root -a -not -user hadoop
# find /etc/ -mtime -7 -a -not ( -user root -o -user hadoop )
4. ファイルまたはディレクトリを検索します。現在のシステムに所有者もグループもなく、先週アクセスされたもの
# find / -nouser -a -nogroup -a -atime -7
5. 1M を超え、通常のファイルタイプの /etc ディレクトリ。
# find /etc -size +1M -type f
6. ディレクトリ内のすべてのユーザーが /etc を検索します。ファイルへの書き込み権限がありません。
# find /etc -not -perm /222
7. ユーザーが実行権限を持たないファイルの種類を少なくとも 1 つ見つけます。
# find /etc -not -perm -111
8. すべてのユーザーが実行権限を持ち、他のユーザーが書き込み権限を持っているファイルを /etc/init.d ディレクトリで検索します。 # find /etc/init.d -perm -113
Linux ファイル システムに対する特別なアクセス許可
SUID、SGID、Sticky
1 アクセス許可
r、w、x
ユーザー、グループ、その他
2 セキュリティコンテキスト
前提: プロセスには所有者とグループがあり、ファイルには所有者とグループがあります。 ) 実行可能プログラム ファイルをプロセスとして開始できるかどうかは、イニシエーターがそのプログラム ファイルに対する実行権限を持っているかどうかによって決まります。
(2) プロセスとして開始された後は、プロセスの所有者がイニシエーターになります。プロセスのイニシエーターです イニシエーターが属するグループ
(3) ファイルにアクセスするときのプロセスの権限は、プロセスのイニシエーターによって異なります:
(a) プロセスのイニシエーターファイルの所有者と同じです: ファイル所有者の権限が適用されます ;
(b) プロセスの開始者はファイルのグループに属します;その後、ファイルのグループの権限を適用します;
(c)ファイルの "その他" 権限;
3 SUID
(1) 実行可能プログラム ファイルをプロセスとして開始できるかどうか: イニシエーターがプログラム ファイルに対する実行権限を持っているかどうかによって異なります。 (2) プロセスとして開始された後、プロセスの所有者は元のプログラム ファイルの所有者になります。
chmod u-s FILE...
4 SGID
デフォルトでは、ユーザーがファイルを作成すると、そのファイルが属するグループがそのユーザーが属する基本グループになります。ディレクトリには SGID が設定され、このディレクトリへの書き込み権限を持つユーザーによってこのディレクトリに作成されたファイルが属するグループは、このディレクトリが属するグループです。 権限設定:
chmod g +s DIR...
chmod g-s DIR...
5 Sticky
複数のユーザーが書き込み可能なディレクトリの場合、sticky が設定されている場合、各ユーザーは自分のファイルのみを削除できます
chmod o+t DIR...
chmod o-t DIR...
SUID SGID STICKY
000 0
001 1
010 2 1 3
100 4
101 5
110 6
111 7
chmod 4777 /tmp/a.txt
いくつかの許可ビットマッピング:
SUID: user 、所有者の実行を占有します許可ビット;
s: 所有者は x 許可を持っています
S: 所有者は x 許可を持っていません
SGID: グループ、グループの実行許可ビットを占有します
s: グループが持っていますx 権限
S: グループには x 権限がありません
Sticky: その他、その他の実行権限ビットを占有します
t: 他には x 権限があります
T: その他 いいえx 権限
bash スクリプト:
手続き型プログラミング言語:
順次実行
選択された実行
ループ実行
実行することを選択してください:
if 判定条件
then
条件が真となる分岐コード
fi
if 条件が真となる分岐コード
else
条件が偽の分岐コード
fi

以上がLinuxシステムの基礎(1)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。