最易懂的Linux基礎使用

常用功能

linux常用命令

cd /目錄名                           #進入目錄		
cd .. 或者 cd ~                     #退出目錄		
ll 或者 ls                          #查看目錄的文件列表	
vim 文件名  或者 vi 文件名              #查看文件		
ps -ef                              #查看進程號		
netstat -ntlp                       #列出所有端口		
kill -9 進程號                       #殺死指定進程 	
sudo passwd root                    #設置root密碼  	
find / -name 查找的文件名             #查找			
tail -f filename                    #實時查看文件		
命令|grep 名稱 如: ps -ef|grep php    #篩選			
ip add                              #查看ip
chmod -R 777 文件名                  #設置權限
chown 用戶名 文件名                   #將指定用戶擁有文件的變更權限 -R 遍歷目錄下的所有文件                 
chgrp 用戶名 文件名                   #將指定用戶擁有文件的變更權限 -R 遍歷目錄下的所有文件
alias 對應的命令                      #命令別名   
echo  變量名                         #打印變量值,這個也可以打印文件的絕對路徑
cat  文件名                          #打印文件內容
export -p                           #列出所有的shell賦予程序的環境變量。
export 變量名稱=變量設置值              #給環境變量設置值

常用變量

$PATH       # 環境變量

Linux命令大全

服務管理者:systemctl

systemctl 						#查看所有進程信息
systemctl start 服務名			#開啓服務
systemctl restart 服務名			#重啓服務
systemctl reload 服務名			#服務重新加載(平滑加載,注意:並不是所有的服務都支持)
systemctl stop 服務名			#關閉服務
systemctl disable 服務名			#禁止服務開機啓動
systemctl enable 服務名			#設置服務開機啓動
systemctl status 服務名			#查看服務的狀態

添加服務給systemctl管理
/usr/lib/systemd/system/服務名.service

[Unit]
# 用於描述服務
Description=java tomcat project
# 用於描述服務類別
After=tomcat.service

[Service]
# forking是後臺運行的形式
Type=forking
# users是設置服務運行的用戶
User=users
# users是設置服務運行的用戶組
Group=users
# PIDFile爲存放PID的文件路徑,
PIDFile=/usr/local/tomcat/tomcat.pid
# ExecStart爲服務的具體運行命令
ExecStart=/usr/local/tomcat/bin/startup.sh
# ExecReload爲重啓命令
ExecReload=
# ExecStop爲停止命令
ExecStop=/usr/local/tomcat/bin/shutdown.sh
# 表示給服務分配獨立的臨時空間
PrivateTmp=true

[Install]
WantedBy=multi-user.target

用戶

/etc/group
/etc/passwd
useradd testuser      #創建用戶testuser,說明:新創建的用戶會在/home下創建一個用戶目錄testuser
passwd testuser       #給已創建的用戶testuser設置密碼
usermod --help        #修改用戶這個命令的相關參數
userdel testuser      #刪除用戶testuser
rm -rf testuser       #刪除用戶testuser所在目錄
su testuser           #切換用戶

問題1: This account is currently not available

修改/etc/passwd文件發現此用戶的shell是/sbin/nologin需修改成/bin/bash

環境變量

如果發現某些命令不能在任意盤符下使用,那麼就是環境變量的問題

1. 查看安裝目錄
2. 打開/etc/profile文件:輸入:vi /etc/profile
3. 在文件末尾加上:export PATH=安裝路徑/bin:$PATH
4. 查看路徑在不在環境變量中,輸入:echo $PATH

關掉ssh後進程依然運行>nohup和&的區別

temrinal

配置文件

系統級別

# 系統級別所有用戶啓動都會調用這個文件,所有這個文件配置環境變量比較合適,所以這個文件只能sudo來修改
/etc/profile

用戶級別

# 用戶級別 , 不同用戶可以配置不同用戶的特色 
# 使用ssh登陸shell的時候,系統會自動的讀取 如下三個文件其中一個,按順序有前面的就不會調用後面的文件
~/.bash_profile 
~/.bash_login
~/.profile

臨時級別

# 臨時級別:一般爲了當時修改配置文件,臨時加載用的
source ~/.bashrc

新增一個自動運行ssh命令的文件

# 新建一個文件夾(以下文件是我舉例用的)
vim ~/.bashrc
# 編寫編寫自動運行的命令後保存:如下
alias xxxx='ssh [email protected]'
# 
# 重啓終端,如果不能生效,在配置文件加一行:
source ~/.bashrc

