1. 程式人生 > >shell 指令 (一)

shell 指令 (一)



管道:cut join exec redirect    +preg
 
  //redirect : cat + > < >>  2>/dev/null tee
  cat test.sh test1.sh 2>/dev/null | grep -n 'echo'       
  ls test.sh test1.sh testsh.sh 2>err.txt | grep 'test'   
  grep -n 'echo' <test.sh                                 
  cat test.sh>test.txt                                 
  cat termcap* >> termcapback                           
  cat test.sh|tee -a test.txt &>/dev/null     <==> /dev/null 2>&1 正確和錯誤的資訊全部丟棄
  ls -l / | tee -a ~/homefile | more
 
  //execute : cat + sh mail tar rpm iconv xargs
  cat testpipe.txt | sh testpipe.sh                                    
  cat test.sh|mail -s 'test'
[email protected]
                            
  tar -cvf -packname filename| tar -xvf -(這個減號是取前面的輸出作為輸入)
  rpm -qa|grep licq                                                     
  iconv -f gb18030 -t utf-8 new-aa.txt                                 
  cut -d':' -f1 /etc/passwd | xargs -p -n 5  -e'lp' finger
  find /sbin -perm +7000 | xargs ls -l


  //join: join paste col more expand head  tr
  last | tr '[a-z]' '[A-Z]'
  cat /etc/passwd | tr -d ':' > /root/passwd.linux
  man col | col -b > /root/col.man
  cat /etc/man.config | col -x | cat -A | more
  paste /etc/passwd /etc/shadow
  cat /etc/group|paste /etc/passwd /etc/shadow -|head -n 3
  join -t ':' -1 4 /etc/passwd -2 3 /etc/group
  grep '^MANPATH' /etc/man.config | head -n 3 | \                 
  >expand -t 6 - | cat -A
 
  //cut:echo +cut split awk sort grep wc touch less
  wc -l lsroot*
  last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l
  grep --color=auto 'MANPATH' /etc/man.config
 touch `date +%Y%m%d%k%M%S`.txt
  ls -al /etc | less
  echo $PATH | cut -d ':' -f 3,5                    //3- 3.5  3-5
  export | cut -c 12-
  cat /etc/passwd | sort -t ':' -k 3 -n
  echo $PATH | cut -d ':' -f1 | sort | uniq -c
  split -b 300k /etc/termcap termcap
  split -l 10 /etc/termcap termcap  
  cat /etc/passwd | awk -F ':' '{print $1"\t"$2}'
  kill -9 `ps -ef | grep smbd | tr -s ' ' | awk -F' ' '{print $2}'`

  //preg
  (sed -n '1,$p'|grep -n 'echo')<test.sh #這個指令碼比較有意思了。由於前面是管道,後面需要把test.sh內容重定向到 sed ,然後sed輸出通過管道,輸入給grep.需要將前面用"()"運算子括起來。在單括號內的命令,可以把它們看作一個象一個命令樣。如果不加括號test.sh就是grep 的輸入了。
  #上面一個等同於這個
  sed -n '1,$p'<test.sh | grep -n 'echo'
  sed -n '1,10p'<test.sh | grep -n 'echo' <testsh.sh#哈哈,這個grep又接受管道輸入,又有testsh.sh輸入,那是不是2個都接收呢。剛才說了"<"運算子會優先,管道還沒有傳送資料前,grep綁定了testsh.sh輸入,這樣sed命令輸出就被拋棄了。這裡一定要小心使用
  cat filename |grep -v '^[0-9]*$' | sed 's/|/ /g' |sort -nrk 8 -nrk 9 |tail -n +1 |head -n 10




匯出:Mysqldump


1)全量 mysqldump -A -B
mysqldump -B (會建立庫表結構)   database1  database2   | 不加 -B,就是庫名 表1 表2
備份所有庫  -A
重新整理binlog引數 -F
備份表結構 -d
鎖表 -x
只備份資料  -t
只讀鎖表 -l

2)增量binlog
//binlog轉成sql
mysqlbinlog -d database mysql-bin.000014>bin.sql
//備份
mysqldump -uroot -proot —master-data=2  —events -single-transaction database gzip>/opt/all.sql.gz
—master-data 增加binlog 日誌檔名及對應的位置點,
 如果是2,就註釋掉了changemasterto  
 如果是1,就包含了changemasterto,找到了結合
-single-transaction 備份事務資料庫

匯入:mysqlimport loaddata source (/path/file.sql)


mysqlimport
mysqlimport Meet_A_Geek Customers.txt
注意:這裡Customers.txt是我們要匯入資料的文字檔案,而Meet_A_Geek是我們要操作的資料庫,資料庫中的表名是Customers,這裡文字檔案的資料格式必須與Customers表中的記錄格式一致,否則mysqlimport命令將會出錯。
其中表的名字是匯入檔案的第一個句號(.)前面檔案字串,

