Linux用戶權限指令, 定時任務等指令

一. 網卡配置詳解

複製代碼
網絡配置文件:
/etc/sysconfig/network

網絡接口配置文件:
/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME   # 這個INTERFACE_NAME 就是 ens33 以下圖
DEVICE=: 關聯的設備名稱,要與文件名的後半部「INTERFACE_NAME」保持一致; 
BOOTPROTO={static|none|dhcp|bootp}: 引導協議;要使用靜態地址,使用static或none;dhcp表示使用DHCP服務器獲取地址;
IPADDR=: IP地址
NETMASK=:子網掩碼
GATEWAY=:設定默認網關;
ONBOOT=:開機時是否自動激活此網絡接口;
HWADDR=: 硬件地址,要與硬件中的地址保持一致;可省;
USERCTL={yes|no}: 是否容許普通用戶控制此接口;
PEERDNS={yes|no}: 是否在BOOTPROTO爲dhcp時接受由DHCP服務器指定的DNS地址;
複製代碼

  

# 有的剛裝好Linux的時候,網卡默認沒啓動
#編輯網卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0   # 個人是ens33
#修改配置參數
ONBOOT=yes    # 這個樣就默認啓動了

  ifup, ifdown命令

ifup ens33  #啓動ens33網卡
ifdown  ens33  # 關閉ens33網卡

二 . 用戶管理權限篇

  root與其餘用戶的信息

在Linux系統中,用戶也有本身的UID身份帳號且惟一
系統管理員UID爲0    # root
系統用戶UID爲1~999   # Linux安裝的服務程序都會建立獨有的用戶負責運行。
普通用戶UID從1000開始:# 由管理員建立

  建立普通用戶

複製代碼
# 添加用戶
useradd  attila
# 設置密碼
passwd  666
# 修改密碼
passwd  attila

# root能夠修改全部用戶的密碼,且不須要驗證
複製代碼

  切換用戶

su命令能夠切換用戶身份的需求,
su - username

# su命令中間的-號很重要,意味着徹底切換到新的用戶,即環境變量信息也變動爲新用戶的信息

  

複製代碼
Tip:
1.超級用戶root切換普通用戶無需密碼,例如「羣主」想踢誰就踢誰
2.普通用戶切換root,須要輸入密碼
3.普通用戶權限較小,只能基本查看信息
4.$符號是普通用戶命令提示符,#是超級管理員的提示符
5.~ 表示在家目錄,好比root用戶在 /root下 就顯示~
複製代碼

  userdel刪除用戶

-f     強制刪除用戶
-r     同時刪除用戶以及家目錄
userdel -rf  attila

  sudo命令

sudo命令用來以其餘身份來執行命令,預設的身份爲root。在/etc/sudoers中設置了可執行sudo指令的用戶。
  若其未經受權的用戶企圖使用sudo,則會發出警告的郵件給管理員。用戶使用sudo時,必須先輸入密碼,以後有5分鐘的有效期限,超過時限則必須從新輸入密碼。

    參數python

複製代碼
# sudo 【選項】【參數】
-b:在後臺執行指令;
-h:顯示幫助;
-H:將HOME環境變量設爲新身份的HOME環境變量;
-k:結束密碼的有效期限,也就是下次再執行sudo時便須要輸入密碼;。
-l:列出目前用戶可執行與沒法執行的指令;
-p:改變詢問密碼的提示符號;
-s<shell>:執行指定的shell;
-u<用戶>:以指定的用戶做爲新的身份。若不加上此參數,則預設以root做爲新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本信息。
複製代碼

  想要給普通用戶root的權限,必須編輯sudoers文件linux

# visudo   # 後面不用加文件路徑本身去找 /etc/sudoers   使用visudo編輯出錯會告訴你  
寫入
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
attila  ALL=(ALL)       ALL   #容許attila在任何地方,執行任何命令

  受權以後就能夠作一些只有root才能作的事情了,如:nginx

