vim 使用#
mkdir フォルダ名
フォルダを作成する
rm -rf ファイル名
ファイルを削除する
cp 元のファイルのパス 宛先のパス
単一のファイルをコピーする
cp 元のファイルのパス -r 宛先のパス
フォルダをコピーする
mv 元のファイルまたはフォルダ名 変更後の名前
ファイルまたはフォルダの名前を変更する
ファイルを表示する: cat ファイル名
検索結果を別のファイルに保存する: grep 検索内容 ファイル名>新しいファイル名
cat ファイル名 | grep 検索内容 ファイル名>新しいファイル名
権限を追加する
chmod +x ファイル名
test.sh を作成する:
date
x 権限を追加する
chmod +x test.sh
sh ファイルを実行する
./test.sh
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ vi test.sh
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ ll
total 36
drwxrwxr-x 9 test test 4096 Sep 15 17:15 1
-rw-rw-r-- 1 test test 878 Sep 15 17:32 SentimentModel_def
-rw-rw-r-- 1 test test 14794 Sep 15 17:10 SentimentModel.py
-rw-rw-r-- 1 test test 5 Sep 15 20:22 test.sh
-rw-rw-r-- 1 test test 76 Sep 15 19:16 test.txt
drwxrwxr-x 2 test test 4096 Sep 15 19:21 xieqiang
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ chmod +x test.sh
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ ll
total 36
drwxrwxr-x 9 test test 4096 Sep 15 17:15 1
-rw-rw-r-- 1 test test 878 Sep 15 17:32 SentimentModel_def
-rw-rw-r-- 1 test test 14794 Sep 15 17:10 SentimentModel.py
-rwxrwxr-x 1 test test 5 Sep 15 20:22 test.sh
-rw-rw-r-- 1 test test 76 Sep 15 19:16 test.txt
drwxrwxr-x 2 test test 4096 Sep 15 19:21 xieqiang
[test@iZuf64fh3qqfih9qs3bh1oZ tang]$ ./test.sh
Wed Sep 15 20:23:15 CST 2021
空のファイルを作成する touch ファイル名
Linux のテキストファイルの改行文字を表示する
cat -A ファイル名
コピー&ペースト
yy
行全体をコピーする
p
ペーストする
行を削除する
dd
カーソルがある行を削除する
ndd
カーソルがある行から下に n 行削除する
dG
カーソルがある行から最後の行までのデータを削除する
選択したテキストを削除する
コマンドモードでテキストを選択するには、v
またはCtrl+v
を使用し、x
を押します
選択したテキストをコピーする
コマンドモードでテキストを選択するには、v
またはCtrl+v
を使用し、y
でコピーし、p(またはP)
で貼り付けます
行番号を表示する
:set nu
行番号を解除する
:set nonu
複数のファイルを編集する
:n
次のファイルを編集する
:N
前のファイルを編集する
:files
現在開いているすべてのファイルをリストする
DOS と Linux の改行文字
dos2 unix [-kn] ファイル [新しいファイル] Unix に変換する
unix2 dos [-kn] ファイル [新しいファイル] DOS に変換する
ワイルドカードと特殊文字
*
0 個以上の文字(または数字)を表す
?
1 つの文字を表す
#
コメント、スクリプトでよく使用され、説明と見なされる
\
エスケープ文字、特殊文字またはワイルドカードを通常の文字に戻す
|
パイプのコマンドを区切る
;
コマンドの連続を区切る(注意:パイプコマンドとは異なる)
&
コマンドをバックグラウンドで実行する
!
論理的な「非」(not)の意味
/
パスの区切り記号
>
>>
出力のリダイレクト、それぞれ「置換」と「追加」を意味する
'
変数の置換機能を持たない
"
変数の置換機能を持つ
`` ` ` ``の間には実行可能なコマンドがあります
()
子シェルの開始と終了
[]
文字の組み合わせ
{}
コマンドブロックの組み合わせ
パイプコマンド(pipe)
1、cut
echo $PATH|cut -d ':' -f 3
2、シェルの \r を削除する
cat my_shell.sh|tr -d '\r' > my_shell.sh
//------------------------ 正規表現 ----------------------------------------------------------
1、grep [-acinv]
' 検索文字列 ' ファイル名
パラメータの説明:
-a
: バイナリファイルでもテキストファイルとしてデータを検索する
-c
: ' 検索 ' 文字列が見つかった回数をカウントする
-i
: 大文字と小文字を区別しない
-n
: 行番号を出力する
-v
: ' 検索文字列 ' の内容がない行を表示する
2、[] を使用してグループ文字列を検索する
grep -n 't[ae]st' ファイル名
[] 内の文字数に関係なく、1 つの文字を表すため、'tast' と 'test' の 2 つの文字列を検索します
grep -n '[^g]oo' ファイル名
g を含まない oo を取り出す
grep -n '[^a-z]oo' ファイル名
小文字を含まない oo を取り出す(数字と英字の場合は [a-zA-Z0-9])
3、行の先頭と末尾の文字 ^ $
grep -n '^the' ファイル名` 行の先頭にtheが含まれる文字列を取得する(注意:[]内と外では異なる意味を持ちます。[]内では逆選択を表し、[]外では行の先頭を表します)
grep -n '\.$' ファイル名` ピリオドが行の末尾にある行を取得する
4、任意の 1 文字。と繰り返し文字 *
grep -n 'g..d' ファイル名
g と d の文字を含む行を取得し、g と d の間には 2 つの文字が存在する必要があります
grep -n 'oo*' ファイル名
1 つ以上の o を含む行を取得する(* は 0 個以上の任意の文字を表します)
5、繰り返し文字の範囲 {}
grep -n 'o\{2,5\}' ファイル名
2〜5 個の o を含む行を取得する(注意::{} はシェルで特殊な意味を持つため、使用する際はエスケープ文字 \ が必要です)
6、sed ツールの概要
削除
cat -n /etc/passwd | sed '2,2d'
2 行から 12 行まで削除する
cat -n /etc/passwd | sed '12,$d'
12 行から最後の行まで削除する
cat -n /etc/passwd | sed '2a hello wanlx'
2 行の後に hello wlx を追加する
cat -n /etc/passwd | sed '5i hello wanlx'
5 行の後に hello wlx を追加する
cat -n /etc/passwd | sed '2,5c hello wanlx'
2〜5 行を hello wlx に置き換える
cat -n /etc/passwd | sed -n '5,7p'
5〜7 行を表示する
7、awk ツールの概要(便利なもの)
スペースとタブで文字列を分割する
//-------------------- シェルスクリプトの学習 -------------------------------------------------------------
1、判定記号 [] の使用
1.1 各コンポーネントの間にはスペースを入れる必要があります。例:[ "$HOME" == "$MAIL" ]
1.2 中括弧内の変数は、ダブルクォーテーションで設定することが最善です。
1.3 中括弧内の定数は、シングルクォーテーションまたはダブルクォーテーションで設定することが最善です。
2、シェルスクリプトのトレースとデバッグ
sh [-nvx] filename.sh
-n
スクリプトを実行せず、構文の問題のみをクエリします
-v
スクリプトの内容を実行する前に画面に表示します
-x
使用されるスクリプトの内容を画面に表示します(スクリプトの実行をトレースする)
//---------------- 定期的なジョブの実行 --------------------------------------------------
crontab [-u ユーザ名] [-l|-e|-r]
パラメータ
-u
このタスクはroot
のみが実行できるため、他のユーザーのcrontab
を作成 / 削除する
-e
crontab
の作業内容を編集する
-l
crontab
の作業内容を表示する
-r
crontab
の作業内容を削除する(すべての内容)
30 10 * * * /bin/sh /root/shell_script/mongodb/mongo_log_mgr.sh
ジョブを編集する
crontab -e
編集が完了したら、crond
サービスを再起動する(redhat6.4
では再起動は不要です)
/etc/init.d/crond restart
システムから送信されるメールのアドレスを設定する
vi /etc/crontab
そして、MAILTO
を変更する
//--------------- バックグラウンドジョブの管理 -------------------------------------------
kill -signal %ジョブ番号
パラメータ
-l
使用可能なシグナル(signal)を一覧表示する
signal
後続のジョブに対して何を指示するかを示す(何をするかわからない)。man 7 signal で確認できます
-1
パラメータの設定ファイルを再読み込みする(リロードのようなもの)
-2
キーボードからの入力と同じ動作をする
-9
ジョブを即座に強制的に削除する
-15
通常のプログラムの方法でジョブを終了する