㈠ linux下配置Oracle出現問題
1、你先確定linux系統版本,按文檔安裝oracle依賴包。例如gcc/glibc/lio/libstdc/libgcc/openmotif/compat-libstdc/elfutils-libelf/compat-libstdc
2、准備系統環境參數,創建oracle分組及用戶,修改系統文件,例如:/etc/sysctl.conf,/etc/security/limits.conf,/etc/profile,/etc/pam.d/login,~/.bash_profile
3、靜默方式安裝oracle資料庫
./runInstaller -ignoreSysPrereqs -silent -responseFile ~/ee.rsp
4、創建實例
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname testdb -sid testdb -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 40 -sysDBAUserName sys -sysDBAPassword 123456(不啟動em)
增加-emConfiguration none(啟動em)
dbca靜默刪除資料庫
dbca -silent -deleteDatabase -sourceDB mydb -sysDBAUserName sys -sysDBAPassword db123456
5、啟動監聽lsnrctl start;
6、啟動資料庫
sqlplus /nolog
SQL>conn /as sysdba
SQL>startup;
7、關閉資料庫
sqlplus /nolog
SQL>conn /as sysdba
SQL>shutdown immediate
8、netca是創建listener.ora或tnsnames.ora的工具,這兩個文件手動編輯或創建即可,沒有也不影響資料庫啟動。不需要藉助此命令。
㈡ 怎麼看linux伺服器是否帶netcat
netcat這個工具的命令是nc,只需要在終端命令行執行nc命令,如果命令行提示沒有找到命令(Command no found),就說明Linux系統上沒有netcat;反之,如果輸入nc命令後顯示了netcat的幫助信息,就說明Linux系統上帶有netcat。
㈢ 什麼是Linux系統中nc命令
Linux中nc命令是一個功能強大的網路工具,全稱是netcat。
測試使用
在一個終端上 輸入 nc -lk 9999
輸入數據。。。
新開啟一個終端
輸入 nc ip:9999
就可以看到上一個終端輸入的數據
㈣ Linux nc命令詳解 Linux nc命令怎麼用
Linux中nc命令是一個功能強大的網路工具,全稱是netcat。
語法:
nc
[-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信埠>][-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通信埠...]
參數說明:
-g<網關>
設置路由器躍程通信網關,最丟哦可設置8個。
-G<指向器數目>
設置來源路由指向器,其數值為4的倍數。
-h
在線幫助。
-i<延遲秒數>
設置時間間隔,以便傳送信息及掃描通信埠。
-l
使用監聽模式,管控傳入的資料。
-n
直接使用IP地址,而不通過域名伺服器。
-o<輸出文件>
指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
-p<通信埠>
設置本地主機使用的通信埠。
-r
亂數指定本地與遠端主機的通信埠。
-s<來源位址>
設置本地主機送出數據包的IP地址。
-u
使用UDP傳輸協議。
-v
顯示指令執行過程。
-w<超時秒數>
設置等待連線的時間。
-z
使用0輸入/輸出模式,只在掃描通信埠時使用。
實例:
1、TCP埠掃描
#
nc
-v
-z
-w2
127.0.0.1
1-100
Connection
to
127.0.0.1
22
port
[tcp/ssh]
succeeded!
Connection
to
127.0.0.1
53
port
[tcp/domain]
succeeded!
Connection
to
127.0.0.1
80
port
[tcp/http]
succeeded!
...
nc:
connect
to
127.0.0.1
port
100
(tcp)
failed:
Connection
refused
2、從192.168.1.2拷貝文件到192.168.1.3
首先在接收端192.168.1.3上:
nc
-l
1234
>
test.txt
然後在發送端192.168.1.2上:
nc
192.168.1.3
<
test.txt
注意:先運行接收端,指定一個埠為1234,文件為test.txt,再執行發送端,並且發送端必須存在同名的文件test.txt
3、傳輸目錄
從server1(192.168.16.233)拷貝nginx目錄內容到server2(192.168.48.47)上。需要先在server2上,用nc激活監聽,
server2上運行:#
nc
-l
1234
|
tar
xzv-
server1上運行:#
tar
czv-
nginx
|
nc
192.168.48.47
1234
4、簡單聊天工具
在192.168.1.2上:
nc
-l
1234
在192.168.1.3上:
nc
192.168.1.2
1234
這樣,雙方就可以相互交流了。使用ctrl+C(或D)退出
㈤ Linux如何檢查遠程伺服器中埠是否打開
這個非常簡單,telnet、nc和nmap這3個命令就可以輕松實現,下面我簡單介紹一下實現過程,感興趣的朋友可以自己嘗試一下:
telnet
這是基於telnet協議實現的一個遠程登錄命令,可以直接用於測試遠程Linux伺服器是否開啟指定埠,安裝的話,輸入命令「yum install -y telnet」(或者「apt install -y telnet」)就行,使用方式「telnet 伺服器IP地址 埠號」,如下,這里以埠22為例,如果返回結果為Connected,則說明埠開啟,如果為refused,則說明埠關閉:
nc
也即netcat,一個簡單實用的Unix(Linux)工具,主要用來讀寫網路間連接的數據,可以很方便的查看遠程Linux伺服器是否開啟指定埠,如下,這里以3306埠為例,如果返回結果為Connected,則說明埠開啟,如果為timed out,則說明埠關閉:
更多參數和說明的話,可以使用命令「nc -h」進行查看,官方文檔解釋的非常清楚詳細,如下:
nmap
這是一個專門用於網路嗅探的工具,在滲透測試中經常會用到,也可以很方便的查看遠程Linux伺服器是否開啟指定埠,安裝的話,輸入命令「yum install -y nmap」(或者「apt install -y nmap」)就行,如下,這里以80,21,3306這3個埠為例,如果返回結果為open,則說明埠開啟,如果為filtered,則說明埠關閉:
更多參數和功能的話,可以使用幫助命令「nmap -h」進行查看,官方文檔解釋的非常詳細清楚,一目瞭然,如下:
至此,我們就介紹完了使用telnet、nc和nmap這3個命令來查看遠程Linux伺服器是否開啟指定埠。總的來說,這3種方式都非常簡單,只要你有一定的Linux基礎,熟悉一下相關參數和說明,很快就能掌握的,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
方法一,telnet host port
方法二,nc -t host port 其中-t代表tcp,-u是udp
方法三,任意語言,優先python,寫一段 socket程序,調用connect函數看看是否成功
ping一下ip地址加上你想要的埠,就知道埠打開沒有
㈥ Linux命令
快照功能:記錄當前的硬碟的狀態。剛建快照時快照佔用內存為0,標記了當前硬碟的存儲狀態。當虛擬機對快照標記的內容改寫時,會將改寫的內容存儲進快照,與未改寫的部分整合得到完整的快照。當快照標記的部分被完全改寫,那麼快照存儲空間完整記錄了當時拍攝時的內存狀態。
參數形式
第一種:參數用一橫的說明後面的參數是字元形式。
第二種:參數用兩橫的說明後面的參數是單詞形式。
第三種:參數前有橫的是 System V風格。
第四種:參數前沒有橫的是 BSD風格。
cat、more、less、head、tail命令的比較:
cat命令可以一次顯示整個文件,如果文件比較大,使用不是很方便;
more命令可以讓屏幕在顯示滿一屏幕時暫停,按空格往前翻頁,按b往後翻頁。
less命令也可以分頁顯示文件,和more命令的區別就在於: 支持上下鍵卷動屏幕、查找;不需要在一開始就讀取整個文件,打開大文件時比more、vim更快。
head命令用於查看文件的前n行。
tail命令用於查看文件的後n行,加上-f命令,查看在線日誌非常方便,可以列印最新增加的日誌。
一般模式:
編輯模式:
命令模式:
編碼
多行操作(列編輯模式)
插入:ctrl+v進入列編輯模式,上下移動游標選擇需要插入的位置,然後輸入大寫I,輸入需要文本,最後按esc鍵退出,就會發現文本會在選擇的多行中插入。
刪除:ctrl+v進入列編輯模式,上下移動游標選中需要刪除的部分,然後按d,就會刪除選中的內容。
①head:顯示文件頭部內容
②tail:輸出文件尾部內容
注意:用vim和vi修改內容會刪除源文件並生成新文件,所以tail -f會失效。需要用到
追加和覆蓋語句(>或>>),才能被tail -f監視到。
一般用於查看小文件
查看壓縮文件中的文本內容
例:
①more:文件內容分屏查看器
②less:分屏顯示文件內容,效率比more高
1、簡單讀取
運行腳本如下
測試結果為:
2、-p 參數,允許在 read 命令行中直接指定一個提示。
運行腳本如下
測試結果為:
echo [選項] [輸出內容] (輸出內容到控制台)
輸出給定文本的sha256加密後的內容
①顯示當前時間信息
②顯示當前時間年月日
③顯示當前時間年月日時分秒
④顯示昨天
⑤顯示明天時間
⑥顯示上個月時間
需要注意的是取下個月的命令存在bug,執行如下命令會得到21-10,但是正常應該得到21-09,需要注意
date -d "2021-08-31 +1 month" +%y-%m
⑦修改系統時間
⑧獲取當前時間戳
獲取秒時間戳: date +%s
獲取毫秒時間戳:$[ (date +%s%N) /1000000]
查看日歷
(1)查看當前月的日歷
(2)查看2017年的日歷
例:
對比gzip/gunzip,zip/unzip可以壓縮文件和目錄且保留源文件。
①zip:壓縮
②unzip:解壓縮
只能壓縮文件不能壓縮目錄,不保留原來的文件。
gzip 文件 (只能將文件壓縮為*.gz文件)
gunzip 文件.gz (解壓縮文件命令)
例: crontab -e
(1)進入crontab編輯界面。會打開vim編輯你的工作。
(2)每隔1分鍾,向/root/longma.txt文件中添加一個11的數字
*/1 * * * * /bin/echo 」11」 >> /root/longma.txt
(3)可以用tail -f 目標文件來實施監控追加的內容
查看日誌
可以用tail -f /var/log/cron.log觀察
Cron表達式見文章: https://www.jianshu.com/writer#/notebooks/46619194/notes/75177408
ls [選項] [目錄或是文件]
cd [參數]
例: cd -P $(dirname $p1) ; pwd 先跳轉到文件的所在目錄,再列印$p1文件的實際路徑
概述
①cp():只能在本機中復制
②scp(secure ):可以復制文件給遠程主機
scp -r test.sh hxr@hadoop102:/root
③rsync(remote sync):功能與scp相同,但是不會改文件屬性
rsync -av test.sh test.sh hxr@hadoop102:/root
④nc(netcat):監聽埠,可以實現機器之間傳輸文件。
nc -lk 7777 (-l表示listen,-k表示keep)
強制覆蓋不提示的方法:cp
例:scp -r test.sh hxr@bigdata1:/root
例:rsync -av test.sh hxr@bigdata1:/root
例:
nc -lp 10000 > nc_test.txt
nc -w 1 hadoop102 < nc_test.txt
遠程登錄時默認使用的私鑰為~/.ssh/id_rsa
生成密鑰對
將公鑰發送到本機
將密鑰發送到需要登錄到本機的伺服器上
修改密鑰的許可權
遠程登陸
如果有多個節點需要遠程登陸,可以在.ssh下創建config並輸入
再次登陸
①正向代理:
②反向代理:
所謂「反向代理」就是讓遠端啟動埠,把遠端埠數據轉發到本地。
HostA 將自己可以訪問的 HostB:PortB 暴露給外網伺服器 HostC:PortC,在 HostA 上運行:
那麼鏈接 HostC:PortC 就相當於鏈接 HostB:PortB。
使用時需修改 HostC 的 /etc/ssh/sshd_config 的一條配置如下,不然啟動的進程監聽的ip地址為127.0.0.1,即只有本機可以訪問該埠。
相當於內網穿透,比如 HostA 和 HostB 是同一個內網下的兩台可以互相訪問的機器,HostC是外網跳板機,HostC不能訪問 HostA,但是 HostA 可以訪問 HostC。
那麼通過在內網 HostA 上運行 ssh -R 告訴 HostC,創建 PortC 埠監聽,把該埠所有數據轉發給我(HostA),我會再轉發給同一個內網下的 HostB:PortB。
同內網下的 HostA/HostB 也可以是同一台機器,換句話說就是 內網 HostA 把自己可以訪問的埠暴露給了外網 HostC。
例: 比如在我的內網機192.168.32.244上有一個RabbitMQ的客戶端,埠號為15672。現在我希望在外網上訪問固定ip的雲伺服器chenjie.asia的6009埠,通過跳板機192.168.32.243來轉發請求到192.168.32.244:15672,從而實現在外網訪問內網服務的功能,即內網穿透。
①在192.168.32.244上啟動RabbitMQ服務
②將chenjie.asia雲伺服器的私鑰復制到跳板機192.168.32.243的~/.ssh下,並重命名為id_rsa。通過如下命令看是否可以遠程登陸到雲服務,可以登陸則進行下一步。
③修改chenjie.asia伺服器的ssh配置文件 /etc/ssh/sshd_config ,允許其他節點訪問
然後重啟sshd服務
④在跳板機192.168.32.243啟動ssh反向代理
這個進程在關閉session時會停止,可以添加啟動參數 -CPfN
例:
以 root 身份執行的程序有了所有特權,這會帶來安全風險。Kernel 從 2.2 版本開始,提供了 Capabilities 功能,它把特權劃分成不同單元,可以只授權程序所需的許可權,而非所有特權。
例如:linux不允許非root賬號只用1024以下的埠,使用root啟動命令nginx,會導致nginx許可權過高太危險。所以用setcap命令
sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx
正確的關機流程為 :sync > shutdown > reboot > halt
(1)sync (功能描述:將數據由內存同步到硬碟中)
(2)halt (功能描述:關閉系統,等同於shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重啟,等同於 shutdown -r now)
(4)shutdown [選項] [時間]
安裝
yum install -y telnet-server telnet
ls -i 顯示文件的節點號
find -inum 節點號 -delete 刪除指定的節點即可刪除對應的文件
啟動一個服務: systemctl start postfix.service
關閉一個服務: systemctl stop postfix.service
重啟一個服務: systemctl restart postfix.service
顯示一個服務的狀態: systemctl status postfix.service
在開機時啟用一個服務: systemctl enable postfix.service
在開機時禁用一個服務: systemctl disable postfix.service
註:在enable的時候會列印出來該啟動文件的位置
列出所有已經安裝的服務及狀態:
systemctl list-units
systemctl list-unit-files
查看服務列表狀態:
systemctl list-units --type=service
查看服務是否開機啟動: systemctl is-enabled postfix.service
查看已啟動的服務列表: systemctl list-unit-files | grep enabled
查看啟動失敗的服務列表: systemctl --failed
查看服務日誌: journalctl -u postfix -n 10 -f
命令類似systemctl,用於操作native service。
添加腳本為服務(需要指定啟動級別和優先順序): chkconfig --add [腳本]
刪除服務: chkconfig --del [腳本]
單獨查看某一服務是否開機啟動的命令 : chkconfig --list [服務名]
單獨開啟某一服務的命令 : chkconfig [服務名] on
單獨關閉某一服務的命令: chkconfig [服務名] off
查看某一服務的狀態: /etc/intd.d/[服務名] status
啟用服務就是在當前"runlevel"的配置文件目錄 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 裡面對應服務配置文件的軟鏈接;禁用服務就是刪除此軟鏈接,添加服務就是添加軟連接。
su 用戶名稱 (切換用戶,只能獲得用戶的執行許可權,不能獲得環境變數)
su - 用戶名稱 (切換到用戶並獲得該用戶的環境變數及執行許可權)
echo $PATH 列印環境變數
設置普通用戶具有root許可權
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:
或者配置成採用sudo命令時,不需要輸入密碼
修改完畢,現在可以用hxr 帳號登錄,然後用命令 sudo ,即可獲得root許可權進行操作。
以azkaban用戶執行引號中的命令
gpasswd -d [username] [groupname] 將用戶從組中刪除
gpasswd -a [username] [groupname] 將用戶加入到組中
用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對 /etc/group文件的更新。
0首位表示類型 - 代表文件 d 代表目錄 l 鏈接文檔(link file)
三種特殊許可權suid、sgid、sticky
例子:
變更文件許可權方式一
例:chmod u-x,o+x houge.txt
變更文件許可權方式二
例:chmod -R 777 /mnt/ 修改整個文件夾的文件許可權
在linux中創建文件或者目錄會有一個默認許可權的,這個默認許可權是由umask決定的(默認為0022)。umask設置的是許可權的「補碼」,而我們常用chmod設置的是文件許可權碼。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中設置umask值。
umask計算
如root用戶的默認umask為0022(第一個0 代表特殊許可權位,這里先不考慮),創建的文件默認許可權是644(即默認666掩上umask的022),創建的目錄是755(即默認777掩上umask的022)。
對於root用戶的umask=022這個來說,777許可權二進制碼就是(111)(111)(111),022許可權二進制碼為(000)(010)(010)。
上面就是一個umask的正常計算過程,但是這樣實在是太麻煩了。我們使用如下的簡單的方法快速計算。
上面的這個方法計算是非常方便的, 為何得到奇數要+1呢?
文件的最大許可權是666,都是偶數,你得到奇數,說明你的umask有奇數啊,讀為4,寫為2,都是偶數,說明你有執行許可權的。
就按照上面的umask=023為例,在計算其他用戶許可權的時候6-3=3 ,6是讀寫,3是寫和執行,其實應該是讀寫許可權減去讀許可權的得到寫許可權的,相當於我們多減去了一個執行許可權。所以結果加1。
umask修改
如果想單獨修改某個文件夾的新建文件的許可權,可以使用setfacl命令。
例:遞歸改變文件所有者和所有組 chown -R hxr:hxr /mnt
例:
㈦ 求教高手,編寫一個linux下埠掃描程序
這里介紹netcat命令檢查開放埠
netcat(或nc)是一種命令行工具,可以使用TCP或UDP協議跨網路連接讀取和寫入數據。使用netcat可以掃描單個埠或者埠范圍。
比如,要掃描IP地址192.168.8.51在范圍內遠程計算機上打開的TCP埠,4000-4004可以進行以下命令:nc -z -v 192.168.8.51 4000-4004
1-z選項指示nc僅掃描打開的埠,並不發送任何數據,並且-v用於獲取更多詳細信息。運行結果如下:
sl@Li:~/Works/brochain/corsac$ nc -z -v 192.168.8.51 4000-4004
Connection to 192.168.8.51 4000 port [tcp/*] succeeded!
nc: connect to 192.168.8.51 port 4001 (tcp) failed: Connection refused
nc: connect to 192.168.8.51 port 4002 (tcp) failed: Connection refused
nc: connect to 192.168.8.51 port 4003 (tcp) failed: Connection refused
nc: connect to 192.168.8.51 port 4004 (tcp) failed: Connection refused
㈧ Linux shell常用命令
Linux shell常用命令匯總
對於經常使用linux系統的博主來說,基本常用的shell命令是少不了的,下面為大家總結了Linux shell的常用命令,希望對大家有所幫助!
1.檢查遠程埠是否對bash開放:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
2.讓進程轉入後台:
Ctrl + z
3、將進程轉到前台:
fg
4.產生隨機的十六進制數,其中n是字元數:
openssl rand -hex n
5.在當前shell里執行一個文件里的命令:
source /home/user/file.name
6.截取前5個字元:
${variable:0:5}
7.SSH debug 模式:
ssh -vvv user@ip_address
8.SSH with pem key:
ssh user@ip_address -i key.pem
9.用wget抓取完整的網站目錄結構,存放到本地目錄中:
wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
10.一次創建多個目錄:
mkdir -p /home/user/{test,test1,test2}
11.列出包括子進程的進程樹:
ps axwef
12.創建 war 文件:
jar -cvf name.war file
13.測試硬碟寫入速度:
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
14.測試硬碟讀取速度:
hdparm -Tt /dev/sda
15.獲取文本的md5 hash:
echo -n "text" | md5sum
16.檢查xml格式:
xmllint --noout file.xml
17.將tar.gz提取到新目錄里:
tar zxvf package.tar.gz -C new_dir
18.使用curl獲取HTTP頭信息:
curl -I http://www.example.com
19.修改文件或目錄的時間戳(YYMMDDhhmm):
touch -t 0712250000 file
20.用wget命令執行ftp下載:
wget -m ftp://username:password@hostname
21.生成隨機密碼(例子里是16個字元長):
LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
22.快速備份一個文件:
cp some_file_name{,.bkp}
23.訪問Windows共享目錄:
smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
24.執行歷史記錄里的命令(這里是第100行):
!100
25.解壓:
unzip package_name.zip -d dir_name
26.輸入多行文字(CTRL + d 退出):
cat > test.txt
27.創建空文件或清空一個現有文件:
\> test.txt
28.與Ubuntu NTP server同步時間:
ntpdate ntp.ubuntu.com
29.用netstat顯示所有tcp4監聽埠:
netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'
30.qcow2鏡像文件轉換:
qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
31.重復運行文件,顯示其輸出(預設是2秒一次):
watch ps -ef
32.所有用戶列表:
getent passwd
33.Mount root in read/write mode:
mount -o remount,rw /
34.掛載一個目錄(這是不能使用鏈接的情況):
mount --bind /source /destination
35.動態更新DNS server:
nsupdate < <eof p=""> </eof>
update add $HOST 86400 A $IP
send
EOF
36.遞歸grep所有目錄:
grep -r "some_text" /path/to/dir
37.列出前10個最大的文件:
lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail
39.打開Vim並跳到文件末:
vim + some_file_name
40.Git 克隆指定分支(master):
git clone [email protected]:name/app.git -b master
41.Git 切換到其它分支(develop):
git checkout develop
42.Git 刪除分支(myfeature):
git branch -d myfeature
43.Git 刪除遠程分支
git push origin :branchName
44.Git 將新分支推送到遠程伺服器:
git push -u origin mynewfeature
45.列印歷史記錄中最後一次cat命令:
!cat:p
46.運行歷史記錄里最後一次cat命令:
!cat
47.找出/home/user下所有空子目錄:
echo >/dev/tcp/8.8.8.8/53 && echo "open"
1.檢查遠程埠是否對bash開放:
find /home/user -maxdepth 1 -type d -empty
48.獲取test.txt文件中第50-60行內容:
< test.txt sed -n '50,60p'
49.運行最後一個命令(如果最後一個命令是mkdir /root/test, 下面將會運行: sudo mkdir /root/test):
sudo !!
50.創建臨時RAM文件系統 – ramdisk (先創建/tmpram目錄):
mount -t tmpfs tmpfs /tmpram -o size=512m
51.Grep whole words:
grep -w "name" test.txt
52.在需要提升許可權的.情況下往一個文件里追加文本:
echo "some text" | sudo tee -a /path/file
53.列出所有kill signal參數:
kill -l
54.在bash歷史記錄里禁止記錄最後一次會話:
kill -9 $$
55.掃描網路尋找開放的埠:
nmap -p 8081 172.20.0.0/16
56.設置git email:
git config --global user.email "[email protected]"
57.To sync with master if you have unpublished commits:
git pull --rebase origin master
58.將所有文件名中含有”txt”的文件移入/home/user目錄:
find -iname "*txt*" -exec mv -v {} /home/user \;
59.將文件按行並列顯示:
paste test.txt test1.txt
60.shell里的進度條:
pv data.log
61.使用netcat將數據發送到Graphite server:
echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
62.將tabs轉換成空格:
expand test.txt > test1.txt
63.Skip bash history:
< space >cmd
64.去之前的工作目錄:
cd -
65.拆分大體積的tar.gz文件(每個100MB),然後合並回去:
split –b 100m /path/to/large/archive /path/to/output/files
cat files* > archive
66.使用curl獲取HTTP status code:
curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null
67.設置root密碼,強化MySQL安全安裝:
/usr/bin/mysql_secure_installation
68.當Ctrl + c不好使時:
Ctrl + \
69.獲取文件owner:
stat -c %U file.txt
70.block設備列表:
lsblk -f
71.找出文件名結尾有空格的文件:
find . -type f -exec egrep -l " +$" {} \;
72.找出文件名有tab縮進符的文件
find . -type f -exec egrep -l $'\t' {} \;
73.用”=”列印出橫線:全選復制放進筆記
printf '%100s\n' | tr ' ' = ;
㈨ Linux中如何檢查開放埠
場景一:了解系統開放的埠,和正在使用的埠,在各種情況下都會有所幫助。
比如:如果你的伺服器正在運行著 Nginx,那麼其埠應該為80或者443,可以檢查一下。再比如你可以檢查一下 SMTP、SSH或者其他服務用的是哪個埠。當有新的服務需要開放埠的時候,你需要知道目前已經被佔用的,都有哪些埠。
此外,可以檢查一下是否有開放的可用於入侵檢測的埠。
Linux 中有多種檢查埠的方法,本文將介紹兩種。
使用 lsof 檢查當前系統開放的埠
不管你是直接登錄的系統,還是使用 ssh 連接的,都可以使用 lsof 命令來檢查埠:
該命令用於查找用戶使用的文件和進程。上述命令中的選項,包括:
但是,這也會展示許多計算機並沒有監聽的其他埠。
我們可以通過管道將此輸出傳輸到 grep,並匹配模式 「LISTEN」,如下所示:
這樣就只顯示計算機正在監聽的,以及正在運行的伺服器所佔用的埠。
使用 netcat 命令檢查遠程伺服器上的埠
nc(Netcat) 是一個命令行實用程序,使用TCP和UDP協議在網路計算機之間讀取和寫入數據。
以下是nc命令的語法:
這個工具有一個很實用的 -z 選項,它會讓 nc 命令掃描正在監聽的守護進程,但是不會向埠發送任何數據。
將其與 -v 選項結合,啟動詳細信息,會有詳細信息的輸出。
losf與nc的不同點:
lsof命令簡介
lsof 命令用於顯示 Linux 系統當前已打開的所有文件列表。查看進程或系統打開的文件會給調試帶來極大的幫助。下面簡單地介紹 lsof 常使用的功能。
lsof (list open files)命令用於查看你進程打開的文件,打開文件的進程,進程打開的埠(TCP、UDP),還可以用於找回/恢復被刪除的文件。lsof 命令需要訪問核心內存和各種文件,所以需要具備 root 超級管理員許可權的用戶才能執行此命令。
linux的nc命令,NetCat,在網路工具中有「瑞士軍刀」美譽「,是解決這個問題的工具。 nc命令安裝: yum install nc
以上是看來一些文章的總結分享內容,歡迎補充討論。
㈩ Linux怎麼備份與還原
備份
將本含鏈地的/dev/hdx整盤備份到/dev/hdy :dd if=/dev/hdx of=/dev/hdy
將/dev/hdx全盤數據備份到指定路徑的image文件:dd if=/dev/hdx of=/path/to/image
備份/dev/hdx全盤數據,並利用gzip工具進行壓縮,保存到指定路徑祥老辯:dd if=/dev/hdx | gzip
>/path/to/image.gz
恢復
將備份文件恢復到指定盤:dd if=/path/to/image of=/dev/hdx
將壓縮的備份文件恢復到指定盤 :gzip -dc /path/to/image.gz | dd of=/dev/hdx
利用netcat遠程備份
在源主機上執行此命令備份/dev/hda:dd if=/dev/hda bs=16065b | netcat
< targethost-IP >
1234在目的主機上執行此命令來接收數據並寫入/dev/hdc:netcat -l -p 1234 | dd
of=/dev/hdc
bs=16065b
以下兩條指令是目的主機指令的變化分別採用bzip2 gzip對數據進行壓縮,並將備份文件保存在當
前目錄 :
netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img
備份MBR
備謹缺份:
備份磁碟開始的512Byte大小的MBR信息到指定文件:dd if=/dev/hdx of=/path/to/image
count=1 bs=512
恢復:
將備份的MBR信息寫到磁碟開始部分:dd if=/path/to/image of=/dev/hdx
備份軟盤
將軟碟機數據備份到當前目錄的disk.img文件:dd if=/dev/fd0 of=disk.img count=1
bs=1440k