Linux我的學習筆記,不按期更新

如何解決虛擬機正在被使用問題:將後綴爲vmx.lck文件刪除 php

Linux的使用


當更改某項配置時,先查看腳本文件有無相關設置.(系統配置腳本文件在/etc,用戶配置文件在~)java

查看當前目錄pwd

查看版信息

cat /etc/redhat-release

cat /etc/issue node

  • 查看正在運行的內核版本python

    cat /proc/version mysql

  • -bash:........
    bash 是shell的名稱

help與man page 以及/usr/share/doc


help給出的是指令的參數和所具有的選項
man是詳細說明(q結束) linux

  • man page數字的含義正則表達式

    1. 指令或執行文件
    2. 系統核心可調用的函數與工具
    3. 一些經常使用的函數(function)與函數庫(library)
    4. 設備文件的說明,一般在/dev下的文件
    5. 配置文件或者文件格式
    6. 遊戲
    7. 管理與協議
    8. 管理員能夠用的指令

    文件內容的權限


    注意全部的權限都是針對文件內容的權限(針對裏面的東西)
    r:文件的內容可視
    w:文件的內容可控制
    x:文件的內容可執行sql

  • chgrp 更改文件所在組shell

    chgrp [-R] groupName file數據庫

  • chown 更改文件擁有者

    chown [-R] userName file

  • chmod 更改文件權限
    1)數字:r=4 w=2 x=1 可讀可寫可執行r+w+x=7
    2) 字符:分三種身份u,g,o,a是全部身份 三種權限r,w,x 。設置=,添加+,除去-

    chmod 770 fileName
    chmod u=rwx,o=x fileName

  • 複製cp(注意複製事後修改權限)

    cp file newFile

建立/刪除目錄

  • mkdir directory 建立新目錄
  • rmdir directory 刪除目錄

    複製,刪除,移動

  • cp(複製文件或者目錄)

    cp [-adfilprsu] source destination
    cp [options] source1 source2 source3..directory //多個源文件時最後的目標文件必定要是一個目錄

    1. -a:至關於-dr --preserve=all的意思。
    2. -d:若源文件爲連接文件,則複製鏈接文件屬性而非連接指向的文件自己。
    3. -r:遞迴持續複製,用於複製目錄。
    4. -f:force強制複製,若文件已存在且沒法打開,則移除後再嘗試一次。
    5. -i:詢問複製,若文件已存在,再覆蓋前會詢問
    6. -p:所有複製,連同文件的屬性一塊兒複製,不使用默認屬性,經常使用於備份。
    7. -l:進行硬式連接文件(hard link)建立,而非文件自己
    8. -s:複製成爲快捷方式,符號連接文件(symbolic link)
    9. -u:目標文件比源文件舊才複製更新
    10. --preserve=all:除了-p的權限相關參數外,還加入SELinux的屬性,links,xattr等也複製了。

複製時要了解:是否要完整複製信息,是不是鏈接文件,是否爲目錄

  • rm(移除文件或目錄)

    rm [-fir] 文件或目錄

  1. -f:force強制刪除,不會存在警告訊息。
  2. -i:互動模式,在刪除前會詢問使用者是否動做。
  3. -r:遞迴刪除,經常使用於刪除目錄,影響比較大。
    (rmdir僅適用於刪除空文件夾)
    -r與-f要謹慎使用
  • mv(移動文件與目錄,或改名)

    mv [-fiu] source destination

  1. -f:force強制,若是目標已存在,不詢問直接覆蓋。
  2. -i:詢問模式,若是目標已存在會詢問。
  3. -u:若目標已存在,且source比較新纔會更新。

多個源文件時目標文件必定是目錄,可用於變動文件名

文件內容查詢

  • cat(concatenate)直接檢視文件內容

    cat [-AbEnTv]

  1. -A:至關於-vET的整合選項,可列出一些特殊字符而不是空白而已
  2. -b:列出行號,僅針對非空白行作行號顯示。
  3. -E: 將結尾的斷行字符$顯示出來
  4. -n:打印出行號,連同空白行也會有行號
  5. -T:將[tab]按鍵以^I顯示出來
  6. -v:列出一些看不出來的特殊字符

