Java Spring Recruitment Interview Sprint Series:完全なLinux面接の質問!

研究ノート

  • ゼロコピーの過去と現在

  • ファイルをクリアしますsudosh -c "echo ''> a.txt"

  • mvfolderANameの名前をnewFolderNameに変更します

  • ソフトチェーンln-sソースファイルターゲットファイルを作成します

    ln -s / xxx / xx / eclipse eclipseLink

  • プロキシを使用してファイルをダウンロードしますwget-e use_proxy = yes -e http_proxy = xxxx:1080

  • 設定ulimitsudo sh -c“ ulimit -n 65535 && exec su userA”

ネットワーク記事

ssh

  • lsof -i:22
  • 基本的なツールをインストールする
  • sudo apt-get install openssh-server openssh-client

開いているポートをすべて表示

  • netstat -anpどのポートが開いているかを確認できます
    • -すべて表示
    • -nエイリアスを表示せず、番号のみを表示します
    • -pプロセス番号とプロセス名を表示します
    • netstat -natpl TCPのリスニングポートを表示します
    • netstat -naupl udpのリスニングポートを表示します

CentOS7オープンポート:CentOS7はファイアウォールとしてファイアウォールを使用しており、iptablesを使用しなくなりました

  • rootユーザー
  • ファイアウォールを開きますsystemctlstartファイアウォールd.service
  • ポートファイアウォールを開きます-cmd--zone = public --add-port = 50013 / tcp --permanent
    • -ゾーンパブリック:テーブルスコープのパブリック
    • –add-port = 8080 / tcp:tcpプロトコルを追加するためのポートは8080です
    • -永続的:永続的効果、このパラメーターなしは一時的効果を意味します
  • ファイアウォールシステムを再起動しますctlrestartfirewalld.service
  • 設定をリロードしますfirewall-cmd--reload
  • ファイアウォール-cmd--list-ports

ドメイン名を解決できるかどうかをテストします

  • nslookupサーバー
    • 例えば: nslookup www.baidu.com

ポートが開いているかどうかをテストします

  • telnet ip port

Linuxメールサーバー:Postfix

http://cn.linux.vbird.org/linux_server/0380mail.php

  • Linux出力リダイレクト
    linux 环境中支持输入输出重定向,用符号<和>来表示。
    0、1和2分别表示标准输入、标准输出和标准错误信息输出,
    将一个脚本的执行过程及执行结果打印到日志的常用命令:
    ./myscript.sh 2>&1 | tee mylog.log
    可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。
    同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。
    Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
    
  • 環境変数env | grep -E'M2 | MAVEN 'を表示します

Shadowsocksサーバー側のインストール

  • pipをインストールするcurl https://bootstrap.pypa.io/get-pip.py -o get-pip.pyときにPythonのバージョンが低い可能性があります
  • python get-pip.py
  • pip install shadowsocks
  • 配置shadowsocks
  • vi /etc/shadowsocks.json

{ “ server”:“ 0.0.0.0”、“ server_port”:0、“ local_port”:1080、“ password”:“ xxx”、“ timeout”:600、“ method”:“ aes-256-cfb” }






