linux零基礎入門總結

啊,notepad++貼過來怎麼對齊格式這麼糟糕呢?java

#root用戶
$普通用戶
 
linux命令
清屏clear翻頁清屏  CRT中ctrl+L
   reset"清空
CRT中不起做用"
建立用戶useradd a建立用戶名爲a的用戶
設置密碼passwd a設置用戶a的密碼(輸入密碼時內容顯示)
切換用戶su        切換到root,需密碼
               su - a切換到用戶a,無需密碼
pwd當前所在目錄
主機名hostname    查看主機名
hostname xxxx臨時設置主機名爲xxx
vi /etc/sysconfig/network
hostname=xxxxx
在root用戶下永久設置主機名爲xxx
vi /etc/hosts
IP+空格+主機名
關機重啓
        halt        關機(root)
   reboot或init 6重啓(root)
 
SSH 登陸
查看IP    ipconfigwindows的命令
ifconfiglinux的命令
   網絡設置建議使用NAT模式
   靜態IP    address    前三段和ifconfig獲得的一致,最後一段任意
   netmask    255.255.255.0
gateway    VMware——編輯——虛擬機網絡編輯器——NAT模式——NAT設置——網關
DNS        和gateway一致或8.8.8.8
           (bridge模式用win下的DNS地址)
HWADDR      其實就是MAC地址
ping IP地址/域名/主機名
           測試可否連通對應的地址
          (注意關閉防火牆)
 
secureCRT
    修改hosts文件  C:\Windows\System32\drivers\etc
             (如不能保存請賦予當前用戶權限)
              IP+空格+帶域名的主機名+簡寫的主機名
端口   22(filezilla、notepad++也是)
協議       SSH2(notepad++是SFTP)
須要:       win的hosts文件配置+linux的靜態IP配置+network文件配置
          主機名、用戶名和密碼
自定義
       配色方案ANSI+使用配色方案打鉤
   編碼    UTF-8(linux中中文文件在CRT中顯示亂碼問題沒解決)
   字體大小
Xmanager4遠程界面工具的端口是22,協議是SFTP
Ctrl+C     中斷程式的執行
Ctrl+Z       暫停程式的執行,稍後能夠按下fg或bg命令繼續.
Ctrl+S       屏幕暫停輸出
Ctrl+Q       屏幕恢復輸出SSH 登陸C:\Windows\System32\drivers\etc
 
secureCRT
    修改hosts文件
             (如不能保存請賦予當前用戶權限)
              IP+空格+帶域名的主機名+簡寫的主機名
端口   22(filezilla、notepad++也是)
協議       SSH2(notepad++是SFTP)
須要:       win的hosts文件配置+linux的靜態IP配置+network文件配置
          主機名、用戶名和密碼
自定義
       配色方案ANSI+使用配色方案打鉤
   編碼    UTF-8(linux中中文文件在CRT中顯示亂碼問題沒解決)
   字體大小
Xmanager4遠程界面工具的端口是22,協議是SFTP
Ctrl+C     中斷程式的執行
Ctrl+Z       暫停程式的執行,稍後能夠按下fg或bg命令繼續.
Ctrl+S       屏幕暫停輸出
Ctrl+Q       屏幕恢復輸出
 
文件和目錄
目錄
.     當前目錄
..  上級目錄
cd    change directory
 單獨cd 進入當前用戶主目錄
 cd+目錄名 進入指定目錄
查看
ls    單獨使用,或ls+目錄路徑
ll    更詳細,等價於ls -l
ls -a 顯示隱藏的文件夾(.開頭)
    類型
          -文件
 d  目錄
 l 連接
歸屬
 u所屬用戶 user
 g同組用戶 group
 o其餘 other
 
    文件權限
     r     可讀     2^2     4
 w 可寫 2^1 2
 x可執行   2^0 1   
 - 無權限
 rw-   ->  4+2+0=6  
 修改權限
 chmod (change mode)
 chmod 歸屬者加號權限字母 被修改權限的文件
加號 增長某權限
減號 減去某權限
歸屬者加號權限字母也可使用一組數字代替
 如    chmode u+x readme.txt 
       chmode 664 readme.txt 修改u和g的權限爲rw-,o的權限爲r--
chmod -R 664 /opt/softwares
  修改目錄下的子文件/目錄的權限爲664(-R表示遞歸)
 修改歸屬者
chown 新的全部者用戶 被修改的文件
chown 新的全部者用戶:新的所屬組 被修改的文件
     chown beifeng /home/hive-select-log.sql
 修改所屬用戶爲beifeng
 chown -R beifeng /opt/softwares
 修改目錄下的全部的所屬用戶爲beifeng
 chown senior:senior /home/hive-select-log.sql
 修改所屬用戶和組都爲beifeng
