Javaのインタビューの基礎 - Linuxの記事

0デイリー受注
  • CDのディレクトリパス:指定されたディレクトリへジャンプ
  • mkdirディレクトリ名:新規ディレクトリ
  • PWD:現在のパスを取得します。
  • SU:スイッチのユーザー
  • LL:男は、カレントディレクトリのファイルとディレクトリを表示します
  • rm -rfディレクトリ:再帰的に指定したディレクトリ内のすべてのファイルを削除します
  • viのファイル:ファイルを変更するには
  • MVソースフォルダは、新しいフォルダ名に名前を付ける:特定のディレクトリにフォルダを移動します
  • グレップ:所望の情報を見つけます
  • 新しいディレクトリ名のCP -rソースディレクトリ名:新しいディレクトリに指定したディレクトリにファイルをコピーします
  • ファイル名には触れ:ファイルを作成します。
  • -nameファイル名を見つけます。ファイルを探します
  • 所有者は、ファイルを表示します。ls -ahl
  • chkconfigを--add XXX:XXXスクリプトは、内部のブートエントリに追加
  • chkconfig --list:成功の追加かどうかを確認するには
  • 今-hシャットダウン:今すぐシャットダウン指定。
  • シャットダウン5「5分後にシステムがシャットダウン」:看板にユーザーに警告メッセージを送信中に、5分後にオフを指定します
  • リブート:再起動
  • -w再起動:シミュレーションを再起動する(レコードのみが実際に再起動しません)

1. Helpコマンド:男、ヘルプ、情報
  • ヘルプのxxx#組み込みコマンドが表示さ役立つ情報;
    xxxの--help#外部コマンドは、ヘルプ情報を表示します。
  • 内には男のxxx#ポイントの外部、コンテンツがヘルプを表示するよりも詳細。
  • 男性よりも詳細な情報のxxx#取得したコンテンツ。