防火牆:SELinux

SELinux主要用於對文件(file), 文件夾 (directory), 進程(process)的限制。

  • 如果爲disabled 就是已經關閉,如果enforce 就是強制的模式
    查看狀態						getenforce
    不重啓的關閉					setenforce 0
	永久生效的關閉				vi /etc/selinux/config 把SELINUX=enforce 改成disabled就可以了

防火牆:iptables

iptables 能做到控制內部機器上網與不上網,訪問哪些網站的控制

CentOS 7.0默認使用的是firewall作爲防火牆,使用iptables必須重新設置一下

服務名:iptables.service

iptables常用命令
systemclt 沒有iptables的時候

解決方法:
systemctl stop firewalld 關閉防火牆
yum install iptables-services 安裝或更新服務
再使用systemctl enable iptables 啓動iptables
最後 systemctl start iptables 打開iptables
再執行service iptables save
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

# 對於的命令
iptables -I INPUT -p tcp --dport 80 -j DROP
# 參數1   INPUT 或者 OUTPUT
-A          #在末尾添加   
-I          #在指定行插入,默認是最前面
# 參數2 ip或者類型
-p          # tcp | udp
-s          # 設置ip
# 參數3
--dport     # 端口
# 參數4
-j          # ACCEPT:允許 | DROP:拒絕 
# 查看幫助
iptables --help
# 查看版本,這裏返回的結果類似於 iptables-1.4.7-9.el6.i686
rpm -q iptables
# 保存設置
service iptables save
# 開啓ip段211.123.16.123/24端ip段的80口
iptables -I INPUT -p tcp --dport 80 -j DROP 
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 211.123.16.123/24 -p tcp --dport 80 -j ACCEPT
# 顯示規則並顯示行數
iptables -L INPUT --line-numbers
service iptables status
# 刪除 chain 中編號爲 rulenum 的那條規則。1 表示第一條。
iptables -D chain rulenum

定時器

crond

cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下運行作業。

crontab

crontab命令用於安裝、刪除或者列出用於驅動cron後臺進程的表格。用戶把需要執行的命令序列放到crontab文件中以獲得執行。
每個用戶都可以有自己的crontab文件

crontab -l    #顯示當前的定時規則
crontab -r    #刪除當前的crontab文件,也就刪除所有規則
crontab -e    #編輯當前的定時規則

#規則舉例
#每天早上6點 
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,因爲cron把任何輸出都email到root的信箱了。
#每兩個小時 
0 */2 * * * echo "Have a break now." >> /tmp/test.txt  
#晚上11點到早上8點之間每兩個小時和早上八點 
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點 
0 11 4 * 1-3 command line
#1月1日早上4點 
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出現錯誤,或者有數據輸出,數據作爲郵件發給這個帳號 HOME=/ 
#每小時執行/etc/cron.hourly內的腳本
01 * * * * root run-parts /etc/cron.hourly
#每天執行/etc/cron.daily內的腳本
02 4 * * * root run-parts /etc/cron.daily 
#每星期執行/etc/cron.weekly內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly 
#每月去執行/etc/cron.monthly內的腳本 
42 4 1 * * root run-parts /etc/cron.monthly 
#注意: "run-parts"這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名。   
#每天的下午4點、5點、6點的5 min、15 min、25 min、35 min、45 min、55 min時執行命令。 
5,15,25,35,45,55 16,17,18 * * * command
#每週一,三,五的下午3:00系統進入維護狀態,重新啓動系統。
00 15 * * 1,3,5 shutdown -r +5
#每小時的10分,40分執行用戶目錄下的innd/bbslin這個指令: 
10,40 * * * * innd/bbslink 
#每小時的1分執行用戶目錄下的bin/account這個指令: 
1 * * * * bin/account
#每天早晨三點二十分執行用戶目錄下如下所示的兩個指令(每個指令以;分隔): 
20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
#每年的一月和四月,4號到9號的3點12分和3點55分執行/bin/rm -f expire.1st這個指令,並把結果添加在mm.txt這個文件之後(mm.txt文件位於用戶自己的目錄位置)。 
12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt 

vim vi編輯器

  • 編輯模式 --> ESC鍵 --> 命令模式
  • 命令模式 --> i鍵 --> 編輯模式