例子:匯入一個以逗號為分隔符的檔案檔案中行的記錄格式是這樣的:
"1", "ORD89876", "1 Dozen Roses", "19991226"
我們的任務是要把這個檔案裡面的資料匯入到資料庫Meet_A_Geek中的表格Orders中,我們使用這個命令:
bin/mysqlimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt
-prl的意思是-password replace lock

-d or --delete 新資料匯入資料表中之前刪除資料資料表中的所有資訊
-f or --force 不管是否遇到錯誤,mysqlimport將強制繼續插入資料
-i or --ignore mysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 匯入檔案中的資料將被忽略。
-l or -lock-tables 資料被插入之前鎖住表,這樣就防止了,你在更新資料庫時,使用者的查詢和更新受到影響。
-r or -replace 這個選項與-i選項的作用相反;此選項將替代表中有相同唯一關鍵字的記錄。
--fields-enclosed- by= char 指定文字檔案中資料的記錄時以什麼括起的, 很多情況下資料以雙引號括起。 預設的情況下資料是沒有被字元括起的。
--fields-terminated- by=char 指定各個資料的值之間的分隔符,在句號分隔的檔案中,分隔符是句號。您可以用此選項指定資料之間的分隔符。預設的分隔符是跳格符(Tab)
--lines-terminated- by=str 此選項指定文字檔案中行與行之間資料的分隔字串或者字元。 預設的情況下mysqlimport以newline為行分隔符。您可以選擇用一個字串來替代一個單個的字元:一個新行或者一個回車。
mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。


LOADDATA

LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;//讀取檔案
LOAD DATA INFILE "/home/Order.txt" INTO TABLE Orders(Order_Number, Order_Date, Customer_ID); //選取欄位
LOAD DATA LOCAL INFILE "C:\MyDocs\SQL.txt" INTO TABLE Orders; //讀取本地

LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Orders;//沒有其他使用者讀取後 寫入
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Orders; //替換

LOAD DATA INFILE "/home/mark/Orders.txt" REPLACE INTO TABLE Orders FIELDS TERMINATED BY ','
ENCLOSED BY '"';

和 Load Data InFile 相反的是 把表的資料匯出
Select * From `TableTest` Into OutFile 'C:/Data_OutFile.txt';


+mysqladmin

create databasename             建立一個新資料庫
drop databasename               刪除一個數據庫及其所有表
extended-status                 給出伺服器的一個擴充套件狀態訊息
flush-hosts                     洗掉所有快取的主機
flush-logs                      洗掉所有日誌
flush-tables                    洗掉所有表
flush-privileges                再次裝載授權表(同reload)
kill id,id,...                  殺死mysql執行緒
password                        新口令,將老口令改為新口令
ping                            檢查mysqld是否活著
processlist                     顯示服務其中活躍執行緒列表
reload                          過載授權表
refresh                         洗掉所有表並關閉和開啟日誌檔案
shutdown                        關掉伺服器
status                          給出伺服器的簡短狀態訊息
variables                       打印出可用變數
version                         得到伺服器的版本資訊

+mysqlshow

1. show tables或show tables from database_name; -- 顯示當前資料庫中所有表的名稱。
2. show databases; -- 顯示mysql中所有資料庫的名稱。
3. show columns from table_name from database_name; 或show columns from database_name.table_name; -- 顯示錶中列名稱。
4. show grants for user_name; -- 顯示一個使用者的許可權,顯示結果類似於grant 命令。
5. show index from table_name; -- 顯示錶的索引。
6. show status; -- 顯示一些系統特定資源的資訊,例如,正在執行的執行緒數量。
7. show variables; -- 顯示系統變數的名稱和值。
8. show processlist; -- 顯示系統中正在執行的所有程序,也就是當前正在執行的查詢。大多數使用者可以檢視他們自己的程序,但是如果他們擁有process許可權,就可以檢視所有人的程序,包括密碼。
9. show table status; -- 顯示當前使用或者指定的database中的每個表的資訊。資訊包括表型別和表的最新更新時間。
10. show privileges; -- 顯示伺服器所支援的不同許可權。
11. show create database database_name; -- 顯示create database 語句是否能夠建立指定的資料庫。
12. show create table table_name; -- 顯示create database 語句是否能夠建立指定的資料庫。
13. show engines; -- 顯示安裝以後可用的儲存引擎和預設引擎。
14. show innodb status; -- 顯示innoDB儲存引擎的狀態。
15. show logs; -- 顯示BDB儲存引擎的日誌。
16. show warnings; -- 顯示最後一個執行的語句所產生的錯誤、警告和通知。
17. show errors; -- 只顯示最後一個執行語句所產生的錯誤。
18. show [storage] engines; --顯示安裝後的可用儲存引擎和預設引擎。

相關推薦

shell 指令

管道:cut join exec redirect    +preg     //redirect : cat + > < >>  2>/dev/null tee   cat test.sh test1.sh 2>/dev/null | grep -n 'echo'  

常用指令

chmod fse 結構 inf 詳細信息 job scribe 目錄 whatis Kafka常用命令: Consumer##控制臺發送消息./kafka-console-producer.sh --broker-list 集群IP:Port --topic t

vue.js實戰學習——內置指令