# 先切換到attila用戶
su  -  attila
# 原來只有root才能看/root
sudo  ls  /root      # 前邊要寫sudo

三 . 文件與目錄權限

# Linux文件主要有三種身份,每種身份有三種權限
# 身份
u(user), g(group), o(others)
# 權限
r(可讀)w(可寫)e(可執行)

複製代碼
# 權限信息三個爲一組,如rw-就是一組

# 文件類型的參數與解釋
-    通常文件
d    文件夾
l    軟鏈接(快捷方式)
b    塊設備,存儲媒體文件爲主
c    表明鍵盤,鼠標等設備
複製代碼

 

  權限數字轉化shell

  查看用戶權限命令(id)

id指令查看用戶所屬羣主
# id root
uid=0(root) gid=0(root) 組=0(root)

  修改屬主爲attila

# chown (change owner)
chown attila 校花的故事.txt

  修改屬組爲attila

# chgrp (change group)
chgrp attila 校花的故事.txt 

  文件權限用數字計算

# chmod
chmod  754  校花的故事.txt
# 754對應的位置分別是u g o
# 7 = 4+2+1   也就是user 的權限是 r w e

  軟鏈接

# 創建軟鏈接的格式
ln  -s  你要鏈接的文件的絕對路徑    軟鏈接的絕對路徑(名字地址隨便給)
# 把/tmp/校花的故事.txt軟鏈接到/home/天龍.txt
ln  -s  /tmp/校花的故事.txt   /home/天龍.txt
# 而後cat  /home/天龍.txt   就直接能夠看到校花的故事.txt裏面的內容了, 天龍.txt至關於快捷方式,刪除不影響校花的故事.txt

  PS1變量

複製代碼
[root@oldboy_python ~]# echo $PS1
[\u@\h \W]\$

能夠自行調整全局變量/etc/profile文件用於永久生效 PS1='[\u@\h \W\t]\$'
\d  日期
\H  完整主機名
\h  主機名第一個名字
\t  時間24小時制HHMMSS
\T  時間12小時制
\A  時間24小時制HHMM
\u  當前用戶帳號名
\v  BASH的版本
\w  完整工做目錄
\W  利用basename取得工做目錄名
\#  下達的第幾個命令
\$  提示字符,root爲#,普通用戶爲$
PS1 > 變量名
$PS1 > 查看變量內容
PS1=新內容 從新賦值

變量賦值,查看
name='chaoge'
echo $name

PS1顯示ip地址
export PS1="[\u@\h `/sbin/ifconfig ens33 | sed -nr 's/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'` \w]\$"
複製代碼

四 .  經常使用命令

  tar命令

複製代碼
tar(選項)(參數)
-A或--catenate:新增文件到以存在的備份文件;
-B:設置區塊大小;
-c或--create:創建新的備份文件;
-C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可使用這個選項。
-d:記錄文件的差異;
-x或--extract或--get:從備份文件中還原文件;
-t或--list:列出備份文件的內容;
-z或--gzip或--ungzip:經過gzip指令處理備份文件;
-Z或--compress或--uncompress:經過compress指令處理備份文件;
-f<備份文件>或--file=<備份文件>:指定備份文件;
-v或--verbose:顯示指令執行過程;
-r:添加文件到已經壓縮的文件;
-u:添加改變了和現有的文件到已經存在的壓縮文件;
-j:支持bzip2解壓文件;
-v:顯示操做過程;
-l:文件系統邊界設置;
-k:保留原有文件不覆蓋;
-m:保留文件不被覆蓋;
-w:確認壓縮文件的正確性;
-p或--same-permissions:用原來的文件權限還原文件;
-P或--absolute-names:文件名使用絕對名稱,不移除文件名稱前的「/」號;
-N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的文件保存到備份文件裏;
--exclude=<範本樣式>:排除符合範本樣式的文件。
複製代碼

  示例:數據庫