從第一行開始顯示文件全部內容,不適合長文本

  • tac(反向列示與cat相反)

    tac

  • nl(添加行號打印)

    nl [-bnw] 文件

  1. -b:指定行號指定的方式,主要有兩種:
    -b a:不管是否爲空行,也一樣列出行號
    -b t:空行不列行號(默認值)
  2. -n:列出行號表示的方法,主要有三種:
    -n ln:行號在屏幕最左方顯示
    -n rn:行號在本身字段最右方顯示,且不加0
    -n rz:行號在本身字段的最右方顯示,加0
  3. -w:行號字段佔用的字符數。
    爲顯示內容自動添加行號,並對行號有更多操做

可翻頁檢視

  • more(一頁頁翻動)
    空白鍵:向下翻頁
    Enter:向下一行
    /字串:從當前顯示的內容中,向下搜索「字串」 ,重複搜同一內容按n
    :f:顯示文件名以及當前行
    q:退出
    b:往回翻頁

  • less(一頁頁翻動)比more更靈活
    空白鍵:向下翻頁
    上下鍵:向上向下一行
    /字串:向下搜索
    ?字串:向上搜索
    n:重複上一個搜索操做
    N:反向重複上一個操做
    g:跳到第一行
    G:跳到最後一行
    q:退出

數據提取

  • head(提取前面幾行)

    head [-n number] 文件

-n:後面接數字,表明顯示幾行
默認顯示前十行

  • tail(提取後面幾行)
    -n:後面接數字,表明顯示幾行
    -f:表示持續監測後面所接的文件名,CTRL-c終止(用於持續監控)

    tail [-n number]文件
    tail -n +100 /etc/man_db.conf 用來顯示100行之後的全部內容

注意-f的用法和顯示多少行後的內容的用法
示例:查看11到20行

head -n 20 /etc/man_ | tail -n 11

非純文本文件od(查看可執行文件)

因爲可執行文件一般是binary file,使用其餘指令查看一般會出現亂碼的數據,因此用od。

od [-t TYPE] 文件

參數:
-t:後面接各類類型的輸出,例如:
a:利用默認的字符來輸出
c:使用ASCII來輸出
d[size]:利用十進制輸出數據,每一個整數佔用size Bytes;
f[size]:利用浮點數來輸出,每一個浮點數佔用size Bytes;
o[size]:利用八進制來輸出,每一個整數佔用size Bytes;
x[size]:利用十六進制來輸出數據,每一個整數佔用size Bytes;
注意:默認是十六進制類型輸出!能夠選擇多種輸出類型並進行比較
將/etc/issue這個文件的內容以8進位列出存儲值與ASCII的對照表:

od -t oCc /etc/issue

修改文件時間或建立新文件 touch

  • 三個主要的時間參數:
    1)modification time (mtime):文件內容變動時
    2)status time(ctime):文件狀態 (權限或屬性)變動時
    3)access time(atime):文件內容被讀取時
    一個文件被徹底複製(cp -a),ctime會是當前時間
    例子:

    date; ls -l /etc/man-db.conf ; ls -l --time=atime /etc/man-db.conf ;ls -l --time=ctime /etc/man-db.conf

默認狀況下ls顯示的是mtime

  • touch

    touch [acdmt] file

選項與參數:
-a:僅修訂access time(atime)
-c:僅修改文件的時間,若文件不存在則不建立文件
-d:能夠指定修改時間而不用當前的時間
-m:僅修改mtime
-t:能夠指定修改時間而不用當前的時間
不論怎麼更改時間,ctime總記錄當前時間

touch testTouch

在默認狀態下會將文件的三個時間刷新爲當前時間,若文件不存在,則建立一個新的空文件

默認權限與隱藏權限


  • 文件的默認權限是:讀、寫。即:-rw-rw-rw-
  • 目錄的默認權限是:讀、寫、執行。即:drwxrwxrwx
    在不一樣的用戶須要有不一樣的默認權限,使用umask進行限定
  • umask
    例如:

    [admin@localhost Desktop]$ umask
    0002
    [admin@localhost Desktop]$ umask -S
    u=rwx,g=rwx,o=rx

