为什么linux远程一进入sudo su就卡住_Linux 实战(上)
什么是Linux
- 一種是 Linus 編寫的開源操作系統的內核
- 另一種是廣義的操作系統
服務器端通常強調穩定性,不需要像客戶端那樣華麗的圖形界面。
2. Linux 內核版本和常見發行版
內核版本:https://www.kernel.org/
內核版本分 主版本號、次版本號、末版本號 三部分。
次版本號為奇數為開發版,偶數為穩定版
發行版本:
- RedHat Enterprise Linux
- Fedora
- CentOS
- Debian
- Ubuntu
Mac 中玩 Linux: virtualbox 下載地址
centos系統映像下載地址:centos 后綴為.iso
1.
- $ 一般用戶
- # root 用戶
2. 終端
- 圖形終端
- 命令行終端
- 遠程終端(SSH VNC) : 操作的電腦不在我們面前
3.常見目錄介紹
- / 根目錄
- /root root 用戶家目錄
- /home/username 普通用戶家目錄
- /etc 配置文件目錄
- /bin 命令目錄
- /sbin 管理命令目錄
- /usr/bin /usr/sbin. 系統預裝的其他命令
幫助命令:man 、 help、 info
man
man 是 manual 的縮寫, man 有9個章節,用于區分
man + 命令: man lsman man man 章節 命令 :man 1 passwdman 5 passwd 不知道什么章節:man -a passwdhelp
shell(命令解釋器)自帶的命令稱為內部命令,其他的是外部命令
查看命令類型:type cd 內部命令:builtinhelp cd 外部命令:ls --helpinfo
info 幫助比 help 詳細,作為補充
info ls文件管理
cd
更改當前操作
絕對路徑:cd /path/..相對路徑:cd ./path/..cd ../path/..回到上一次目錄:cd -切換到下一級file中:cd ./filecd file返回上一級cd ..注:離根目錄比較近用絕對路徑,離當前目錄比較近用相對路徑ls
文件查看
ls : 查看當前目錄下的文件 option:-l : 長格式顯示文件-a:顯示隱藏文件-r:逆序顯示-t:按照時間順序顯示-R:遞歸顯示-h: 字節KB MB TB GB 顯示查看根目錄: ls / 查看root用戶所在目錄: ls /root 查看多目錄: ls / /root 多選項: ls -al -r 默認按文件名逆序ls -r -l -t 按照時間逆序 查看a中多級目錄: ls -R /apwd
顯示當前所在目錄
option:--help :顯示 幫助 信息然后退出--version : 顯示 版本 信息然后退出su
切換用戶
切換到root用戶: su - root 注:普通用戶切換需要密碼。root不需要清屏
命令: clear 快捷鍵:ctrl + l創建和刪除目錄
mkdir
mkdir a = mkdir ./a mkdir /a創建多目錄:mkdir a b c 創建多級目錄:mkdir -p /a/b/c/d/e/f/grmdir
移除單一目錄: rmdir file 遞歸刪除目錄(帶詢問):rm -r file 遞歸刪除目錄(強制): rm -rf file 刪除系統所有文件: rm -rf /結束正在執行的命令: Ctrl+c ,之前執行作廢
創建、復制和移動目錄
cp
copy
創建文件:touch filea fileb 復制文件:cp source dest 復制目錄:cp -r /root/a /tmp 帶顯示的復制操作:cp -v source dest 保留原有文件時間:cp -p source dest 保留時間 權限 所屬 所有信息:cp -a source dest -a = -dpRmv
移動文件或文件夾。 重命名
重命名文件: mv old_name new_file. 底層操作就是移動 移動文件:mv /file /tmp 文件移動并重命名:mv /tmp/file_old /file_new 移動文件夾:mv /dirc /tmp通配符
shell 內建的符號,操作多個相似的文件
* 匹配任何字符串
?匹配一個字符
[xyz] 匹配xyz任意一個字符
[a-z] 匹配一個范圍
[!xyz]或[^xyz] 不匹配
ls file* rm -f file*文本查看命令
文本內容顯示到終端: cat file 查看文件開頭:head file 默認十行 head -5 file 顯示五行 查看文件結尾:tail file 默認十行 tail -3 file 顯示三行常用參數 -f 文件內容更新后,顯示信息同步更新。tail -f file 不斷跟蹤 可以用于跟蹤日志文件 統計文件內容信息:wc -l file 查看文件有多少行 分行顯示:more file 顯示百分比,按空格會更多顯示打包
最早linux備份介質是磁帶,使用的命令是tar,壓縮存儲命令時gzip和bzip2,經常使用的的拓展名是.tar.gz .tar.bz2 .tgz
打包成文件: tar cf /tmp/etc-nackup.tar /etc壓縮和解壓縮
gzip bzip2, tar中集成了壓縮 加z即可
雙拓展名: tar czf /tmp/etc-nackup.tar.gz /etcvi的四種模式
正常模式 插入模式 命令模式 可視模式vim正常模式
插入:i 插入并返回此行開頭:大寫i 添加:a 添加并返回此行結尾:大寫a 從下一空行重新寫,依次往下: o 從上一空行重新寫,依次往下:大寫o粘貼: p復制:復制單行:yy多行復制: nyy eg:復制三行 3yy從光標復制到當行結尾: y$剪切:剪切一行:dd從光標剪切到當行結尾:d$多行剪切:nddeg: 剪切三行 3dd撤銷: u 反撤銷: ctrl + r單字符刪除:x 單字符替換:先按r再按新字符關于行
顯示行數: :set nu 不顯示行數: :set nonu set僅單次有效 設置配置文件每次都顯示行數: vim /etc/vimrc G o set nx 移動到指定行數: 先按數字 再按shift+g 移動到第一行:gg 移動到最后一行:G 移動到本行開頭:shift+6 移動到本行結尾:shift+4vim 可視模式
三種進入可視模式的方式:v 字符可視模式V 行可視模式ctrl+v 塊可視模式shift+i寫入想在塊之前插入的東西按兩次escvim光標移動
h j k l 左下上右vim命令模式
保存為某個文件: :w /root/a.txt 退出::q 保存并退出: :wq 不保存退出: :q!尾行模式執行其他命令: :!pwd 尾行模式查找某個字符: /字符 回車 。 按n查找下一個,shift+n查找上一個 尾行模式替換某個字符(光標所在行): :s/old/new 尾行模式替換某個字符(文件): :%s/old/new 尾行模式全局替換某字符(文件): :%s/old/new/g 尾行模式某行之間替換某個字符(1-5行): :%1,5s/old/new 尾行模式某行之間全局替換某字符(1-5行): :%1,5s/old/new/g用戶與權限管理
用戶管理
新建用戶:useradd 刪除用戶:userdel userdel -r wyy 會把/home/wyy也刪除,否則/home下用戶組會變成數字只有root有訪問權限 判斷存在用戶:id 名 id(root)=0ls /root ls /home/wyy/ 添加用戶后: tail -10 /etc/passwd tail -10 /etc/shadow修改用戶密碼:passwd user修改用戶屬性:usermod修改用戶家目錄: useradd wusermod -d /home/w1 w 更改家目錄usermod -g group1 w 更改組為group1=useradd -g group1 w 修改用戶屬性:chage更改用戶密碼過期信息組管理命令
添加用戶組 :groupadd group1 刪除用戶組: groupdel group1 切換用戶:su - new_user 并運行new_user的運行環境 退回用戶:exit用戶切換
su 切換用戶su - USERNAME 使用login shell方式切換用戶--需要root用戶密碼 sudo 以其他用戶身份執行命令visudo 設置需要使用sudo的用戶(組)--只執行shadow暴露權限不需要root密碼30min后關機 shutdow -h 30 取消關機 shautow -c 只有root可以 所以: visudo 更改權限user_name = ALL /sbin/shutdow -c用戶名 = 字符(localhost)/ALL(遠程/字符/圖形化) 命令 option取消關機執行:sudo /sbin/shutdow -c用戶和用戶組的配置文件
/etc/passwd 文件格式:用戶名:是否需要密碼:user_id(0為root):組::家目錄位置:用戶登錄的命令解釋器/etc/shadow用戶名:加密密碼::::::::/etc/group組名稱:密碼驗證:組gid:其他組設置文件類型
- 普通文件 d 目錄文件 b 塊特殊文件(移動硬盤) c 字符特殊文件 l 符號鏈接(快捷方式) s 套接字文件 f 命名管道文件權限
r 讀 4 w 寫 2 x 執行 1目錄權限
x 進入目錄 rx 顯示目錄內的文件名 wx 修改目錄內的文件名修改權限命令
chmod 修改文件或目錄權限user:chmod u+x /tmp/testfilechmod 755 /tmp/testfile755=rwx+rw+rw普通文件默認權限644=666-umask(0022)group:chmod g+x /tmp/testfileother: chmod o+x /tmp/testfileall: chmod a+w /tmp/testfile 設置權限:user只有寫權限: chmod u=w /tmp/teatfilechown 修改屬主、屬組將test文件的屬主改為user1: chown user1 /test將test文件的屬組改為group1: chown :group1 /test chgrp 單獨修改屬組,不常用將test文件的屬組改為group1: chgrp group1 /testctrl+r 搜索之前執行的命令文件權限與目錄權限
當user權限與group權限沖突時,以user權限為主安裝
找到命令對應的軟件包:yum provides */cmdname安裝:yum -y install packagename網絡管理
查看網絡狀態
網絡狀態查看工具 net-toolsifconfig 網絡狀態查詢命令routenetstat iproute2ipsseth0:第一塊網卡(網絡接口) 第一個網絡接口可能的名字:eno1 :板載網卡ens33 : PCI-E網卡enp0s3:無法獲取物理信息的PCI-E網卡CentOS 7使用了一致性網絡設備命名,以上不匹配則使用 eth0網卡轉化:編輯/etc/default/grub文件,增加 biosdevname=0 和 net.ifnames=0更新grub: #grub2-mkconfig -o /boot/grub2/grub.cfg重啟: #reboot查看網卡: ifconfig eth0 查看網卡物理連接狀況: mii-tool eth0 查看網關配置路由:route -n. 使用-n參數不解析主機名修改網絡配置
網絡配置命令ifconfig <接口> <IP地址> [netmask 子網掩碼]eg: ifconfig eth0 10.211.55.4 netmask 255.255.255.0網卡啟動:ifup <接口>eg: ifup eth0網卡禁用:ifdown <接口>添加網關:route add default gw <網關ip>. eg: route add default gw 10.211.55.4route add -host <指定ip> gw <網關ip>route add -net <指定網段> netmask<子網掩碼> gw<網關ip>eg: route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.211.55.4 刪除網關:route del default gw 10.211.55.4iproute2 中命令網絡故障排除命令
檢測當前主機和目標主機是否暢通: pingeg: ping www.baidu.com輔助ping使用來檢查狀況及質量:traceroute - 檢查每一跳eg: traceroute -w 1 www.baidu.com 如果超時只等一秒鐘mtr -檢查是否有數據包丟失域名對應ip:nslookup 域名端口檢查:telneteg: telnet www.baidu.com 80 檢查百度80端口是否暢通退出:ctrl+] 再輸入quit網絡抓包工具:tcpdumpeg: tcpdump -i any -n port 80 抓取80端口的所有包并將域名展示為iptcpdump -I any -n host 10.0.0.2 我到host的所有包都捕獲tcpdump -I any -n host 10.0.0.2 and port 80tcpdump -I any -n host 10.0.0.2 and port 80 -w /tmp/filea 捕獲信息保存到文件中網絡監控:netstat netstat -ntpl n:轉ip 、t:tcp、p:進程、l:listenssss -ntpl軟件包管理器的使用
包管理器是方便軟件安裝、卸載,解決軟件依賴關系的重要工具 CentOS、RedHat使用yum包管理器,軟件安裝包格式為rpm Ubuntu、Debian使用apt包管理器,軟件安裝包格式為debrpm
rpm包格式vim-common-7.4.10-5.el7.x86_64.rpm軟件名稱.軟件版本.系統版本.平臺光驅: ls -l /dev/sr0 將光盤封裝成鏡像: dd if=/dev/sr0 of=/xxx/xx.iso 掛載:mount /dev/sr0 /mntcd /mnt/Packagesls vim*-q 查詢軟件包查詢所有已安裝的軟件包并分屏顯示:rpm -qa | more查詢單個軟件包:rpm -q vim-common-i安裝軟件包rpm -i vim-common-7.4.10-5.el7.x86_64.rpm依賴檢測失敗 需要先安裝所依賴的 再安裝自己,rpm需要自己解決依賴關系、軟件包來源不可靠,yum自動解決依賴關系-e 卸載軟件包rpm -e vim-commonyum
yum命令選項:install 安裝軟件包 yum install nameremove 卸載軟件包yum remove namelist| grouplist 查看軟件包 yum listupdate 升級軟件包yum update 更改yum下載映像位置-國內快:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/CentOS-7.repoyum makecache源代碼編譯安裝內核升級
rpm 格式內核:查看內核版本: uname -r升級內核版本: yum install kernel-3.10.0升級已安裝的其他軟件包和補丁: yum update進程管理
PID進程號 PPID父進程 UID 有效用戶ID LWP 輕量級進程-線程 TTY終端 虛擬終端-pts/0 純字符終端tty0 tty1 TIME 進程運行時間 無參考價值 CMD 命令名稱或路徑 1號進程 CentOS 7: systemd CentOS 6 : init進程終止方式正常終止:main返回,exit異常終止:abort,信號查看命令:ps查看不同終端所有進程狀態: ps -e | more查看更多信息UID PPID: ps -ef|more查看更多信息LWP:ps -eLf |morepstree 進程樹-父子關系top 動態查看%cpu:用戶us + 進程交互sy +ni+ 空閑狀態id +等待wa+ hi+ si +st =100只看某進程:top -p pid PR 優先級。NI 資源占用(nice值 默認為0)進程也是樹形結構,進程和權限密不可分進程控制
調整優先級:nice 范圍-20到19 值越小優先級越高,搶占資源越多nice -n NI值 shell文件(未運行時)renice 重新設置優先級(運行時)renice -n NI值 PR號進程的作業控制:jobs&符號進程前后臺調度(以 ./a.sh 為例):以后臺運行: ./a.sh &查看后臺運行的進程: jobs 調度到前臺運行: fg 編號前臺運行后懸掛:按ctrl+z懸掛后到后臺運行: bg 編號Kill
查看所有支持的信號:kill -lSIGINT 通知前臺進程組終止進程。ctrl+cSIGKILL 立即結束程序 不能被阻塞和處理 kill -9 pid守護進程
類守護進程 nohup tail -f /var/log/messages &。但需終端,不過在終端exit時可以脫離終端,防止帶動退出。守護進程特點:1、 不需要終端。 2、結果存在日志文件中,無終端用日志文件記錄信息。3、占用當前目錄,切換為根,關機或者 重啟才可以停止使用screen命令:在網絡中斷時screen可以保證程序正常運行,等下次連接時會通過screen恢復現場screen 進入screen環境ctrl+a d 屏蔽screen環境screen -ls 查看screen會話screen -r sessionid 恢復會話exit 退出日志: /var/log 系統常規日志:tail -f messages 內核日志: tail -f dmsg 安全日志: tail -f secure 計劃任務-周期性: tail -f cron服務管理工具 systemctl
servicecd etc/init.d/查看腳本:vim networkinit 0 關機 1 單用戶 2 多用戶 3 字符模式 5 圖形模式6重啟service 服務名稱 start/stop/restartsystemctlsystemctl stop/start/restart/disable/enable/reload 服務名稱查看服務狀態實例: systemctl status sshd.serviceSELinux
MAC(強制訪問控制)與DAC(自主訪問控制)原linux需要用戶自控制不安全。SELinux將進程 用戶 文件標簽一致且類型相同,則允許訪問并控制文件或 系統,不過會降低服務器性能。查看狀態:getenforce/etc/selinux/config1. enforcing 強制訪問控制。進程用戶標簽三者一致2.permissive 警告3.disabled 關閉 更換臨時狀態為警告: setenforce 0 重啟后仍為enforcing 看標簽: ps -Z、 ls -Z 、 id -Z內存查看命令
內存使用率查看:free free -m 兆數顯示swap運行在磁盤上比,mem慢十倍,可以限用swap,這樣mem滿時隨機殺掉占用內存最大的幾個進程top磁盤分區和文件大小查看
磁盤使用率查看:可查看分區: fdisk fdisk -lpartedparted -l可查看分區掛載目錄: dfdf -h文件大小查看:實際占用空間: du du -h afile總占用空間: ls -hl afile du與ls區別:根據一個文件創建另一個(塊大小4M 10個塊 ): dd if=afile bs=4M count=10 of=bfile此時du與ls結果相同根據一個文件創建另一個(塊大小4M 10個塊 開頭跳過20塊 ): dd if=afile bs=4M count=10 seek=20 of=bfile此時du與ls結果不同,ls顯示的是空洞文件總大小,du指實際大小b代表塊設備,8代表主設備號,0/16/32代表從設備號就是分區,一塊磁盤分區最多15個
fdisk -l一個扇區512字節,最小操作單元
文件系統管理
linux支持多種文件系統,常見的有xfsext4NTFS(需安裝額外軟件)ext4文件結構:1.超級塊:記錄分區包含的文件,文件總數。df命令查看的信息都是超級塊信息,每次新文件創建都會更新2.超級塊副本:硬盤誤清理后恢復的都是超級塊。3.i節點(inode):記錄每一個文件名稱 大小 編號 權限,文件名記錄在父目錄的i節點中 ls -i看i 節點編號4.數據塊(datablock): 記錄數據,掛在i 節點上,鏈接式結構。根據個數計算文件大小,du命令統計數據塊個數大小信息,ls統計i節點大小 文件權限與目錄權限區別:read 文件是讀datablockread 目錄是讀其下文件名稱i節點和數據塊操作
在xfs、ext4文件系統中,默認的創建的一個數據塊大小是4kcp afile1 afile2 命令會創建一個不同i節點的文件 mv afile1 afile3 同目錄下文件重命名沒有改變i節點和datablock ,只是改變了目錄與文件名的對應關系,所以很快echo只會對datablock發生改變,vim會對i節點發生改變 ls -li怎樣使vim不改變i節點?使用硬鏈接 vim對文件一致性的考慮:vim file4時,會生成一個.file4.swp文件,當發生宕機保證數據不丟失,當其他終端讀取時保證數據一致性rm 讓文件名與i節點鏈接斷開,所以不論刪除多大的文件所用時間都是相同的 ln 讓更多文件名指向i節點,恢復誤刪。ln不能跨越文件系統ln afile bfile 二者之一變另外一個也變,擁有同一個i節點。rm其中一個不改變另一個,當都rm后,系統回收i節點ls -li afile bfile如果想跨越文件系統進行鏈接需要進行軟鏈接,對應i節點不同-創建新文件,link文件權限777沒用,以父鏈接文件權限為主,當父文件刪除后,軟連接文件內容置空。軟鏈接文件永遠是5字節,硬連接文件大小與父文件相同。軟鏈接不會增加鏈接數,硬連接會一起增加鏈接數。
文件權限控制列表
文件權限控制列表:可以讓不同user、group有不同的權限 查看權限:getfacl afile賦予權限:setfacl -m u:user1:r u:user2:x g:group1:w afile收回賦予的權限:setfacl -x u:user1:r u:user2:x g:group1:w afile分區和掛載
用于設置新服務器 新硬盤 常用命令:先添加一個新的硬盤,避免格式化將原有信息丟失創建分區:fdiskfdisk /dev/sdc 根據提示自己建創建分區:partedparted /dev/sdd 根據help提示格式化:mkfsmkfs.ext4 /dev/sdc1 掛載到目錄:mount 無法直接操作分區,應該掛載到目錄上mkdir /mnt/sdc1mount /dev/sdc1 /mnt/sdc1 臨時掛載,重啟消失永久掛載: vim /etc/fstab添加: /dev/sdc1 /mnt/sdc1 ext4 defaults 0 0原分區 掛載到 文件系統 權限 磁盤配額常見配置文件:/etc/fstab用戶磁盤配額
創建文件數(單獨i節點)不可以超過10限制i節點,大于isoft軟限制進行提醒,但是不可以超過ihard硬限制 限制塊設備是bhard
交換分區swap的查看與創建
增加交換分區的大小:創建交換分區并格式化:mkswap /dev/sdd1開啟交換分區:swapon /dev/sdd1關閉交互分區:swapoff /dev/sdd1查看:free -m使用文件制作交換分區dd if=/dev/zero count=1024 bs=4M of=/swapfile修改安全權限:chmod 600 /swapfile創建交換分區并格式化:mkswap /swapfile開啟交換分區:swapon /swapfile關閉交互分區:swapoff /swapfile永久保存設置:vim /etc/fstab添加:/swapfile swap swap defaults 0 0系統綜合狀態查詢
sar -u -r -b -d -q 1 10
cpu 內存 IO 磁盤讀寫 進程一秒 采樣十次
總結
以上是生活随笔為你收集整理的为什么linux远程一进入sudo su就卡住_Linux 实战(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 驱动表提示错误代码,ora
- 下一篇: tomcat linux环境变量,lin