2.コマンドのアクティブなプロセスを確認します。ps、トップを、pidstat
  • ディスプレイシステム内のすべてのプロセスのPS
    〜PS-エルフ見る全てのプロセス;
    〜のps -ef | grepをのJavaビューJavaおよびすべての関連プロセス。
  • アクティブなプロセス、CPUとメモリ情報、各プロセスのリアルタイム表示システムリソースの消費量を表示するための上部には、
    処理は、CPU、メモリ使用量と実行時間によってソートすることができます。
  • 場合は、すべてのまたは指定されたプロセスは、CPU、メモリ、ディスクI / O、スレッドスイッチ、スレッドおよび他のデータの数を含む、システムリソースを消費監視するために使用pidstat。
    pidstat -u / -r / -d -pプロセスID -説明:( - uのCPU、メモリ-r、-dディスクI / O

尾、頭、猫、より多くの、より少ない、SED:3.ログ一般的に使用されるコマンドをチェック
  • 尾:ファイルの動的監視
    ログラインの200 test.log 200リアルタイム監視-fnテール
    10 test.log照会-n尾ログの最後の10行
    すべてのログ照会の10 test.log 10行-n尾後
  • 10 -nヘッドは、ログの最初の10行を表示test.log
    頭を-n -10 test.log参照の他の最後の10行をログに記録
  • 猫-n test.log |クエリではgrep「ラン」を実行しtest.log行含まれている
    test.logのすべての内容を表示test.log猫を
  •  SED -n '/ 2019年11月17日夜4時17分20秒は、/、 / 2019年12月17日16:17:36 / P' test.log 指定された日付範囲のログを見つける
    '1,3p' -nのsedをテスト.logのラインに1-3ログを表示
  • より多くの次のスペースを、ダウンできる一つの行を入力してあることを、パーセンテージを表示することができ、qはビューを終了するには
    、より-4 test.log各スクリーンディスプレイ4行ログ
    ログからの最初の発生を見つけるtest.logより+ /ラン「RUN」の文字列ラインと、表示出力開始から二行
    猫test.log |より-5全体がtest.log 5行のそれぞれで得られ
    more 仅能向前移动,却不能向后移动
  • 複数のファイルを探検以下test.log test1.log
    表示し、プロセス情報を同時に少ないページングによって行番号を表示するには以下-Nは、ps | PS -ef
    PSの補助を| grepをするRedisの:ビューは、プロセスRedisの文字列を含める
    のpgrepのRedis -a:ビューをプロセスRedisの文字列を含みます
  • すべての履歴履歴ビュー
    のgrep xxxの閲覧履歴が記録されたいくつかの命令が含まれています|歴史
    よりページビューレコード|歴史
    歴史-cをすべてクリア歴史
打开超大文件: 
    1. head -10000 slowquery.log > temp.log  将slowquery.log的前10000行日志写入到temp.log中
    2. tail -10000 slowquery.log > temp.log   将slowquery.log的后10000行日志写入到temp.log中
    3. sed -n '10,10000p' slowquery.log > temp.log 把slowquery.log第10到10000行的数据写入到temp.log中
    4. cat catalina.log | grep   '2017-09-06 15:15:42' > test.log  根据查询条件导出

4. archiveコマンド
  • タール-zxvf xxxx.gz:現在のディレクトリ内のファイルを抽出し
    たtar -zxvf xxxx.gz -Cは/ usr / local指定した場所にファイルを解凍します
  • abc.gzアーカイブに圧縮されたtar -zcvf abc.gz A.TXT B.TXT c.txtこの3つのファイル
    のtar -zcvf abc.gz / ABC /指定されたディレクトリのアーカイブに圧縮

前記プロセスの動作を殺します
方法一:把ps的查询结果通过管道给grep查找包含特定字符串的进程, 管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
例如: ps -ef | grep firefox 找到firefox进程的进程号
然后:kill -s 9 6496   杀死进程
方法二:  使用pgrep查询某个进程的进程号
例如:pgrep firefox    
然后:kill -s 9 6496
方法三: 使用pkill, pkill无须 “s”,终止信号等级直接跟在 “-“ 后面
例如:pkill -9 firefox

6.権限を注文します

オペレーティングシステムは、各ファイルは特定の権限、1つの所有者とグループを持ち、Linuxは一般的に(読み)読み取りアクセス権に分かれて3つのグループに分け、書き込み(書き込み可能)と実行(excutable)。ファイルの所有者(所有者)に対応して、我々は、ディレクトリ内のファイルやディレクトリのパーミッション見ることができるのls -lコマンドによるグループ(グループ)、その他(その他)、である
ファイルの種類を:

  • D:ディレクトリを表し
  • - :ファイルを表します
  • L:ソフトリンクを表す(ショートカットウィンドウがであると考えることができます)

Linuxの権限は、次のカテゴリに分類されます。

  • R:代表的な権限が読み出され、符号4で表すことができます
  • W:数2のように表すことができ、権限が書き込み可能な表します
  • X:アクセス権が実行可能である、あなたは数1が示す使用することができ表し
    異なる意味を読み書き実行し、ファイルやディレクトリの面で。ファイルの場合:
権限の名前 操作を実行
R あなたはファイルの内容を確認するために猫を使用することができます
ワット あなたはファイルの内容を変更することができます
バツ あなたは、バイナリファイルとしてそれを実行することができます

ディレクトリの場合:

権限の名前 操作を実行
R あなたは、ディレクトリのリストを表示することができます
ワット あなたは、ファイルのディレクトリを作成および削除することができます
バツ あなたはディレクトリにCDを使用することができます

超级用户可以无视普通用户的权限,即使文件目录权限是000,依旧可以访问。 在linux中的每个用户必须属于一个组,不能独立于组外

修改文件/目录的权限的命令:chmod
示例:
修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限, 其他用户只有读的权限:
chmod u=rwx,g=rw,o=r aaa.txt
上述示例还可以使用数字表示:chmod 764 aaa.txt

より多くのを参照してくださいここに


ディスクの状況がコマンド7レビュー:無料、vmstatの、デュ、DF

空きメモリを用いた表示システム、物理的相互作用領域のメモリ(スワップ)と、カーネルバッファメモリを含むメモリ

  • 自由:
    • メモリ使用量の[] -Bバイト表示。 
    • KB表示メモリ使用量の[] -K。
    • [] -M MBのメモリ使用量を表示します。
    • [] GBディスプレイのメモリ使用量に-G。 
    • [] -Oバッファ調整列を表示しません。 
    • [] -S <秒間隔>メモリ使用量が連続的に観察されます。
    • [] -T表示メモリ列の合計。 
    • [] -Vバージョン情報を表示。 
      例:空きメモリ使用量を確認するために10、10秒ごとに-s
  • 猫の/ proc / meminfoにfreeコマンドに相当します
  • vmstat:システムリソースの動作を動的に理解
  • デュ:各ファイルやディレクトリのディスク領域の使用やファイルの量を表示します。
    例:デュ-h tomcat8.5 /フォルダは、各ファイル、ディレクトリを表示tomcat8.5スペースを示してい
  • DF:ディスク・パーティション上で使用可能なディスクスペース表示
    例:
    DF -aビューすべてのファイルシステムは、デフォルトの単位KBの発現
    KB、MB内で発現-h DF、表示するためのGB単位、高い可読性
    複数の参照をここに

8.ファイル転送コマンド:FTP、SCP、rsyncを、RZ、SZ
  • FTP:無視
  • SCP:
    SCP -p ./files/yum.log 192.168.214.187:/tmp/demo/:yumのは、それがデモの下でマシンのIP 192.168.214.18に、現在のシステムファイルのディレクトリには/ tmp /ディレクトリにログファイルをコピーすると述べました

  • SZ:
    SZ test.log:ウィンドウにログファイルをtest.logダウンロード
  • :Rzが
    決定した後、あなたがアップロードしたいファイルを選択し、ファイルのファイルのアップロード、ポップアップボックスをアップロードすることができます
  • rsyncは:
    rsyncの増分バックアップツールを達成することができます。タスクスケジューラでは、rsyncは、タイミングや同期の間隔を達成することができ、inotifyをまたはsersyncで、リアルタイムの同期トリガを達成することができます。rsyncがリモートでSCP、CPローカルコピー、ファイルや他の機能のリストを表示するには、削除し、「LS -l」するRMでコピーすることができます


9.ネットワーク関連コマンド:netstatコマンド、ifconfigコマンド、SS、tcpdumpを、トレースルート、pingを実行、nslookupコマンド、掘る、nmapの
  • ifconfigコマンド:現在のシステムと類似したIP addrコマンドの表示カード情報。
  • ピング:機械との表示の接続
  • netstatの:そのようなネットワーク接続、ルーティングテーブル、インターフェース、マスカレード接続、マルチキャストメンバーシップなどとして、様々なネットワーク関連情報を表示します。
    システムの現在のポートの使用を表示します。netstat -an
    リストのすべてのポート:netstatの-aの
    リストすべてのTCPポート:netstatの-at
    リストのすべてのUDPポート:netstatの-auは
    専用ポートをリスニングショーがします。netstat -lは、
    ちょうどすべてのTCPリスニングを一覧表示しますポートします。netstat -ltは
    唯一、すべてのリスニングUDPポートを一覧表示します。netstat -luは
    netstatの-lx:のみすべてのリスニングポートUNIX一覧表示
    は、netstat -s:すべてのポートの統計情報を表示し
    、2秒ごとにネットワーク情報netstatの意志の出力をします。netstat -t -c 2
    コアは、ルーティング情報を示しています。netstat -rn
    実行見つけるポート:netstatの-apn |はgrepのsshが
    指定されたポートで実行中のプロセスを識別します。netstat -anを|はgrep ':22 '
    6379ポート占有表示:netstatのを- NTLP | grepを6379

  • SS:ソケットを表示することができ、統計情報と同様の内容のnetstatコマンドを取得するために使用することができ、利点は、TCPとの接続状況に関するより詳細な情報を表示し、より速く、netstatのより効率的ということです。
    例:ローカルディスプレイ-l ssのすべての開いているポート
    のSS各プロセスの表示、特定のオープンソケット-pl
    すべてのTCP表示-a -t SSソケット
    SSはすべて-u -a Socekt UDP示し
    SS状態ESTABLISHED -oを「(= DPORT :SMTPやスポーツ=:SMTP)は ' すべてのSMTP接続を確立ショー
    SS -o状態が確立'(DPORT = :httpまたはスポーツ=:HTTP) ' を示し、すべてのHTTP接続を確立
    SS -x SRCは/tmp/.X11 -unix / * Xサーバに接続されているすべてのプロセスを見つける
    現在のソケットについてのSS -sリストの詳細な情報を
ss 与 netstat对比:  
    ss命令是iproute工具集(CentOS 最小化安装带有);netstat命令是net-tools工具集;
    当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢;
    ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。
  • tcpdumpの:指定されたパケットのヘッダファイル、ネットワークインタフェース後tcpdumpコマンドリストを実行し、データ伝送ネットワークを注入
    TCPパケット情報表示のtcpdump:実施例
    20 -c tcpdumpのは:パケットの数表示
    10 -q -cのtcpdumpを:ライトモードの表示を10個のパケットが
    tcpdumpの-ddd 10進数形式に変換します
  • トレースルート:取ることですインターネットのもう一方の端に、ホストコンピュータからどのようなパスの情報を知っている
    例を:
  1. トレースルート-n -m 5 -q 4 -w 3 www.baidu.com
    説明:各ゲートウェイ4提供されたIPアドレス-N、ホスト名がチェックしない、-m -q 4つのホップ外部-wにデータパケットを送信します時間に応じて送信されるのを待っているプローブパケットは3秒に設定されています
  2. トレースルート-p 6888は、実質的に提供されるUDPポート6888を使用してパケットを調べるwww.baidu.com
  3. トレースルート-r www.baidu.comは、ネットワークに接続されたホストに直接送信、通常のルーティングテーブルをバイパス
  • nslookupコマンド:クエリのDNSレコードは、クエリのドメイン名の解決が機能している、ネットワーク障害時にネットワークの問題を診断するために使用しました。
    例:nslookupをwww.baidu.com Baiduのアドレスを解決するために、マシンのデフォルトのDNSを使用して
    nslookupをwww.baidu.com 8.8.8.8は、Baiduのアドレスを解決するために指定されたDNSサーバを表し
    nslookupコマンド-d www.baidu.com限りクエリとして時間を表し、プラスのキャッシュ-dパラメータは、あなたがドメイン名を照会することができます
  • nmapの
    TCPポートスキャン:-sT、-sP
    TCPポートは、SYNスキャン:-sS
    nmapの-p 20,21,53-110,30000 -sS 192.168.137.10 -255 --v
    UDPポートスキャン:-sU
    TCPはACKをスキャン: - sAの
  • 掘るコマンドは、主にDNSドメインネームサーバのホストアドレス情報から照会するために使用される
    単一のホスト掘るbaidu.comのためのクエリ情報

注意点:
linux连接超时,处理方案:
1. 测试网络是否通:ping 远程IP
2. 如果能ping通则表示与服务器网络连接是正常,接下来测试端口:telnet 远程ip 端口
3.如果telnet不上,要考虑服务器是否有防火墙拦截:
  (1)CentOS7查看防火墙是否运行: firewall-cmd --state
  (2) CentOS6查看防火墙是否运行:/sbin/service iptables status
4. 如果防火墙被拦截,需要放行端口。如果防火墙没有拦截,则要考虑服务内部是否配置限定IP访问。MySQL、MongoDB、Redis都有bind选项,用来限定客户端IP
5. 再检查服务内部是否有其它权限设置,例如MySQL有远程访问配置,Redis有protected-mode改为no

面试题:Linux查看cpu占用率高的进程(阿里面试题)
面试题:查看占用某端口的进程(阿里面试题)
面试题:查看某进程监听的端口(阿里面试题)
面试题:查看系统负载(今日头条面试题)
面试题:查看进程中线程的状态(蘑菇街面试题)

第一题: 
可以使用以下命令查使用内存最多的K个进程:ps -aux | sort -k4nr | head -K
ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)
或者直接用命令:top
第一题:
可以使用以下命令查使用CPU最多的K个进程:ps -aux | sort -k3nr | head -K
第二题:
查看占用某端口的进程:
lsof -i:端口号
netstat -tunlp | grep 端口号
第三题:
查看某进程监听的端口:ps -aux | grep tomcat
第四题:
查看系统负载:
top命令查看linux负载:top  
输入top,会输出top - 01:18:39 up 2 days, 18:54, 1 user, load average: 0.04, 0.03, 0.05 
//01:18:39:系统当前时间 
//up 2 days, 18:54 :系统开机到现在经过了2天
//1 users:当前1用户在线 
//load average:0.04, 0.03, 0.05:系统1分钟、5分钟、15分钟的CPU负载信息. 
第五题:
查看进程中线程的状态:top -H
查指定进程的状态:top -H -p <pid>

おすすめ

転載: www.cnblogs.com/yzh-blog/p/11670289.html