Linux(Centos7)系統基本操作

Linux(Centos7)系統基本操作

目錄結構

- bin 普通用戶使用的命令
- sbin 管理員使用的命令
- dev 設備文件
- proc  虛擬文件系統,反映內核進程信息實時狀態
- usr 系統文件,類似C:Windows
  [注]: RHEL7 /bin /sbin /lib /lib64 都在此目錄
- boot 啓動文件
- etc 配置文件
- lib 庫文件
- lib64庫文件
- tmp 臨時文件
- var 變化文件

注:設備掛載目錄
- media 移動設備掛載點
- mnt 手工掛載點
- misc  automount進程掛載
- net  automount進程掛載

VIM

命令模式
光標定位
hjkl  //上下左右
0 $   //行首行尾
gg G  //文首文尾
3G    //進入第三行
文本編輯
y       //複製 yy 3yy ygg  yG
d       //刪除 dd 3dd dgg  dG 
D       //從光標處刪除到行尾
u       //undo撤銷
r        //修改一個字符
可視塊模式
塊插入:      //選擇塊,I   在塊前插入字符
塊替換:      //選擇塊,r   輸入替換的字符
塊刪除:      //選擇塊,d | x
塊複製:      //選擇塊,y
擴展命令模式
讀入文件/另存爲
:w /路徑          //另存爲
:r /路徑          //讀文件到當前行後
:5 r /路徑        //讀文件到第5行後

文件管理

目錄
mkdir -p   //遞歸創建
mkdir /home/{dir1,di2}  //意會
複製
cp -r      //遞歸拷貝
cp -rf     //覆蓋不提示
刪除
rm
-r    //遞歸
-f    //強制
-v    //詳細過程
查看
cat
-n   //顯示行號
-A   //包括控制字符
tail & head
head   //查看頭 後跟 -數字

tail   //查看尾
-數字
-f   //動態查看

文件時間

-訪問時間:atime  //查看內容
-修改時間:mtime  //修改內容
-改變時間:ctime  //修改權限
-刪除時間:dtime  //文件刪除時間

文件類型

ls -l
-    //普通文件
d    //目錄文件
b    //設備文件(塊設備)存儲設備,如U盤等;
c    //設備文件 (字符設備) 打印機等。
p    //管道文件
l    //連接文件

附註

type
# type ll
file
# file /etc/hostname
/etc/hostname: ASCII text
stat
# stat /etc/hostname

用戶管理

基本操作

查看登錄信息
id
uid=0(root) gid=0(root) groups=0(root)
查看文件的owner(所有者)
ll /home/  

相關管理

用戶組
groupadd    //創建
groupdel    //刪除
用戶
useradd    //創建
# -u                  //指定uid
# -d                  //指定家目錄
# -s /sbin/nologin    //指定shell
# -G                  //創建目錄指定附加組
# -g                  //指定組

userdel    //刪除  -r 同時刪除家目錄和mail spoo
用戶密碼
passwd 用戶名   //root可設置任何用戶密碼
passswd         //普通用戶只能給自己修改密碼
組成員管理
usermod -G  組  用戶名    //覆蓋原有的附加組 
usermod -aG hr niuniu2 //增加新的附加組
其他選項管理
usermod -s  /sbin/nologin   //修改登錄Shell用戶組
提權
su
舉個栗子:
[alice@tiezhu ~]$ useradd u1
-bash: /usr/sbin/useradd: 權限不夠
[alice@tiezhu ~]$ su - root
 password:
[root@tianyun ~]# useradd u1
sudo
sudo(選項)(參數)

文件權限

  • 權限對象 屬主:u 屬組:g 其他人:o
  • 基本權限類型 讀:r , 4 寫:w ,2 執行 : x ,1

基本權限 UGO

chown
chown   屬主.屬組   文件       //改屬主、屬組   -R 遞歸
chown   屬主        文件       //改屬主
chown       .屬組   文件       //改屬組
chgrp
chgrp      屬組   文件       //改文件屬組
chgrp   -R 屬組   文件        //改文件屬組
chmod
chmod u+x  文件     //屬主增加執行
chmod a=rwx 文件    //所有人等於讀寫執行行
chmod 644  文件     //數字大法

基本權限 ACL

getfacl 、setfacl
舉個栗子
# setfacl  -m  u(g,o):alice:rw  /home/test.txt     //增加ACL權限
# setfacl  -x  u(g,o):alice  /home/test.txt        //刪除ACL權限
# setfacl  -b     /home/test.txt                   //刪除所有ACL權限
# setfacl -R -m u:alice:rwx /home      //方法一                       
# setfacl -m d:u:alice:rwx /home       //方法二
            //賦予alice對/home讀、寫、執行權限