常用命令

#vi 文件: 回車後就進入進入編輯模式,按 o 進行編輯

# 保存/退出
:w          # 保存文件但不退出vi
:w!         # 強制保存,不退出vi 編輯
:w          # file 將修改另存到file中,不退出vi 編輯
:wq         # 保存文件並退出vi 編輯
:wq!        # 強制保存文件並退出vi 編輯
:q          # 不保存文件並退出vi 編輯
:q!         # 不保存文件並強制退出vi 編輯
:e!         # 放棄所有修改,從上次保存文件開始在編輯

# 插入命令
:a          # 在光標後附加文本  
:A          # 在本行行末附加文本
:i          # 在光標前插入文本  
:I          # 在本行開始插入文本  
:o          # 在光標下插入新行  
:O          # 在光標上插入新行  

# 定位命令
:h          # 方向左鍵  
:j          # 方向下鍵  
:k          # 方向上鍵  
:l          # 方向右鍵  
:$          # 移至行尾   
:0          # 移至行首   
:H          # 移至屏幕上端   
:M          # 移至屏幕中端   
:L          # 移至屏幕下端   
:set nu     # 設置行號   
:set nonu   # 取消行號   
:gg         # 到第一行   
:G          # 到最後一行   
:nG         # 到第n行   
:n          # 到第n行

#刪除命令
:x          # 刪除光標所在處字符    
:nx         # 刪除光標所在處後n個字符    
:dd         # 刪除光標所在行,ndd刪除行    
:dG         # 刪除光標所在行在到末尾的內容    
:D          # 刪除從光標所在處到行尾    
:nl,n2d     # 刪除指定範圍的行  

# 搜索和替換命令
:/關鍵詞     # 向前搜索指定字符串,搜索是忽略大小寫 :set ic 
:n          # 搜索指定字符串的下一個出現位置  

目錄說明

proc目錄

- /proc/version
    >`系統版本`
- /proc/net/arp
    >`Device:所在網絡接口`
- /proc/net/dev
    >網絡設備的統計
- /proc/net/dev_mcast
    >組播包統計
- /proc/net/igmp
    >IGMP 分組情況
- /proc/net/netlink
    >netlink套接口的信息
- /proc/net/netstat
    >網絡流量的多種統計
- /proc/net/raw
    >原始套接口的套接口表
- /proc/net/route
    >靜態路由表
- /proc/net/rt_cache
    >路由緩存表
- /proc/net/snmp
    >snmp agent的ip/icmp/tcp/udp協議統計
- /proc/net/sockstat
    >使用的tcp/udp/raw/pac/syc_cookies的數量
- /proc/net/tcp
    >TCP連接的套接口
- /proc/net/udp
    >UDP連接的套接口表
-  /proc/net/unix
    >UNIX域套接口的套接口表
一、進程信息
在/proc文件系統中,每一個進程都有一個相應的文件 。下面是/proc目錄下的一些重要文件 :
/proc/pid/cmdline 包含了用於開始進程的命令 ;
/proc/pid/cwd包含了當前進程工作目錄的一個鏈接 ;
/proc/pid/environ 包含了可用進程環境變量的列表 ;
/proc/pid/exe 包含了正在進程中運行的程序鏈接;
/proc/pid/fd/ 這個目錄包含了進程打開的每一個文件的鏈接;
/proc/pid/mem 包含了進程在內存中的內容;
/proc/pid/stat包含了進程的狀態信息;
/proc/pid/statm 包含了進程的內存使用信息。

linux軟件

ssh

生成公鑰/私鑰

ssh-keygen

查看公鑰

cat ~/.ssh/id_rsa.pub

服務端添加公鑰

# 將生成的公鑰複製進去
vim ~/.ssh/authorized_keys
# 或者 例子:ssh-copy-id [email protected]
ssh-copy-id [user]@[host name|ip]

配置文件

# 修改 /etc/ssh/sshd_config        
StrictModes no

使用
ssh -oProxyCommand=“nc -x 127.0.0.1:3000 %h %p” -i ~/.ssh/github [email protected]
ssh -oProxyCommand=“nc -x 127.0.0.1:12333 %h %p” [email protected]
ssh [email protected]

https://www.cnblogs.com/kelvinWang/p/5612907.html
https://blog.csdn.net/a1282379904/article/details/52680959

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章