# 將/tmp/下全部內容壓縮成All_log.tar.gz而且放到/home/下
tar -zcvf  /home/All_log.tar.gz  /tmp/*

# 把Python源碼包Python-3.7.0b3.tgz 解壓到/opt/python3的文件夾下 
tar -zxvf Python-3.7.0b3.tgz  -C  /opt/python3

  netstat命令

netstat命令用來打印Linux中網絡系統的狀態信息,可以讓你得知整個Linux系統的網絡狀況。

    參數vim

複製代碼
netstat [選項]
-t或--tcp:顯示TCP傳輸協議的連線情況;
-u或--udp:顯示UDP傳輸協議的連線情況;
-n或--numeric:直接使用ip地址,而不經過域名服務器;
-l或--listening:顯示監控中的服務器的Socket;
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱;
-a或--all:顯示全部連線中的Socket;

# netstat  -tunlp
複製代碼

  ps命令

    ps命令用於查看系統中進程狀態windows

複製代碼
ps  命令經常使用參數
-a     顯示全部進程
-u     用戶以及其餘詳細信息
-x    顯示沒有控制終端的進程

# 查找進程
ps  -ef  
# 查找python進程
ps  -ef | grep python
複製代碼

  kill命令

    kill命令用來刪除執行中的程序或工做centos

-a:當處理當前進程時,不限制命令名和進程號的對應關係;
-l <信息編號>:若不加<信息編號>選項,則-l參數會列出所有的信息名稱;
-p:指定kill 命令只打印相關進程的進程號,而不發送任何信號;
-s <信息名稱或編號>:指定要送出的信息;
-u:指定用戶。

  只有第9種信號(SIGKILL)才能夠無條件終止進程,其餘的信號進程都有權利忽略,下面的經常使用信號:緩存

 

複製代碼
HUP     1    終端斷線
INT     2    中斷(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    終止
KILL    9    強制終止
CONT   18    繼續(與STOP相反, fg/bg命令)
STOP   19    暫停(同 Ctrl + Z)
複製代碼

 

  示例:bash

複製代碼
先用ps查找進程,而後用kill殺掉:
ps -ef | grep vim
root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim

kill 3268
複製代碼

  killall命令

# 一般來說,複雜軟件的服務程序會有多個進程協同爲用戶提供服務,若是逐個去結束這 些進程會比較麻煩,
  此時可使用 killall 命令來批量結束某個服務程序帶有的所有進程。 # 例如nginx啓動後有2個進程   killall nginx

  關閉防火牆命令

複製代碼
centos7默認已經使用firewall做爲防火牆了
1.關閉防火牆
systemctl status firewalld #查看防火牆狀態
systemctl stop firewalld    #關閉防火牆
systemctl disable firewalld#關閉防火牆開機啓動
systemctl is-enabled firewalld.service#檢查防火牆是否啓動
複製代碼

  Linux語言設置

複製代碼
 #查看系統當前字符集
echo $LANG
locale

#檢查xshell crt的字符集
#命令修改字符集
# vim /etc/profile.d/locale.sh
export LC_CTYPE=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

# vim /etc/locale.conf
LANG=zh_CN.UTF-8

# vim /etc/sysconfig/i18n
LANG=zh_CN.UTF-8

# vim /etc/environment
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

英文版本

# vim /etc/profile.d/locale.sh
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

# vim /etc/locale.conf
LANG=en_US.UTF-8

# vim /etc/sysconfig/i18n
LANG=en_US.UTF-8

# vim /etc/environment
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

# 更改完以後須要保存生效 source  /etc/proprofile
2.更改後查看系統語言變量
locale
複製代碼

  df命令

df命令用於顯示磁盤分區上的可以使用的磁盤空間。默認顯示單位爲KB。能夠利用該命令來獲取硬盤被佔用了多少空間,目前還剩下多少空間等信息。
複製代碼
# 語法
df(選項)(參數)
-h或--human-readable:以可讀性較高的方式來顯示信息;
-k或--kilobytes:指定區塊大小爲1024字節;
-T或--print-type:顯示文件系統的類型;
--help:顯示幫助;
--version:顯示版本信息。
複製代碼

  tree命令

tree
 1 1 tree命令以樹狀圖列出目錄的內容。
 2  2 
 3  3 -a:顯示全部文件和目錄;
 4  4 -A:使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合;
 5  5 -C:在文件和目錄清單加上色彩,便於區分各類類型;
 6  6 -d:先是目錄名稱而非內容;
 7  7 -D:列出文件或目錄的更改時間;
 8  8 -f:在每一個文件或目錄以前,顯示完整的相對路徑名稱;
 9  9 -F:在執行文件,目錄,Socket,符號鏈接,管道名稱名稱,各自加上"*""/""@""|"號;
10 10 -g:列出文件或目錄的所屬羣組名稱,沒有對應的名稱時,則顯示羣組識別碼;
11 11 -i:不以階梯狀列出文件和目錄名稱;
12 12 -l:<範本樣式> 不顯示符號範本樣式的文件或目錄名稱;
13 13 -l:如遇到性質爲符號鏈接的目錄,直接列出該鏈接所指向的原始目錄;
14 14 -n:不在文件和目錄清單加上色彩;
15 15 -N:直接列出文件和目錄名稱,包括控制字符;
16 16 -p:列出權限標示;
17 17 -P:<範本樣式> 只顯示符合範本樣式的文件和目錄名稱;
18 18 -q:用「?」號取代控制字符,列出文件和目錄名稱;
19 19 -s:列出文件和目錄大小;
20 20 -t:用文件和目錄的更改時間排序;
21 21 -u:列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼;
22 22 -x:將範圍侷限在現行的文件系統中,若指定目錄下的某些子目錄,其存放於另外一個文件系統上,則將該目錄予以排除在尋找範圍外。
23 
24 tree參數

設置主機名

[root@localhost /tmp]#hostnamectl set-hostname xixixi
[root@xixixi ~ ]#hostname
xixixi

  DNS

DNS(Domain Name System,域名系統),萬維網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,
  而不用去記住可以被機器直接讀取的IP數串。 經過域名,最終獲得該域名對應的IP地址的過程叫作域名解析(或主機名解析)。

  查看Linux的dns,惟一配置文件

複製代碼
配置文件
cat /etc/resolv.conf
#dns服務器地址
nameserver 119.29.29.29
nameserver 223.5.5.5

# 咱們遇到過qq能上去可是百度上不去的狀況吧,這就是有dns搞的鬼, 咱們須要按照如下作法:
vim  /etc/resolv.conf
nameserver  114.114.114.114     # 這個是114dns服務器

# 223.5.5.5 和 223.6.6.6 是阿里的dns服務器
複製代碼

  nslookup命令

#解析
nslookup www.baidu.com

  計劃任務crond服務

    其實就是定時任務

crontab命令被用來提交和管理用戶的須要週期性執行的任務,與windows下的計劃任務相似

  參數

複製代碼
crontab (選項)(參數)
-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u<用戶名稱>:指定要設定計時器的用戶名稱。

存放定時任務的文件
/var/spool/cron
複製代碼

  注意:

複製代碼
1. 查看計劃任務的執行: tail  -f  /var/log/cron
2.寫計劃任務時,命令必須加上絕對路徑,不然會出現 "從日誌中看,確實觸發了計劃任務的執行,可是命令沒有成功" 的狀況
3.計劃任務執行的命令是否存在,軟件是否安裝   查看:rpm -qa | grep cron
4.確保crontab服務運行
  systemctl status cron
  ps -ef | grep crond
複製代碼

  5.檢查crontab是否開機

systemctl is-enabled crond

  crontab配置文件

複製代碼
在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *   command to be executed
 分 時  日 月  周
複製代碼

 

  示例:

複製代碼
# 全部命令都要用絕對路徑寫
crontab  -e   # 進入編輯計時器設置
# 每週一到週五的晚上11點,清空/tmp目錄下的全部文件
00  23  *   *   1-5   /user/bin/rm -rf   /tmp/*
#  清空指令rm也須要找到它的絕對路徑, 而後tmp下的文件也要絕對路徑

# 每週3和周5的凌晨1點,備份/var/log 到 /vmtp/
00 01  * *  3,5   /usr/bin/cp  /var/log   /vmtp/  # which cp  找到cp指令的所在位置

# 每隔三分鐘同步一下時間
*/3  *  *  *  *    /usr/sbin/ntpdate ntp1.aliyun.com