chgrp 新的全部者用戶 被修改的文件
 chgrp beifeng /home/hive-select-log.sql
 修改所屬組爲beifeng
建立文件/目錄
         建立文件
       touch touch+文件名+後綴名 建立文件
       (雖無後綴名之別,但總要區分)
            建立目錄
   mkdir test
mkdir -p ~/data/dfs/tmp
     建立多級目錄
複製文件
cp 源文件src 目標目錄destdir
   1 /xxx    表示在主目錄下的xxx目錄(無權限被拒)
2 ./xxx   表示當前目錄的xxx目錄下面
         xx要存在,不然寫./xxx/報錯(沒法建立xxx)
 如xx不存在,寫./xxx,不保存,但建立了xx文件(內容複製過去了)
拷貝的時候建議寫全目錄
 
dest:文件/目錄
   目錄:拷貝一個文件到一個目錄dest中去
 cp test.txt test-dir
   文件時,拷貝一個文件的內容至一個文件dest中
                          cp test.txt cp-test.txt
         若是該文件dest不存在,
 則建立該文件並將source中的內容拷貝到這個文件
   source:文件名/目錄名
目錄:將一個目錄拷貝到另外一個目錄中去
     若是dest目錄存在
 cp -r test-dir test-dir2
 拷貝test-dir目錄到一個名爲test-dir2的目錄下
 若是dest目錄不存在
     cp -r test-dir test-dir2
     test-dir2不存在,則會建立並拷貝test-dir中的內容過去
    不要寫成cp -r test-dir/ test-dir2
       而cp -r test-dir test-dir2/
 的意思是,拷貝目錄test-dir到目錄下
     -r的意思是遞歸(由於test-dir中可能有很深的層次)
 linux是嚴格區分大小寫的。
 在chmod中:-R, --recursive
 在cp中:   -R, -r, --recursiv
 因此建議統一使用-R,否則還覺得不區分呢
移動/重命名
mv src dest
重命名
src和dest在同一個目錄下則是重命名
$ mv test-dir/ sub-dir(目錄的重命名)
$ mv test.txt test.log(文件的重命名)
移動
src和dest不在同一目錄
$ mv test-dir2/sub-dir/ test-dir
將test-dir2目錄這的sub-dir目錄中的文件移動到test-dir目錄下
    查看文件內容
* cat  : 查看所有內容,內容比較少
         cat 文件名
* more :  翻頁查看
         按下空格,查看下一頁,向上滾動直接查看上面的 
 按下q退出
* tail :  末尾內容,一般與 -f參數連用,適合於查看服務實時動態日誌信息
         在正則中,\f是換頁符
tail -f xxxx.log
    默認的倒數x行
tail -200f yyy.log
    倒數200行
* head :  開頭文件,文件格式,內容模板樣式
修改文件內容
vi編輯——->vim
i           編輯插入
end鍵       行末
G           文件末
esc   退出編輯模式
:wq   保存
:q!或:q回車   不保存
echo "second line" >> test.txt 
追加新的一行內容(字符串"second line")到test.txt文件中
date >> bf-log.txt    向bf-log.txt文件中追加日期數據
            在vi查看模式下(沒按下i以前或者在按下i以後的編輯模式中按下esc)
* dd :表示刪除光標所在的行的內容
* ZZ :表示的是保存文件內容(要是大寫的,因此要打開大寫鎖定)
* x  :表示將光標處的字符給刪除
* o  : 表示在光標的下一行進行插入內容(自動跳到下一行的行首)
    
 
幫助
    nan 命令名
man中的相關操做
  ctrl + F或者Page Down:向下翻頁
  ctrl + B或者Page Up:向上翻頁
  gg到第一行
  GG到最後一行
  /start:能在整手冊中搜索start相關字符,使用n查找下一個,使用N查找上一個
  j,k與vi中同樣使用,j向下一行,k向上一行
  d下翻半頁
  u上翻半頁
  h獲取man使用幫助
  q退出man
    tab自動補全
 
系統信息:
uname  系統類型
uname -r   內核版本
cat /proc/cpuinfo   CPU信息
cat /proc/meminfo   內存信息
who                    顯示當前的終端
系統時間
            date查看當前的系統時間
date -R 顯示系統時間+市區
root用戶下:
hwclock 查看當前的硬件時間
cal+xx年xx月     顯示xx年xx月日曆
which date          查看date命令是在哪裏
date +%Y-%m-%d\ %H:%M:%S      使其格式化顯示: 年-月-日 時:分:秒
                         2016-07-08 14:09:17
                         注意上面因爲中間須要空格,因此加了轉義字符\
/bin/date +%Y-%m-%d\ %H:%M:%S
                         等價於上一條命令
/bin/date +%Y/%m/%d\ %H:%M:%S
                         2016Y/07/08 14:10:02