高級權限

  • sudo 針對某個用戶以root的身份執行某些命令
  • suid 任何用戶執行有suid權限程序(eg:/usr/bin/rm)時都在以root身份在運行。
特殊位
  • suid針對文件/程序時,具備臨時提升權限。 4
  • sgid針對目錄時。該目錄具備繼承屬組的特性。2
  • sticky針對目錄設置,該目錄內容只有root和屬主可刪除 1
設置方式
字符
# chmod u+s fiel
# chmod g+s dir
# chmod o+t dir
數字
# chmod 4777 fiel
# chmod 7777 file
# chmod 2770 dir
# chmod 3770 dir
文件屬性chattr
chattr +a  file     //只可追加
chattr +i  file     //不可更改、重命名、刪除
chattr +A  file     //不可更改訪問時間(atime)
+ -      //追加 移除

進程管理

查看進程

靜態查看
# ps aux |less
USER    PID %CPU  %MEM   VSZ    RSS  TTY   STAT  START  TIME  COMMAND
root    1   0.0   0.0    2164   648  ?     Ss    08:47  0:00  init [5] 
USER     運行進程用戶               
PID      進程ID                
%CPU     CPU佔用率
%MEM     內存佔用率
VSZ      佔用虛擬內存
RSS      佔用實際內存
TTY      進程運行終端
STAT     進程狀態
START    進程的啓動時間
TIME     進程佔用CPU總時間
COMMAND  進程文件、進程名
R  運行
S  可中斷睡眠
D  不可中斷睡眠
T  停止進程
Z  殭屍進程
X  死掉的進程
查看指定進程PID
# pidof   進程名
進程樹
pstree
動態查看
# top
# top -d 1                 //每一秒刷新
# top -d 1 -p 10123        //查看指定進程的動態信息
# top -d 1 -u  user        //查看指定用戶的進程
# top -d 1 -b -n >top。txt //將兩次top信息寫入到文件
h|?   幫助                       <   >   向前 向後
M      查看內存使用排序            z       彩色
P      按CPU使用排序               W      保存top環境設置
N      以PID的大小排序
R      對排序進行反轉
f      自定義顯示字段
1      顯示所有CPU負載
信號控制進程
# kell  -1       重新加載配置
# kill  -9       強殺
# kill  -15      正常終止
# kill  -18/-19  繼續/暫停

進程優先級nice

使用tiop更改
# top   輸入r  
(-20高)  ---0--- (19低)
使用shell更改
# ps  aux  //查看pid
# renice  -20 pid  //更改

管道及重定向

重定向

輸出重定向
>                   //覆蓋
>>                  //追加
&> /dev/null        //重定向到空
輸入重定向
# cat   >file  <<EOF
>內容
>內容
>EOF 

管道

|
|tee  #tee命令就像管道的T接頭。

查找壓縮

文件查找

grep:文件內容過濾  
find: 文件查找
which:命令查找
which
查找tree 命令位置
# which tree
/bin/tree
find
公式:find   [path...]  [options]  [expression]  [action]
      名字    路徑        選項        表達         行動
name       //名字           (a/m/c)time   //訪問時間、修改時間、改變時間
size       //大小           user/group    //用戶、組
maxdeoth   //目錄           perm          //權限
按文件名
# find    /   -name     "name"
# find    /   -iname    "name"       //忽略大小寫
按文件大小
# find    /    -size  +5M       //大於5M
# find    /    -size   5M       //等於5M
# find    /    -size  -5M       //小於5M
指定查找目錄深度
# find  / -maxdepth 3 -a -name "ifcfg-en*"   //三層
按時間查找
# find  /  -mtime(-atime/ctime)   +5(5/-5)  //時間超過(等於、小於)5天
按屬主、屬組
# find   /   -user   jack     //屬主是jack的文件
# fian   /   -group  hr       //屬組是hr的文件
# find   /    -nouser         //缺失UID的文件
按文件權限
  • 普通權限
# find  /   -prem    644      //精確權限
# find  /   -prem   -644      //包含權限即可
  • 特殊權限
# find /usr/bin /usr/sbin -perm -4000 -ls //包含set uid
# find /usr/bin /usr/sbin -perm -2000 -ls //包含set gid
# find /usr/bin /usr/sbin -perm -1000 -ls //包含sticky
找到後處理動作
-print     //打印(默認選項)
-ls        //列出
-exec      //後跟自定義shell命令
-ok        //後跟自定義shell命令

文件打包及壓縮