-   # 表示範圍 3-5  就是3到5
,   # 表示和的意思  3,5  就是3和5
/   # 表示每多長時間    */3  每3(分,時,日,月,周) 
複製代碼

   yum 命令

    yum解決了依賴關係,提供了查找,安裝,刪除某一個,一組,甚至是所有軟件的命令

複製代碼
yum(選項)(參數)
-h:顯示幫助信息;
-y:對全部的提問都回答「yes」;
-c:指定配置文件;
-q:安靜模式;
-v:詳細模式;
-d:設置調試等級(0-10);
-e:設置錯誤等級(0-10);
-R:設置yum處理一個命令的最大等待時間;
-C:徹底從緩存中運行,而不去下載或者更新任何頭文件
複製代碼

  實例

部分經常使用的命令包括:

自動搜索最快鏡像插件    yum install yum-fastestmirror

五 . yum配置

    yum源的目錄

#進入yum源目錄
cd /etc/yum.repos.d/
#查看yum源文件
ls -l

    配置阿里雲yum源

複製代碼
1.好習慣,備份yum源
mkdir repo_bak
mv *.repo repo_bak/
2.下載阿里雲repo文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3.清空yum緩存而且生成新的yum緩存
yum clean all
yum makecache
4.安裝軟件擴展源
yum install -y epel-release
複製代碼

 