安裝軟件
rpm -qa|grep xxxx      查看都安裝了哪些版本的xxx軟件
            rpm -e --nodeps xxxxxx  強制卸載xxx軟件(所謂強制就是有依賴它的我也要卸載)
 查看幫助文檔能夠看到:
 --nodeps
              Don’t do a dependency check before installing or upgrading a package.
不檢查相關的依賴
rpm -ivh xxx.rpm               安裝rpm格式的軟件包
解壓/壓縮zip yy.zip file                將file壓縮爲名爲xxx.zip的文件
tar -zcvf zzzz.tar.gz dir   將dir目錄壓縮成zzzz.tar.gz
   unzip xxx.zip                  解壓
tar -zxvf xxxx.tar.gz          解壓到當前目錄
tar -zxvf xxxx.tar.gz -C dir   將dir目錄壓縮成zzzz.tar.gz
   -v, --verbose
                                       verbosely list files processed
  就是在屏幕上顯示解壓出來的那些文件,建議不用
安裝jdk     1下載tar.gz(1.7)
            2tar -zxf xxx.tar.gz -C 目錄
   3#vi /etc/profile    配置JAVA_HOME
export JAVA_HOME=xxxxx
export PATH=$PATH:$JAVA_HOME/bin
4source /etc/profile
5echo $JAVA_HOME     回顯
6java -version       檢驗
  
sudo權限    1# vi /etc/sudoers
               添加
  要設置權限的用戶的用戶名 ALL=(root)NOPASSWD:ALL
  如:test ALL=(root)NOPASSWD:ALL
  之後sudo+命令等價於在root下使用此命令
 
任務調度crontab
crontab -l列出目前全部的定時任務
crontab -r刪除全部的定時任務
crontab 基本定義
語法:
* * * * * command
說明:
1)六個字段之間,使用逗號隔開
2)字段的含義
*       *        *        *        *
分:1-59, 每十分鐘 */10
時:0-23,*/2
日:1 -31
 月:1-12
  星期:(0-6)
舉一些例子:
### 天天21:30 執行
30 21 * * * cmd01
 
### 每月1,11,21 的2:30執行
30 2 1,11,21 * * cmd02
 
### 每週六或者每週日,1:45 執行(星期一是0)
45 1 * * 6,0 cmd03
 
### 天天20:00至 23:00 ,每半個小時執行一次
0,30 20-23 * * * cmd04
或者寫
*/30 20-23 * * * cmd04
 
 
### 每一小時執行一次
* */1 * * *cmd05
爲何要加/呢?
*/1表示每一分鐘
1表示第一分鐘
 
Shell腳本
            #!         shell腳本第一行用其坐開頭指定用哪一個程序來編譯或執行該shell
name=hadoop 
          建立變量name,其值爲hadoop
  (等號先後不能有空格)
echo ${name}或echo name
  查看變量name的值
  (固然,若是我此時從新克隆一個窗口,那麼是不能引用到這些本地變量的)
  /etc/profile中存放的是系統的全局變量
.bash_profile
該文件在用戶主目錄下,能夠設置用戶的環境變量
testst.sh  一個名爲test的shell腳本文件(shell腳本文件以.sh結尾)
執行           . testst.sh 
              sh testst.sh
              bash testst.sh
          這裏的dot(表示執行)
  以上三種執行方式均可以(可能有細微差異)
bash testst.sh localprama1 參數值2
              運行testst.sh腳本,並傳入兩個參數值
bash testst.sh localprama1 " localprama2 key3"
                           當值中含有空格的時候,要用雙引號
${0}           在shell腳本中表示當前腳本的文件名
${1}           表示第一個參數(能夠理解爲傳入的值對於的變量吧)
              也可使用$1,可是推薦${1},由於0=9再日後就必須加花括號了
${#}   位置參量個數  
            echo $?        運行一條命令,緊接着運行此命令,
              能夠顯示剛剛運行的那條命令的狀態碼
  0表示成功,其餘表示有問題
數組
arr=(xuan lingya yu)
echo ${arr[2]}         查看數組中第三個元素的值(角標從0開始)
             yu
echo ${arr[*]}         查看數組中全部元素的值
             xuan lingya yu
echo ${#arr[*]}        數組元素的個數
             3
echo ${arr}            
             xuan
echo ${arr[0]}         數組名等價於數組中角標爲0的元素
             xuan
arr[0]=me   修改數組中元素的值
echo $arr
             me
            $(命令) 裏面寫的是命令
${變量} 裏面寫的是變量
            []的做用:判斷語句的true/fasle,等價於tes(細節比較多)
控制結構,仍是參考鳥哥的書吧,想系統的學習下的話
 





附件列表

相關文章
相關標籤/搜索