* 将shadowsocks加入系统服务
* vi /etc/systemd/system/shadowsocks.service
```xml
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target
# 设置开机自启命令
systemctl enable shadowsocks

# 启动命令
systemctl start shadowsocks

#查看状态命令
systemctl status shadowsocks
  • クライアント
  • shスクリプトを作成し、追加します nohup sslocal -s remoteserverip -p remoteserverport -b 127.0.0.1 -l localserverport -k password -m aes-256-cfb >/dev/null 2>&1 &

nohup sslocal -s 3.14.3.65 -p 15432 -b 127.0.0.1 -l 1080 -k abc123_ -m aes-256-cfb> ssl.log 2>&1&

サーバーのCPUとメモリの使用状況をリアルタイムで記録する

#!/bin/bash
fileName=$1

echo "CPU%,MEM%,TIME" > $fileName
for (( i = 0; i < 3000; i++ )) do
    output=`top -b -n1 | grep "Cpu(s)" | awk '{print $2 ","}' | tr -d '\n' && free -m | grep 'Mem' | awk '{print $3/$2 * 100 ","}' | tr -d '\n' && date | awk '{print $4}'`>temp
    echo "$output" >> $fileName
    sleep 1
done
  • cat redis.conf | grep -v“#” | grep -v“ ^ $”構成ファイルを表示し、すべての#を削除し、すべてのスペースを削除します

Linuxでディレクトリと内部ファイルを変更することは禁止されています。このコマンドを使用してnginxの権限を減らし、nginxユーザーがアクセスできるtmpディレクトリに静的ファイルを配置しました。

単一のファイルchattr + i aaa.txtが
削除された場合、chattr -iaaa.txt
ディレクトリとファイルchattr-R + i ttt
は、chattr -R + i A(-Rはの属性を再帰的に変更する)を使用して保護できます。ディレクトリとその内容)ディレクトリ内のすべての内容A.
「i」属性を持つファイルは変更できません。スーパーユーザーのみがこの属性を設定またはクリアできます。

TomcatでのLinuxコマンドの適用

  • テンプレート

192.168.1.189 - - [03/May/2019:19:47:21 +0000] "GET /html/css/main.css?browserId=other HTTP/1.1" 200 19858

注意

  1. アクセスログの構成、形式は必ずしも上記のログと同じではありません
  2. cut -f1 -d ""は、スペースに従って文字列をカットすることです。-fnは数値を意味します。
  • トラフィック別の上位20のIPアドレス
cat access_log.2019-0* | cut -f1 -d " " | sort | uniq -c | sort -k 1 -n -r | head -20
  • トップ20ページのURL
cat access_log.2019-0* | cut -f7 -d " " | sort | uniq -c | sort -k 1 -n -r | head -20
  • 最も時間のかかるページを表示する
cat access_log.2019-0* | sort -k 10 -n -r | head -20
  • 4xx / 5xxリクエストの割合を数える
total requests: wc -l access_log.2019-0*
404 requests: awk '$9=='404'' access_log.2019-0* | wc -l
500 requests: awk '$9=='500'' access_log.2019-0* | wc -l
  • 特定のキーワードを含むログを検索します
awk '/keywords/' access_log* | head -10
awk '/keywords/{print $5,$6}' access_log* | head -10 // 查找包含keywords的关键字并打印第5/6列

vim編集ファイル

  • 現在は編集モードではありません。入力するには、キーボードのiキーを入力する必要があります。
  • たとえば、6行目を削除するには、削除する6行目にカーソルを移動し、小文字のdを2回続けて入力します。つまり、ddです。

CentOSはリアルタイムのネットワーク帯域幅占有率を表示します

  • iftopをインストールし、yumはiftopをインストールします
  • ネットワークカードのifconfigを確認してください
  • iftop -i eth0

サーバーとクライアント間の接続を維持する

ssh構成ファイル/ etc / ssh / sshd_configを変更し、ClientAliveIntervalを「ClientAliveInterval60」に追加または変更します。このパラメーターは、1分ごとに、サーバーが接続を維持するためにクライアントにメッセージを送信することを意味します。保存後にsshサービスを再起動することを忘れないでくださいservice sshd restart

百の質問

65535はどのようにして生まれますか?
コンピュータはデータをバイナリで格納します。通常、unsigned intは正の整数を格納するために使用されます。
コンピュータでは、各整数は16ビットの2進数で表されるため、最大数は16です。 、11111111 11111111
は、2進数の1111111111111111を10進数に変換して65535にします。

Linuxでのprofileとbashrcの違い

  1. / etc / profileは
    、$ PATHなどのシステム環境パラメーターを設定するために使用されます。内部の環境変数は、システム内のすべてのユーザーに有効です。
  2. / etc / bashrc
    ファイルは、システムのbashシェル関連のものを設定します。これは、システム内のすべてのユーザーに有効です。ユーザーがbashコマンドを実行している限り、その中の機能は機能します。
  3. 〜/ .bash_profileは、
    いくつかの環境変数を設定するために使用されます。関数は/ etc / profileに似ていますが、これはユーザーに設定されます。つまり、環境変数を/home/user1/.bash_profileに設定してから、この環境変数のみを設定します。ユーザーuser1に対して有効になります。
  4. 〜/ .bashrcの機能は
    / etc / bashrcに似ていますが、ユーザー専用であり、他のユーザーには有効になりません。
    さらに、/ etc / profileに設定された変数(グローバル)はすべてのユーザーに作用できますが、〜/ .bashrcなどに設定された変数(ローカル)は/ etc / profileの変数のみを継承でき、それらは「父」です。と子」の関係。

おすすめ

転載: blog.csdn.net/weixin_43314519/article/details/114238331