複製代碼
yum repolist all        # 列出全部倉庫
yum list all             # 列出倉庫全部軟件包
yum info 軟件包名          #  查看軟件包信息
yum install 軟件包名       # 安裝軟件包
yum reinstall 軟件包名    # 從新安裝軟件包
yum update    軟件包名      #  升級軟件包
yum remove    軟件包名       # 移除軟件包
yum clean all               # 清楚全部倉庫緩存
yum check-update          # 檢查能夠更新的軟件包
yum grouplist                    # 查看系統中已安裝的軟件包
yum groupinstall 軟件包組    # 安裝軟件包組
複製代碼

 

六 . 必須掌握的/etc下的Linux目錄知識

/etc:
這個目錄用來存放全部的系統管理所須要的配置文件和子目錄
複製代碼
#網卡配置文件
/etc/sysconfig/network-script/ifcfg-eth0
#修改機器名以及網卡,網管等配置
/etc/sysconfig/network
#linux的dns客戶端配置文件,實現域名和ip的互相解析
/etc/resolv.conf
#本地dns解析文件,設定ip和域名的對應解析,開發測試最經常使用的臨時域名解析
/etc/hosts/
#系統全局環境變量永久生效的配置文件,如PATH等
/etc/profile
#用戶的環境變量
~/.bash_profile 
~/.bashrc
#存放可執行程序的目錄,大可能是系統管理命令
/usr/sbin
#存放用戶自編譯安裝軟件的目錄  > 等同於C:\Program files (windows)
/usr/local
#關於處理器的信息,還能夠top指令查看
/proc/cpuinfo
#查看內存信息,還能夠free -m
/proc/meminfo 
複製代碼

七 . Linux下安裝程序的方法

rpm  -ivh  包名.rpm    # 須要手動解決依賴關係
yum  install  包名     # yum自動處理依賴關係
編譯安裝(源碼安裝)

八 . 服務器沒法上網錯誤

1.yum報錯
    Error couldn't resolve host 'mirrorlist.centos.org'
2.ping www.baidu.com 看是否能上網
3.若是百度不通,ping ip通了
ping 119.29.29.29  ,說明dns有問題
相關文章
相關標籤/搜索