linux/centos shell指令碼中非互動式修改密碼,centos中非

來源:互聯網
上載者:User

linux/centos shell指令碼中非互動式修改密碼,centos中非
        今天在寫一個shell指令碼的時候發現需要設定使用者的密碼,而設定密碼是互動,這樣在指令碼中顯然是不太好的,因此上網尋找資料,發現了以下兩種非互動式設定密碼的方式:

1、使用chpasswd
chpasswd其實是通過使用者輸入'使用者名稱:密碼'來更改一組使用者的密碼,還是一個可以批量修改密碼的工具,具體的用法詳見chpasswd用法,這裡只做簡單的介紹
格式:# echo 使用者名稱:密碼 | chpasswd

比如想要添加一個doiido的帳號,密碼為123456,指令如下
# echo doiido:123456 | chpasswd


2、使用passwd和--stdin組合
passwd預設是要用終端作為標準輸入,而--stdin表示可以用任意檔案做標準輸入,這兩個配合可以直接修改密碼
格式:# echo '密碼'| passwd --stdin 使用者名稱

還是添加一個doiido的帳號,密碼為123456,指令如下
# echo '123456'| passwd --stdin doiido


這樣就可以實現在非互動模式下修改密碼,但是對於某些嵌入式linux這兩種方式都不支援,則可以使用export來實現。



linux命令 sed 問有哪位大大知道這個sed 命令是什? sed 's/\//\\\//g'

截取或修改字串,列印到螢幕上。
使用方法:sed 參數 '動作' 動作對象
如果用-i參數將修改文檔的內容,你的sed 's/\//\\\//g'這個我舉一個類似的再分析你的。
sed 's/old/new/g’ ***
這個就是把***文檔裡面的old這個詞換成new這個詞。
你的sed 's/\//\\\//g'裡面既是把,/換成\\/。s/\//是一部分/\\\//g又是一部分,s後面的//之間就是要替換的詞語和上面的old類似,由於/有特殊定義,所以用\轉意成普通符號/,/\\\//g從第一符號到g前面的/之間就為替換old的new,為\\/前面兩個\就是\沒有特殊意義所以為\\,後面g前面的第二個/由於有特殊意義所以用\來轉意,所以new為\\/。在s/old/new/g裡面的/為固定格式所需要的,所以想列印出/來的話,要用\來轉意,linux特殊字元轉意都用\。
詳細的參數資訊用man page,這個是比不可少的,因為一個人不可能把那些東西全部記得,如果你硬要記還不如記唐詩三百首呢。只要知道這個命令或是這個工具的工作原理,使用方法自然就明了,要用到的時候查一下即可,沒有必要和自己過不去。
 
linux裡面的sed命令怎使用,做什的?詳細說明

sed 編輯器是 Linux 系統管理員的工具包中最有用的資產之一

Linux 作業系統最大的一個好處是它帶有各種各樣的工具 + 生產力。存在如此之多不同的工具 + 生產力,幾乎不可能知道並瞭解所有這些工具。可以簡化關鍵情況下操作的一個實用 工具是 sed。它是任何管理員的工具包中最強大的工具之一,並且可以證明它自己在關鍵情況下非常有價值。

sed 工具 + 生產力是一個“編輯器”,但它與其它大多數編輯器不同。除了不面向螢幕之外,它還是非互動。這意味著您必須將要對資料執行的命令插入到命令列或要處 理的指令碼中。當顯示它時,請忘記您在使用 Microsoft Word 或其它大多數編輯器時擁有的互動式編輯檔案功能。sed 在一個檔案(或檔案集)中非互動式、並且不加詢問地接收一系列的命令並執行它們。因而,它流經文本就如同水流經溪流一樣,因而 sed 恰當地代表了流編輯器。它可以用來將所有出現的 "Mr. Smyth" 修改為 "Mr. Smith",或將 "tiger cub" 修改為 "wolf cub"。流編輯器非常適合於執行重複的編輯,這種重複編輯如果由人工完成將花費大量的時間。其參數可能和一次性使用一個簡單的操作所需的參數一樣有限, 或者和一個具有成千上萬行要進行編輯修改的指令檔一樣複雜。sed 是 Linux 和 UNIX 工具箱中最有用的工具之一,且使用的參數非常少。

sed 的工作方式

sed 工具 + 生產力按順序逐行將檔案讀入到記憶體中。然後,它執行為該行指定的所有操作,並在完成請求的修改之後將該行放回到記憶體中,以將其轉儲至終端。完成了這一行 上的所有操作之後,它讀取檔案的下一行,然後重複該過程直到它完成該檔案。如同前面所提到的,預設輸出是將每一行的內容輸出到螢幕上。在這裡,開始涉及到 兩個重要的因素—首先,輸出可以被重新導向到另一檔案中,以儲存變化;第二,源檔案(預設地)保持不被修改。sed 預設讀取整個檔案並對其中的每一行進行修改。不過,可以按需要將操作限制在指定的行上。

該工具 + 生產力的文法為:

sed [options] '{command}' [filename]

在這篇文章中,我們將瀏覽最常用的命令和選項,並示範它們如何工作,以及它們適於在何處使用。

替換命令

sed 工具 + 生產力以及其它任何類似的編輯器的最常用的命令之一是用一個值替換另一個值。用來實現這一目的的操作的命令部分文法是:

's/{old value}/{new value}/'

因而,下面示範了如何非常簡單地將 "tiger" 修改為 "wolf":

$ echo The tiger cubs will meet on Tuesday after school | sed
's/tiger/wolf/'
The wolf cubs will meet on Tuesday after school
$

注意如果輸入是源自之前的命令輸出,則不需要指定檔案名稱—同樣的原則也適用於 awk、sort 和其它大多數 LinuxUNIX 命令列工具 + 生產力程式。

多次修改

如果需要對同一檔案或行作多次修改,可以有三種方法來實現它。第一種是使用 "-e" 選項,它通知程式使用了多條編輯命令。例如:

$ echo T......餘下全文>>
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.