//在admin用戶下默認權限是u=rwx,g=rwx,o=rx;使用數值顯示就是0002(使用的減法,o-2的意思)若是是root則是0022
設置默認權限:

umask 002 //將當前用戶的默認權限設置爲o-w

  • 文件的隱藏權限及其設置
    1 SUID(4)
    2 SGID(2)
    3 SBIT(1)
    設置方法:三個在基本權限前加數字

指令與文件的搜索

  • 指令文件所在目錄的搜索 which和type

    [admin@localhost Desktop]$ which ifconfig
    /sbin/ifconfig
    [admin@localhost Desktop]$ type ifconfig
    ifconfig is /sbin/ifconfig

which -a command 將全部由PATH目錄中能夠找到的指令均列出(不加-a的話查找到一個就結束了)
注意:which是從PATH目錄中查找,若是是bash內置的指令將查找不到

  • 根據文件名搜索文件所在目錄有whereis、locate、find(不經常使用)。

    1. whereis 從一些特定的目錄中尋找文件(因此比較快)

      whereis [ -sbmu ] name.....

      -l:列出從哪些目錄中搜索
      -b:只找binary(二進制)格式的文件//可執行文件
      -m:只找在說明文檔manual路徑下的文件
      -s:只找source來源文件
      -u:搜索不在上述三個項目當中的其餘特殊文件

  • locate 根據/var/lib/mlocate內的數據庫記錄,查找相關的文件
    第一次執行的時候沒有數據庫文件,先updatedb生成數據庫文件。注意:若是未查找到文件多是數據庫還沒有更新
    -i:忽略大小寫差別
    -c:不輸出文件名,只統計文件的數量
    -l:設置僅輸出幾行信息
    -S:輸出所使用的數據庫文件的相關信息
    -r:後面可接正則表達式的顯示方式
  • updatedb 根據/etc/updatedb.conf的設置去尋找系統盤內的文件名,並更新/var/lib/mlocat內的數據庫文件

  • find是個很強大的搜索指令,但消耗硬盤資源較大。
    find [PATH][option][action]
    選項與參數:

    1. 與時間有關的選項:共有-atime,-ctime,-mtime,以-mtime說明
      -mtime n:在n天以前的「一天以內」被更動過內容的文件;
      -mtime +n:在n天以前(不含n天)被更動過的文件;
      -mtime -n:在n天以內(含n天)被更動過的文件;
      -newer file:列出比file還要新的文件
      舉例:
      列出24小時內更動過的文件

      find / -mtime 0

      //0是重點,表明當前的時間,意思是當前一天內被更動過的文件
      尋找/etc下比/etc/passwd新的文件

      find /etc -newer /etc/passwd

    2. 與使用者或羣組名稱有關的參數:
      -uid n:UID記錄在/etc/passwd裏
      -gid n:GID記錄在/etc/group
      -user name:使用者的帳號名稱
      -group name:羣組名稱
      -nouser:尋找文件的擁有者不存在/etc/passwd的文件
      -nogroup:尋找文件的所在組不存在於/etc/passwd的文件
      (當自行安裝軟件時極可能屬性當中並無擁有者)
    3. 與文件權限及名稱有關的參數:
      -name filename :搜尋文件名稱爲filename的文件;
      -size [+-] SIZE :搜尋比SIZE還要大(+)小(-)的文件
      SIZE的規格有:
      c:表明Byte,k:表明1024Bytes(KB)

-   ifconfig已通過時了,查看ip地址或者ip鏈接使用ip  
-   ip -s addr 查看IP地址信息

關於服務

  • 服務
    1. 查看開啓的服務
      遍歷全部的服務:service --status-all
      查看某個服務的運行狀態:service servcieName status
    2. 開啓服務
      service serviceName start
    3. 查看開機自啓的服務
      chkconfig --list
      chkconfig --list serviceName
    4. 更改開機自啓的服務
      增長服務chkconfig --add xxx

