在Linux的Bash命令中使用sed-i寫入變量可以使用以下語法:sed -i "s/替換字符串/${你的變量名}/g" 文件名 例如,要將變量CONTENT寫入文件file.txt: sed -i "s/Content/${CONTENT}/g" file.txt
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機域名、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、積石山保安族東鄉(xiāng)族網(wǎng)站維護、網(wǎng)站推廣。
在Linux的Bash命令中使用sed-i寫入變量可以使用以下語法:sed -i "s/替換字符串/${你的變量名}/g" 文件名 例如,要將變量CONTENT寫入文件file.txt: sed -i "s/Content/${CONTENT}/g" file.txt
Bash,Unix
shell的一種,在1987年由布萊恩·??怂篂榱薌NU計劃而編寫。1989年發(fā)布第一個正式版本,原先是計劃用在GNU操作系統(tǒng)上,但能運行于大多數(shù)類Unix系統(tǒng)的操作系統(tǒng)之上,包括Linux與Mac
OS X v10.4都將它作為默認shell。
Bash是一個命令處理器,通常運行于文本窗口中,并能執(zhí)行用戶直接輸入的命令。Bash還能從文件中讀取命令,這樣的文件稱為腳本。和其他Unix
shell
一樣,它支持文件名替換(通配符匹配)、管道、here文檔、命令替換、變量,以及條件判斷和循環(huán)遍歷的結(jié)構(gòu)控制語句。包括關(guān)鍵字、語法在內(nèi)的基本特性全部是從sh借鑒過來的。其他特性,例如歷史命令,是從csh和ksh借鑒而來??偟膩碚f,Bash雖然是一個滿足POSIX規(guī)范的shell,但有很多擴展。
Shell 是一種命令行解釋器, 其讀取用戶輸入的字符串命令, 解釋并且執(zhí)行命令;它是一種特殊的應(yīng)用程序, 介于系統(tǒng)調(diào)用/庫與應(yīng)用程序之間, 其提供了運行其他程序的的接口;它可以是交互式的, 即讀取用戶輸入的字符串;也可以是非交互式的, 即讀取腳本文件并解釋執(zhí)行, 直至文件結(jié)束. 無論是在類 UNIX, Linux 系統(tǒng), 還是 Windows, 有很多不同種類的 Shell: 如類 UNIX, Linux 系統(tǒng)上的 Bash, Zsh 等; Windows 系統(tǒng)上的 cmd, PowerShell 等.
Bash 是 Bourne Again SHell 的縮寫, 是 GNU 計劃中的 Shell, 也是一些類 UNIX 系統(tǒng)與多數(shù) Linux 發(fā)行版的默認 Shell
使用Shell可以實現(xiàn)對Linux系統(tǒng)實現(xiàn)絕大部分的管理,例如:
#獲取當前時間
[root@CentOS7 ~]# date
Mon Mar 15 22:59:47 CST 2021
#創(chuàng)建文件
[root@CentOS7 opt]# touch xcz
[root@CentOS7 opt]# ll
-rw-r--r--. 1 root root 0 Mar 15 23:01 xcz
#創(chuàng)建一百個文件,我們一般就會使用shell script進行創(chuàng)建
[root@CentOS7 opt]# cat touch.sh
#!/bin/bash
for n in `seq 100`;do
touch xcz$n
echo "文件xcz$n創(chuàng)建成功哦!"
done
[root@CentOS7 opt]# sh touch.sh
命令行輸入方式:效率較低,適用于工作量不大的工作;
shell script 腳本方式:效率高,適用于工作量大且復雜的工作。
[root@CentOS7 opt]# bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
'#39; = 普通用戶
'#' = root用戶(超級管理員)
#查看當前用戶
[root@CentOS7 ~]# whoami
root
#查看當前命令提示符
[root@CentOS7 ~]# echo $PS1
[u@h W]$
root:當前系統(tǒng)的用戶
CentOS7:當前系統(tǒng)的主機名
~:當前所在的位置
#:超級管理員身份(root用戶)
$:普通用戶
提示符參數(shù)及含義
d :代表日期;
H :完整的主機名稱
h :僅取主機名中的第一個名字
:顯示時間為24小時格式,如:HH:MM:SS
T :顯示時間為12小時格式
A :顯示時間為24小時格式:HH:MM
u :當前用戶的賬號名稱
v :BASH的版本信息
w :完整的工作目錄名稱
W :利用basename取得工作目錄名稱,只顯示最后一個目錄名
# :下達的第幾個命令
$ :提示字符,如果是root用戶,提示符為 "#" ,普通用戶則為 "#34;
#顏色
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
PS1='[e[32;40m] [[u@h w ]$ [e[0m]'
PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[36;40m]w[e[0m]]$ "
PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@[e[35;40m]h[e[0m] [e[36;40m]w[e[0m]]$ "
#提示符的應(yīng)用
[root@CentOS7 ~]# vi .bashrc
#最后一行下面添加
PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@[e[35;40m]h[e[0m] [e[36;40m]w[e[0m]]$ "
#使用source生效
[root@CentOS7 ~]# source .bashrc
#命令 選項 參數(shù)
command [-options] [arguments]
[root@CentOS7 ~]# ls -l /opt/
#命令:整條shell命令的主體
#選項:用于調(diào)節(jié)命令的具體功能
#以'-'引導段個事選項(單個字符),例如”-l“
#以'--'引導長格式選項(多個字符),例如”--list“
#多個短格式選項可以卸載一起,只用一個”-“引導,例如”-la“
#參數(shù):命令操作與偶的對象,如文件、目錄名等
#命令必須開頭,選項和參數(shù)位置可以發(fā)生變化
我們在使用Linux系統(tǒng)進行查找一個多層級的文件時,我們可以使用鍵盤上的Tab鍵進行快速補全
補全的形式有:
#如果我們忘記網(wǎng)絡(luò)配置文件具體路徑,那么我們就可以使用補全的形式進行配置
[root@CentOS7 ~]# vi /etc/sysconfig/
anaconda cpupower grub irqbalance modules/ rdisc selinux
authconfig crond init kdump netconsole readonly-root sshd
cbq/ ebtables-config ip6tables-config kernel network rsyslog wpa_supplicant
console/ firewalld iptables-config man-db network-scripts/ run-parts
[root@CentOS7 ~]# vi /etc/sysconfig/network
network network-scripts/
[root@CentOS7 ~]# vi /etc/sysconfig/network-scripts/if
ifcfg-ens33 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team
ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort
ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel
ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless
[root@CentOS7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-
ifcfg-ens33 ifcfg-lo
[root@CentOS7 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
#如果你的Linux系統(tǒng)無法進行補全,那么咱們可以安裝一個擴展包即可
[root@CentOS7 ~]# yum install -y bash-completion
clear #或者用快捷鍵 ctrl + l
ctrl+c #有些程序也可以用q鍵退出
ctrl+z # 進程會掛起到后臺
bg jobid # 讓進程在后臺繼續(xù)執(zhí)行
fg jobid # 讓進程回到前臺
Ctrl鍵+a #將當前光標移動到命令行的行首
Ctrl鍵+e #將當前光標移動到命令行的行尾
Ctrl鍵+u #將當前光標之前的所有字符剪切
Ctrl鍵+k #將當前光標之后的所有字符剪切
Ctrl鍵+w #將當前光標之前的字符剪切,以空格為結(jié)尾
Ctrl鍵+d #退出當前會話窗口
Ctrl鍵+z #將當前前臺運行的程序,放到后臺運行
Ctrl鍵+r #搜索 歷史 命令
Ctrl鍵+y #粘貼剪切板上的內(nèi)容
Ctrl鍵+左右方向鍵 #向指定的方向鍵移動一組字符,以空格為分隔符
ESC鍵+. #使用上一條命令的最后的參數(shù)或者路徑,以空格為分隔符,空格之后的內(nèi)容,delete鍵 從前往后刪除一個字符
!命令 #執(zhí)行最近的一次以該命令為開頭的命令
!! #執(zhí)行上一條命令
#使用格式:
[命令] + [--help] 或者[man] + [命令] 即可
#例如touch命令幫助
[root@CentOS7 ~]# touch --help
Usage: touch [OPTION]... FILE...
Update the access and modification times of each FILE to the current time.
A FILE argument that does not exist is created empty, unless -c or -h
is supplied.
A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.
Mandatory arguments to long options are mandatory for short options too.
-a change only the access time
-c, --no-create do not create any files
-d, --date=STRING parse STRING and use it instead of current time
-f (ignored)
-h, --no-dereference affect each symbolic link instead of any referenced
file (useful only on systems that can change the
timestamps of a symlink)
-m change only the modification time
-r, --reference=FILE use this file's times instead of current time
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
--time=WORD change the specified time:
WORD is access, atime, or use: equivalent to -a
WORD is modify or mtime: equivalent to -m
--help display this help and exit
--version output version information and exit
Note that the -d and -t options accept different time-date formats.
GNU coreutils online help:
For complete documentation, run: info coreutils 'touch invocation'