運維02 Shell基礎命令(一) Shell基礎命令(一)

Shell基礎命令(一)

 

Shell 教程

Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。php

Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶經過這個界面訪問操做系統內核的服務。html

Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一個典型的圖形界面 Shell。java

Shell 在線工具python


Shell 腳本

Shell 腳本(shell script),是一種爲 shell 編寫的腳本程序。linux

業界所說的 shell 一般都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不一樣的概念。nginx

因爲習慣的緣由,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。shell


Shell 環境

Shell 編程跟 java、php 編程同樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就能夠了。編程

Linux 的 Shell 種類衆多,常見的有:vim

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
  • ……

 

Shell 基本命令

快捷鍵bash

1.tab鍵    用於自動補全命令/文件名/目錄名
2.ctrl + l  清理終端顯示 
3.clear/cls  清理終端顯示
4.ctrl + c 終止當前操做
echo命令

 

普通用戶跟root切換 su:

# 切換到普通用戶:su 用戶名
# 切換到root用戶:su
[root@localhost test]# su lrj
[lrj@localhost /]$ su
Password: 
[root@localhost /]# 

 


 

建立目錄:

複製代碼
[root@localhost /]# mkdir qiyue
[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  oldboy  opt  proc  qiyue  root  run  sbin  srv  sys  tmp  usr  var
# 在qiyue目錄下遞歸建立目錄 a/b c/d /子目錄

 [root@localhost /]# cd qiyue/
 [root@localhost qiyue]# mkdir a/b c/d
 [root@localhost qiyue]# mkdir -p a/b c/d
 [root@localhost qiyue]# ls
 a c
 [root@localhost qiyue]# cd a  # 改變當前的目錄/位置
 [root@localhost a]# ls
 b
 [root@localhost a]# cd ../c
 [root@localhost c]# ls
 d

#遞歸建立test/a,b,c,d四個目錄 {}同級

 [root@localhost qiyue]# mkdir -p test/{a,b,c,d}
 [root@localhost qiyue]# ls  # 查看當前目錄下的全部文件
 a c test
 [root@localhost qiyue]# ls test #顯示/test下的內容(查看指定目錄下的全部內容)

 a b c d

[root@localhost qiyue]# pwd # 打印當前工做目錄
/qiyue
複製代碼
 
 
        

文本編輯:
複製代碼
vi # 記事本打開
vim # notepad++ 打開
使用vi打開oldboy.py,默認是命令模式,須要輸入a/i進入編輯模式,而後輸入文本"Life is short,i use python"
按下esc鍵,回到命令模式
輸入  :wq!  強制保存退出
w write 寫入
q quit 退出
! 強制
或者  :x 保存退出
------
:q  不保存退出
:q! 不保存強制退出
複製代碼

 


 

 

查看純文本內容: cat

[root@localhost qiyue]# cat liu.txt 
今天學習linux中的Shell命令.
[root@localhost qiyue]# 

 

more命令

1.more命令用於查看內容較多的文本,例如要看一個很長的配置文件,cat查看內容屏幕會快速翻滾到結尾。

2.more命令查看文本會以百分比形式告知已經看到了多少,使用回車鍵向下讀取內容

more /etc/passwd
按下空格space是翻頁
按下b鍵是上一頁
回車鍵向下讀取內容

 


 

移動, 更名:mv

將liu.txt 移動到test目錄下, 將test目錄下的a改爲aa

複製代碼
[root@localhost qiyue]# ls
a  c  liu.txt  test
[root@localhost qiyue]# mv liu.txt test
[root@localhost qiyue]# ls
a  c  test
[root@localhost qiyue]# ls test
a  b  c  d  liu.txt
[root@localhost qiyue]# cd test/ [root@localhost test]# mv a aa [root@localhost test]# ls aa b c d liu.txt [root@localhost test]#
複製代碼

 


 

 

刪除命令rm:

複製代碼
[root@localhost test]# rm liu.txt # #默認有提示刪除,須要輸入y, 加上參數-f 不提醒
rm: remove regular file ‘liu.txt’? y
[root@localhost test]# ls
aa  b  c  d
[root@localhost test]# rm -rf b #rm默認沒法刪除目錄,須要跟上參數-r
[root@localhost test]# ls
aa  c  d


rm -rf /* # 跑路跑路跑路跑路跑路跑路跑路跑路跑路跑路
 
         
複製代碼

 

echo命令

echo命令用於在終端輸出字符串或變量提取後的值,格式是「echo 【字符串|$變量】」

#默認吧內容顯示到終端上    
echo "七月"
#把「七月」寫入到文件裏!
echo "七月" > /tmp/qiyue.txt
echo $PATH #取出打印PATH的值

 

查找

複製代碼
#Linux裏如何找到須要的文件 例如 oldboy.py
find 在哪裏(目錄) 什麼類型(文件類型) 叫什麼名字(文件名)
參數

-name 按照文件名查找文件
-type 查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號連接文件。
f - 普通文件。
s - socket文件


find /tmp/ -type f  -name "oldboy.py"

#找出/tmp全部以 .txt 結尾的文件
find /tmp/ -type f -name "*.txt"

#找到/etc下全部名字以host開頭的文件
find /etc -name 'host*'

#找到/opt上一個名爲settings.py
find /opt -name 'settings.py'
複製代碼


管道命令: |

複製代碼
Linux提供的管道符「|」講兩條命令隔開,管道符左邊命令的輸出會做爲管道符右邊命令的輸入。
常見用法:
#檢查python程序是否啓動
ps -ef|grep "python"

#找到/tmp目錄下全部txt文件
ls /tmp|grep '.txt'

#檢查nginx的端口是否存活
netstat -tunlp |grep nginx
複製代碼

 

grep

複製代碼
語法:
grep [參數] [--color=auto] [字符串] filename
參數詳解:
-i : 忽略大小寫
-n : 輸出行號
-v : 反向選擇
--color = auto : 給關鍵詞部分添加顏色

grep "我要找什麼" /tmp/oldboy.txt
#排除 -v,排除我要找的東西
grep -v "我要找什麼 /tmp/oldboy.txt
複製代碼

 

head、tail命令

複製代碼
head顯示文件前幾行,默認前10行
tail顯示文件後幾行,默認後10行
#查看前兩行
head -2 /tmp/oldboy.txt
#查看後兩行
tail -2 /tmp/oldboy.txt
#持續刷新顯示
tail -f xx.log

#顯示文件10-30行
head -30 /tmp/oldboy.txt |tail -21
複製代碼

 

 
 
標籤:  Linux
相關文章
相關標籤/搜索