name 初始 節點 刪除 html元素 data post 編譯 16px 註:此內容摘抄自:梁灝的《Vue.js實戰》 註:記得要引入vue.js才能運行哦,文章中貼出的代碼直接復制是不行的,html css js 都放在了一起,而且也沒有引用vue.js。 1.v

Linux基本指令

linux基本操作指令一、管理虛擬機 [kiosk@foundation20 Desktop]$ rht-vmctl start desktop //開啟虛擬機 [kiosk@foundation20 Desktop]$ rht-vmctl view desktop //顯示虛擬機 [ki

Linux系統 shell基礎編輯中

初始 輸入 分享 用戶命令 解釋器 sts ima 理解 操作 shell是操作系統中重要的應用,尤其對linux這種命令行模式的操作系統,shell具有重要的意義。 一、什麽是shell shell是一個命令解釋器,提供用戶和機器之間的交互。每次我們登錄系統後,出現的界面

shell學習

tdi 文件名 ash 設備 路徑 str 取字符串 黑洞 腳本 一、免密交互 --stdin 1、從標準輸入讀取字符串 如:passwd --stdin heruguo246 [root@localhost mnt]# passwd --stdin heruig

Shell練習

情況 read log 文件中 一個 false mozilla ash brush 習題1:每天生成一個文件要求:請按照這樣的日期格式(xxxx-xx-xx)每日生成一個文件,例如今天生成的文件為)2018-02-05.log, 並且把磁盤的使用情況寫到到這個文件中(不用

Linux shell 示例

echo -e linu 定義變量 cheng lee export let linux amd 一、環境系統:Centos6.6 x64shell:bash、sh [centos@Shell ~]$ hostname Shell [centos@Shell ~]$ ls

Linux下的基本指令

文章目錄 1.檔案系統層次結構 1.1根目錄下重要的目錄 2. 對目錄進行操作 2.1 樹狀目錄結構的解釋 2.2 目錄的基本命令 1. cp 指令:複製一個或多個檔案

Linux Shell命令簡介 變數

shell簡介 Shell本身是一個用C語言編寫的程式,它是使用者使用Unix/Linux的橋樑,使用者的大部分工作都是通過Shell完成的。Shell既是一種命令語言,又是一種程式設計語言。作為命令語言,它互動式地解釋和執行使用者輸入的命令;作為程式設計語言,它定義了各種變數和引數,並提供了

Shell入門Shell指令碼、環境

Shell 教程 Shell 是一個用C語言編寫的程式,它是使用者使用Linux的橋樑。Shell既是一種命令語言,又是一種程式設計語言。 Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。 Shell 指令碼 Shell

linux學習筆記之shell程式設計

shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則

shell 基礎

廢話少說 往下看 1. 檢視 Shell Shell 是一個程式,一般都是放在/bin或者/user/bin目錄下,當前 Linux 系統可用的 Shell 都記錄在/etc/shells檔案中。/etc/shells是一個純文字檔案,你可以在圖形介面下開啟它,也可以使用 cat 命令檢視它。通

ARM aarch64彙編學習筆記:使用Neon指令

NEON是一種基於SIMD思想的ARM技術。 SIMD, Single Instruction Multiple Data,是一種單條指令處理多個數據的並行處理技術,相比於一條指令處理一個數據,運算速度將會大大提高。 ARMv8 有31 個64位暫存器,1個不同

linux學習筆記之shell程式設計正則表示式與字元處理

shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則表示式常用的字元(注意區別於萬用字元裡面的符號)#### -*

如何編寫一個優雅的Shell指令碼

簡介    shell指令碼是用各類命令預先放入到一個檔案中,方便一次性執行的一個程式檔案,本文簡述如何編寫一個優雅的shell指令碼。 使用技術介紹 eval命令    可以將一個字串當作一個命令執行。    CMD="ls -ltr" eval $CMD 內建

Shell入門

目錄 Shell 使用變數 刪除變數 變數型別 單引號 雙引號 Shell Shell 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程式設計語言。 Shell 是指一種應用程式,

平時工作中一定會用到的Linux指令

一、find指令——查詢指令最常用引數:【-name】   根據名稱查詢【-iname】  根據名稱查詢,且忽略大小寫差異最常用命令:【find 目錄名 -name 檔案或目錄名】     根據檔名在指

Linux shell 基礎,自己慢慢步步學

Linux shell指令碼基礎學習這裡我們先來第一講,介紹shell的語法基礎,開頭、註釋、變數和 環境變數,向大家做一個基礎的介紹,雖然不涉及具體東西,但是打好基礎是以後學習輕鬆地前提。 1. Linux 指令碼編寫基礎 ◆1.1 語法基本介紹1.1.1 開頭 程式必須

CentOS 基本指令——從安裝JDK開始

Linux 版本檢視命令:在終端輸入 lsb_release -a 檢視java執行路徑:which java 目前伺服器上空空噠,還沒有安裝jdk 安裝jdk:使用wget命令下載 沒有wget命令則需要先進行安裝: yum search wget