打包壓縮
# tar -cf    test.tar           //打包      
# tar -czf   test.tar.gz        //z是gzip
# tar -cjf   tset.tar.bz        //j是bzip
# tar -cJf   test.tar.xz        //J是xzip
解壓
# tar xf  test.tar.xz   //不顯示詳細信息  
       ↑------xvf 可顯示詳細信息
# tar xvf test.tar.bz  -C   /tmp  //-C重定向到目錄 /tmp

軟件包管理

軟件包類型

  • 源碼包 需編譯
舉個栗子   nginx-1.12.1.tar.gz 
  • 二進制包 已編譯
舉個栗子    mysql-community-common-5.7.12-1.el7.x86_64.rpm
# 在RedHat/Centos 平臺常見的二進制包類型爲rpm,工具爲rpm,rpmbuild ,在線安裝方式爲yum

rpm包管理

獲得rpm包的途徑
  • RedHat光盤或官方網站 ftp://ftp.redhat.com
  • rpmfind.net
  • 相應軟件官方網站 如http://www.mysql.com
rpm包結構
舉個栗子
ntfs-3g-2011.4.12-5.el5.x86_64.rpm  

軟件包名    版本號(Version)    發佈版本(Release)   系統平臺
ntfs-3g      2011.4.12             5.el5          x86_64
使用RPM工具管理RPM包
安裝
# rpm -ivh local_path(本地路徑)   //本地安裝
# rpm -ivh url_path(url)     //網絡安裝
額外選項
--nosignature       //不檢驗軟件包的簽名
--force             //強制安裝軟件包       yum reinstall
--nodeps           //忽略依賴關係
查詢
rpm  -q      ntfs-3g            查詢指定包是否安裝
rpm  -qa    |grep ntfs          查詢某個包
rpm  -qa     ntfs-3g            查詢ntfs-3g安裝的文件
rpm  -qf     /usr/bin/ntfs-3g   查詢該文件屬於哪個rpm包
rpm  -wc     ntfs-3g            查詢某個包安裝的配置文件
rpm  -qd     vsftpd             查看安裝的幫助文檔     
卸載
rpm  -e ntfs-3g

YUM

基礎源
路徑
# ls   /etc/yum.repos.d/    //路徑
命令
# yum install   包名        //安裝
# yum update    包名        //升級包
# yum remove    包名        //卸載包  
# yum info      包名        //查看包信息
# yum clean     all         //清理本地緩存
# yum clean     plugins     //清除插件緩存
# yum makecache             //重建緩存
# yum provides  /bin/mv     //查看文件來自哪個包
# yum  repolist             //顯示所有yum倉庫
# yum  disabled(enabled)    //顯示可用倉庫
# yum list                  //列出可安裝的包
# yum list updates          //顯示可更新的包
# yum list installed        //顯示已安裝的包
# yum list recent           //列出倉庫最近增加的包
阿里源
http://mirrors.aliyun.com/
163源
http://mirrors.163.com
epel
yum -y install epel-release
官方源
如 nnginx
# vim   /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

tar源碼包

獲得途徑

官方網站 如:

 Apache: www.apache.org   
 Nginx: www.nginx.org
 Tengine: tengine.taobao.org
安裝源碼包

^注1: 以編譯安裝tengine爲例
^注2: 準備、解壓、配置、編譯、安裝。

部署Tengine  /Nginx服務器/WEB服務器
1. 下載源碼包,準備軟件包
2.準備編譯環境如編譯器gcc、make
# yum -y install   gcc   make   zlib-devel  pcre  pcre-devel  openssl-devel
(pcre: 支持正則表達式,地址重寫rewrite)

3.解壓
# useradd www
# tar xvf tengine-2.2.0.tar.gz
# cd tengine-2.2.0
4.配置
./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_ssl_module \
--with-pcre  
5.編譯
# make
6.安裝
# make install

7啓動測試
# /usr/local/nginx/sbin/nginx //啓動nginx服務器
# systemctl stop firewalld
看到網頁,說明部署成功。 

系統版本信息

uname

# uname   用於打印當前系統信息 內核版本號、硬件架構、主機名稱和操作系統類型等)

-a  顯示全部信息
-m  顯示電腦類型
-n  顯示網絡上的主機名
-r  顯示操作系統發行編號
-s  顯示操作系統名稱
-v  顯示操作系統版本    

cat 命令

# cat /etc/redhat-release    //查看版本當前操作系統發行版信息
# cat /proc/version          //查看當前操作系統版本信息
# cat /proc/cpuinfo          //查看cpu相關信息,包括型號、主頻、內核信息等

查看位數

# getconf LONG_BIT     //查看運行在哪個位數下,但並不代表CPU不支持其他位數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章