1啓動一個服務:systemctl start firewalld.service
2關閉一個服務:systemctl stop firewalld.service
3重啓一個服務:systemctl restart firewalld.service
4顯示一個服務的狀態:systemctl status firewalld.service
5在開機時啓用一個服務:systemctl enable firewalld.service
6在開機時禁用一個服務:systemctl disable firewalld.service
7查看服務是否開機啓動:systemctl is-enabled firewalld.service;echo $?
8查看已啓動的服務列表:systemctl list-unit-files|grep enabled




設置文件能夠更改不可刪除chattr +a

chattr +a能夠設置文件或者文件夾能夠增改但沒法刪除,實際使用時要用管理員權限,有個問題:

sudo chattr +a 文件名

當設置某個文件時,會使文件沒法刪除的同時變得不可被更改,管理員權限也沒用

sudo chattr +a 文件夾名稱

設置某個文件時能夠達到文件夾內的文件沒法被刪除並且還能夠更改的效果



Debian linux上安裝MySQL數據庫

程序安裝目錄:/usr/local/program
數據安裝目錄:/data/mysql

sudo dpkg -i mysql-common_5.6.28-1ubuntu14.04_amd64.deb
sudo dpkg -i libmysqlclient18_5.6.28-1ubuntu14.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.6.28-1ubuntu14.04_amd64.deb
sudo dpkg -i libmysqld-dev_5.6.28-1ubuntu14.04_amd64.deb
mysql-community-client_5.6.44-1debian9_amd64.deb
sudo dpkg -i mysql-community-server_5.6.44-1debian9_amd64.deb


設置靜態地址

/etc/sysconfig/net.../第一個
更改主機名稱
hostnamectl set-hostname Name
將主機名與地址綁定
/etc/hosts
經過ssh鏈接其餘Linux系統
ssh admin@192.168.56.13


遠程鏈接上傳下載文件

經過scp從其餘Linux上傳下載文件

一、從服務器上下載文件
scp username@servername:/path/filename /var/www/local_dir(本地目錄)

例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下載到/var/www/local_dir(本地目錄)

二、上傳本地文件到服務器
scp /path/filename username@servername:/path

例如scp /var/www/test.php root@192.168.0.101:/var/www/ 把本機/var/www/目錄下的test.php文件上傳到192.168.0.101這臺服務器上的/var/www/目錄中

三、從服務器下載整個目錄
scp -r username@servername:/var/www/remote_dir/(遠程目錄) /var/www/local_dir(本地目錄)

例如:scp -r root@192.168.0.101:/var/www/test /var/www/

四、上傳目錄到服務器
scp -r local_dir username@servername:remote_dir
例如:scp -r test root@192.168.0.101:/var/www/ 把當前目錄下的test目錄上傳到服務器的/var/www/ 目錄


重啓防火牆

firewall-cmd --reload #重啓firewall
systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
firewall-cmd --state #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running)


安裝配置jdk

  1. 使用rpm查看已安裝的程序

    rpm -qa 查看全部已安裝的程序
    rpm -qa | grep java 經過管道「|」使用grep文本篩選查看安裝的全部名字裏有java的程序
    結果以下:
    java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
    python-javapackages-3.4.1-11.el7.noarch
    tzdata-java-2016g-2.el7.noarch
    javapackages-tools-3.4.1-11.el7.noarch
    java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
    java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
    java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
    要刪除「java-」開頭的4個程序,更改篩選條件
    rpm -qa | grep ^java-
    java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
    java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
    java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
    java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
    rpm -qa | grep ^java- |xargs rpm -e --nodeps 將查詢結果使用通道」|「交給過濾器」xargs「處理爲爲參數交給」rpm -e --nodeps「刪除掉
    rpm -qa | grep ^java- 再檢查一遍是否真的刪除了

  2. 配置環境變量

    vi /etc/profile添加:export JAVA_HOME=/usr/soft/jdk1.8.0_111export PATH=$PATH:$JAVA_HOME/binsource /etc/profile 使配置文件當即生效

相關文章
相關標籤/搜索