指定一臺(tái)主機(jī)作為信任主機(jī),這樣從這臺(tái)主機(jī)登錄其他機(jī)器就不需要密碼了。
創(chuàng)新互聯(lián)建站是一家以重慶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、營(yíng)銷推廣、小程序App開(kāi)發(fā)等移動(dòng)開(kāi)發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都服務(wù)器租用等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開(kāi)發(fā)服務(wù)。
設(shè)置信任主機(jī):
假設(shè)有四臺(tái)機(jī)器:192.168.2.1~192.168.2.4,其中192.168.2.1為信任機(jī),那么在192.168.2.1上運(yùn)行如下命令:
$ssh-keygen -t rsa //此處一路回車,生成秘鑰
$scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘鑰拷貝到其他遠(yuǎn)程機(jī)器
$ssh 192.168.2.2 ‘cat id_rsa.pub .ssh/authorized_keys’ //(遠(yuǎn)程執(zhí)行命令)在遠(yuǎn)程機(jī)器上生成認(rèn)證文件
經(jīng)過(guò)這幾步,從192.168.2.1 ssh登陸192.168.2.2時(shí),就不會(huì)再需要輸入密碼了。同樣的步驟再執(zhí)行3、4的極其。
文本文件hostlist可以如下
192.168.2.2
192.168.2.3
192.168.2.4
#!/bin/shdoCommand(){? ??
hosts=`sed -n'/^[^#]/p'hostlist`
for ? host ?in ? $hosts
do
echo ""
echo ?HOST$host
ssh ?$host ?"$@"?
done
return 0
}
if ?[ ?$# -lt 1 ]
then
echo "$0cmd" exit?
fi
do ?Command "$@"
echo "return from doCommand"
執(zhí)行命令(記得先對(duì)doCommand.s
h增加執(zhí)行權(quán)限 chmod u+x doCommand.sh)
./doCommand.sh “l(fā)s -al /root/”
這樣該腳本就會(huì)在每臺(tái)機(jī)器上執(zhí)行”ls -al /root/”這個(gè)命令,并返回結(jié)果在信任主機(jī)上。
作為一個(gè)程序員或者測(cè)試開(kāi)發(fā)人員,我們?cè)谶M(jìn)行項(xiàng)目部署和運(yùn)維時(shí),經(jīng)常會(huì)用到一些linux命令,可是這些命令老是忘記,每次用到的時(shí)候都要去谷歌百度,很是麻煩!這不,為了自己使用方便,對(duì)常見(jiàn)的linux命令, SHELL, VIM, Linux性能調(diào)優(yōu)和linux kernel的總結(jié),以便在用到時(shí)能夠快速地找到相關(guān)命令,同時(shí)有需要的朋友也可以參考搜藏該篇文章!文章對(duì)講到的每個(gè)命令都有詳細(xì)的參數(shù)解釋,并且給出一些常用例子,因此也非常適合用來(lái)學(xué)習(xí)!
shell(命令解釋器)自帶的命令稱為內(nèi)部命令,其它的是外部命令
內(nèi)部命令使用help幫助:help cd
外部命令使用help幫助:ls --help
type命令:用于區(qū)分是內(nèi)部命令還是外部命令:
ls is aliased to `ls --color=auto' #外部命令
cd is a shell builtin #內(nèi)部命令
pwd命令:顯示當(dāng)前目錄
ls命令:查看目錄和文件名稱
ls -l 查看目錄各個(gè)字段含義
第一字段:首字母代表的是文件類型 ,其中"-"為普通文件、"d"為目錄文件、"c"為字符設(shè)備文件、"b"為塊設(shè)備文件、"p"為管道文件、"l"為鏈接文件、"s"為socket文件?!皉wx”分別代表?yè)碛凶x、寫和執(zhí)行權(quán)限,"-代表無(wú)對(duì)應(yīng)權(quán)限。三個(gè)"rwx"依次代表文件所有者、文件所有者所在用戶組、其它用戶對(duì)文件擁有的權(quán)限。
第二字段:文件硬連接數(shù)量
第三字段:文件擁有者
第四字段:文件擁有者所在組
第五字段:文件大?。ㄒ宰止?jié)為單位)
第六字段:文件最后更改時(shí)間
第七字段:文件名(若為鏈接文件則追加顯示其鏈接的原文件的路徑)
ls命令其它參數(shù)含義:
-a顯示隱藏文件(.開(kāi)頭的文件)
-r逆序排序
-t按照時(shí)間順序顯示
-R遞歸顯示
ls -lartR : 按照時(shí)間順序倒序顯示所有文件及其文件夾的文件
cd命令:更改當(dāng)前的工作目錄
cd /path/... 絕對(duì)路徑
cd ./path/... 相對(duì)路徑(./可以省略)
cd ../path/... 相對(duì)路徑
mkdir -p 遞歸目錄:遞歸創(chuàng)建目錄
rmdir命令:刪除目錄
rmdir a/b/c/d/e/ #刪除空目錄
rm -r a/b/c/d/ #遞歸刪除目錄,但是系統(tǒng)會(huì)做多次詢問(wèn)
rm -rf a/b/c/d/ #刪除目錄,不做任何詢問(wèn)
cp命令:復(fù)制文件和目錄
-r 復(fù)制目錄
-p 保留用戶、權(quán)限、時(shí)間等文件屬性
mv命令:移動(dòng)文件和重命名
mv *.log 目標(biāo)目錄
通配符:
*匹配任何字符串
?匹配一個(gè)字符串
[xyz]任何一個(gè)字符串
[a-z]匹配一個(gè)范圍
cat命令:文本內(nèi)容顯示到終端
head命令:查看文件開(kāi)頭
head -3 文件名稱 #顯示文件開(kāi)頭3行
tail命令:查看文件末尾
tail -3 文件名稱 #顯示文件末尾3行
tail常用參數(shù)-f,文件內(nèi)容更新后,同步顯示更新的文件信息
tail -f 文件名稱
wc命令:統(tǒng)計(jì)文件內(nèi)容信息
wc 文件名稱
useradd命令:新建用戶
useradd 用戶名
userdel命令:刪除用戶
userdel 用戶名 用戶所在的家目錄不會(huì)被刪除
userdel -r 用戶名 用戶相關(guān)的所有配置都會(huì)被刪除
passwd命令:修改用戶密碼
passwd 用戶名
usermod命令:修改用戶屬性
/etc/passwd文件:查看用戶文件
tail /etc/passwd
/etc/shadow文件:查看用戶密碼
tail /etc/shadow
groupadd命令:添加用戶組
groupadd 用戶組
groupdel命令:刪除用戶組
groupdel 用戶組
用戶切換
su 用戶名 切換用戶,但是用戶所在環(huán)境不變,即pwd路徑不會(huì)變化
su - 用戶名 切換用戶,同時(shí)會(huì)切換到用戶家目錄,即/home/用戶名
sudo命令:普通用戶需要執(zhí)行root用戶權(quán)限的解決方案。
以下是一些常用命令匯總;The following table provides a reminder of most of the commands that we have covered so far. If you include the three, as-yet-unmentioned, commands in the last column, then you will probably be able to achieve 95% of everything that you will ever want to do in Unix (remember, you can use the man command to find out more about top , ps , and kill ). The power comes from how you can use combinations of these commands.
-c 'cc-address' -b 'bcc-address'
'to-address' | Command to send email | | mail -s "Subject"
to-address Filename` | Command to send email with attachment |
File Permission commands
Hope this Linux reference guide helps you!
希望這些常用的命令和系統(tǒng)原理,以及l(fā)inux操作可以幫助大家提升linux命令和操作?。。?/p>
Linux安裝基本命令大全
Linux常用命令,你還能記得多少呢?下文是我為大家準(zhǔn)備的Linux常用命令,一起來(lái)看看吧!
安裝升級(jí)
查看軟件xxx安裝內(nèi)容
dpkg -L xxx
查找軟件庫(kù)中的軟件
apt-cache search 正則表達(dá)式
或
aptitude search 軟件包
顯示系統(tǒng)安裝包的統(tǒng)計(jì)信息
apt-cache stats
顯示系統(tǒng)全部可用包的名稱
apt-cache pkgnames
顯示包的信息
apt-cache show k3b
查找文件屬于哪個(gè)包
dpkg -S filename
apt-file search filename
查看已經(jīng)安裝了哪些包
dpkg -l
也可用
dpkg -l | less
翻頁(yè)查看
查詢軟件xxx依賴哪些包
apt-cache depends xxx
查詢軟件xxx被哪些包依賴
apt-cache rdepends xxx
增加一個(gè)光盤源
sudo apt-cdrom add
系統(tǒng)更新
sudo apt-get update (這一步更新包列表)
sudo apt-get dist-upgrade (這一步安裝所有可用更新)
或者
sudo apt-get upgrade (這一步安裝應(yīng)用程序更新,不安裝新內(nèi)核等)
清除所有已刪除包的殘馀配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果報(bào)如下錯(cuò)誤,證明你的系統(tǒng)中沒(méi)有殘留配置文件了,無(wú)須擔(dān)心。
----------------------------------------------------------
dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].
Options marked [*] produce a lot of output - pipe it through `less' or `more' !
----------------------------------------------------------
編譯時(shí)缺少h文件的自動(dòng)處理
sudo auto-apt run ./configure
查看安裝軟件時(shí)下載包的臨時(shí)存放目錄
ls /var/cache/apt/archives
備份當(dāng)前系統(tǒng)安裝的所有包的列表
dpkg --get-selections | grep -v deinstall ~/somefile
從上面?zhèn)浞莸陌惭b包的列表文件恢復(fù)所有包
dpkg --set-selections ~/somefile
sudo dselect
清理舊版本的軟件緩存
sudo apt-get autoclean
清理所有軟件緩存
sudo apt-get clean
刪除系統(tǒng)不再使用的孤立軟件
sudo apt-get autoremove
如果使用
sudo apt-get autoremove --purge
的話會(huì)把這些孤立軟件的殘留配置文件也一并移除
查看包在服務(wù)器上面的地址
apt-get -qq --print-uris download 軟件包名稱 | cut -d\' -f2
徹底刪除Gnome
sudo apt-get --purge remove liborbit2
徹底刪除KDE
sudo apt-get --purge remove libqt3-mt libqtcore4
一鍵安裝 LAMP 服務(wù)
sudo tasksel install lamp-server
刪除舊內(nèi)核
sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
導(dǎo)入ppa源的'key值
#W: GPG簽名驗(yàn)證錯(cuò)誤: jaunty Release: 由于沒(méi)有公鑰,下列簽名無(wú)法進(jìn)行驗(yàn)證: NO_PUBKEY 5126890CDCC7AFE0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替換為你需要導(dǎo)入的Key值
增加 add-apt-repository 命令
sudo apt-get install software-properties-common
增加一個(gè)ppa源
sudo add-apt-repository ppa:user/ppa-name
#使用 ppa 的地址替換 ppa:user/ppa-name
添加163鏡像源
sudo add-apt-repository "deb `lsb_release -cs` main restricted universe multiverse"
sudo add-apt-repository "deb `lsb_release -cs`-updates main restricted universe multiverse"
sudo add-apt-repository "deb `lsb_release -cs`-security main restricted universe multiverse"
系統(tǒng)升級(jí)
1 這里指的是版本間的升級(jí),例如 9.04=10.04。
2 使用該升級(jí)方式通常需要使用 backports 源。
sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade
系統(tǒng)
查看內(nèi)核
uname -a
查看系統(tǒng)是32位還是64位
#查看long的位數(shù),返回32或64
getconf LONG_BIT
#查看文件信息,包含32-bit就是32位,包含64-bit就是64位
file /sbin/init
或者使用
uname -m
查看Ubuntu版本
lsb_release -a
或 cat /etc/lsb-release
查看內(nèi)核加載的模塊
lsmod
查看PCI設(shè)備
lspci
查看USB設(shè)備
lsusb
#加參數(shù) -v 可以顯示USB設(shè)備的描述表(descriptors)
lsusb -v
查看網(wǎng)卡狀態(tài)
sudo apt-get install ethtool
sudo ethtool eth0
激活網(wǎng)卡的 Wake-on-LAN
sudo apt-get install wakeonlan
或 sudo ethtool -s eth0 wol g
查看CPU信息
cat /proc/cpuinfo
顯示當(dāng)前硬件信息
sudo lshw
查看內(nèi)存型號(hào)
sudo dmidecode -t memory
獲取CPU序列號(hào)或者主板序列號(hào)
#CPU ID
sudo dmidecode -t 4 | grep ID
#Serial Number
sudo dmidecode | grep Serial
#CPU
sudo dmidecode -t 4
#BIOS
sudo dmidecode -t 0
#主板:
sudo dmidecode -t 2
#OEM:
sudo dmidecode -t 11
顯示當(dāng)前內(nèi)存大小
free -m |grep "Mem" | awk '{print $2}'
查看硬盤溫度
sudo apt-get install hddtemp
sudo hddtemp /dev/sda
顯示系統(tǒng)運(yùn)行時(shí)間
uptime
查看系統(tǒng)限制
ulimit -a
查看內(nèi)核限制
ipcs -l
查看當(dāng)前屏幕分辨率
xrandr
硬盤
查看塊設(shè)備
lsblk
查看硬盤的分區(qū)
sudo fdisk -l
硬盤分區(qū)
#危險(xiǎn)!小心操作。
sudo fdisk /dev/sda
硬盤格式化
#危險(xiǎn)!將第一個(gè)分區(qū)格式化為 ext3 分區(qū), mkfs.reiserfs mkfs.xfs mkfs.vfat
sudo mkfs.ext3 /dev/sda1
硬盤檢查
#危險(xiǎn)!檢查第一個(gè)分區(qū),請(qǐng)不要檢查已經(jīng)掛載的分區(qū),否則容易丟失和損壞數(shù)據(jù)
sudo fsck /dev/sda1
硬盤壞道檢測(cè)
sudo badblocks -s -v -c 32 /dev/sdb
#得到壞的塊后,使用分區(qū)工具隔離壞道。
分區(qū)掛載
sudo mount -t 文件系統(tǒng)類型 設(shè)備路經(jīng) 訪問(wèn)路經(jīng)
#常用文件類型如下: iso9660 光驅(qū)文件系統(tǒng), vfat fat/fat32分區(qū), ntfs ntfs分區(qū), smbfs windows網(wǎng)絡(luò)共享目錄, reiserfs、ext3、xfs Linux分區(qū)
#如果中文名無(wú)法顯示嘗試在最後增加 -o nls=utf8 或 -o iocharset=utf8
#如果需要掛載後,普通用戶也可以使用,在 -o 的參數(shù)後面增加 ,umask=022 如:-o nls=utf8,umask=022
分區(qū)卸載
sudo umount 目錄名或設(shè)備名
只讀掛載ntfs分區(qū)
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可寫掛載ntfs分區(qū)
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
掛載fat32分區(qū)
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
掛載共享文件
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
掛載ISO文件
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
查看IDE硬盤信息
sudo hdparm -i /dev/sda
查看軟raid陣列信息
cat /proc/mdstat
參看硬raid陣列信息
dmesg |grep -i raid
cat /proc/scsi/scsi
查看SATA硬盤信息
sudo hdparm -I /dev/sda
或
sudo apt-get install blktool
sudo blktool /dev/sda id
查看硬盤剩余空間
df
df --help 顯示幫助
查看目錄占用空間
du -hs 目錄名
閃盤沒(méi)法卸載
sync
fuser -km /media/閃盤卷標(biāo)
使用文件來(lái)增加交換空間
#創(chuàng)建一個(gè)512M的交換文件 /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=512
sudo mkswap /swapfile
sudo swapon /swapfile
#sudo vim /etc/fstab #加到fstab文件中讓系統(tǒng)引導(dǎo)時(shí)自動(dòng)啟動(dòng)
/swapfile swap swap defaults 0 0
查看硬盤當(dāng)前讀寫情況
# 首先安裝 sysstat 包
sudo apt-get install sysstat
#每2秒刷新一次
sudo iostat -x 2
測(cè)試硬盤的實(shí)際寫入速度
dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
進(jìn)程
查看當(dāng)前的內(nèi)存使用情況
free
連續(xù)監(jiān)視內(nèi)存使用情況
watch -d free
# 使用 Ctrl + c 退出
動(dòng)態(tài)顯示進(jìn)程執(zhí)行情況
top
top指令運(yùn)行時(shí)輸入H或?打開(kāi)幫助窗口,輸入Q退出指令。
查看當(dāng)前有哪些進(jìn)程
ps -AFL
查看進(jìn)程的啟動(dòng)時(shí)間
ps -A -opid,stime,etime,args
查看目前登入用戶運(yùn)行的程序
w
查看當(dāng)前用戶程序?qū)嶋H內(nèi)存占用,并排序
ps -u $USER -o pid,rss,cmd --sort -rss
統(tǒng)計(jì)程序的內(nèi)存耗用
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按內(nèi)存從大到小排列進(jìn)程
ps -eo "%C : %p : %z : %a"|sort -k5 -nr
列出前十個(gè)最耗內(nèi)存的進(jìn)程
ps aux | sort -nk +4 | tail
按cpu利用率從大到小排列進(jìn)程
ps -eo "%C : %p : %z : %a"|sort -nr
ps aux --sort -pcpu |head -n 20
查看當(dāng)前進(jìn)程樹(shù)
pstree
中止一個(gè)進(jìn)程
kill 進(jìn)程號(hào)(就是ps -A中的第一列的數(shù)字)
或者 killall 進(jìn)程名
強(qiáng)制中止一個(gè)進(jìn)程(在上面進(jìn)程中止不成功的時(shí)候使用)
kill -9 進(jìn)程號(hào)
或者 killall -9 進(jìn)程名
圖形方式中止一個(gè)程序
xkill 出現(xiàn)骷髏標(biāo)志的鼠標(biāo),點(diǎn)擊需要中止的程序即可
查看進(jìn)程打開(kāi)的文件
lsof -p 進(jìn)程的pid
顯示開(kāi)啟文件abc.txt的進(jìn)程
lsof abc.txt
顯示22端口現(xiàn)在運(yùn)行什么程序
lsof -i :22
顯示nsd進(jìn)程現(xiàn)在打開(kāi)的文件
lsof -c nsd
在後臺(tái)運(yùn)行程序,退出登錄後,并不結(jié)束程序
nohup 程序
#查看中間運(yùn)行情況 tail nohup
在后臺(tái)運(yùn)行交互式程序,退出登錄后,并不結(jié)束程序
sudo apt-get install screen
screen vim a.txt
#直接退出后使用
screen -ls # 2208pxs-0.ubuntu (Detached)
screen -r 1656 #恢復(fù)
#熱鍵,同時(shí)按下Ctrl和a鍵結(jié)束后,再按下功能鍵
C-a ? #顯示所有鍵綁定信息
C-a w #顯示所有窗口列表
C-a C-a #切換到之前顯示的窗口
C-a c #創(chuàng)建一個(gè)新的運(yùn)行shell的窗口并切換到該窗口
C-a n #切換到下一個(gè)窗口
C-a p #切換到前一個(gè)窗口(與C-a n相對(duì))
C-a 0..9 #切換到窗口0..9
C-a a #發(fā)送 C-a到當(dāng)前窗口
C-a d #暫時(shí)斷開(kāi)screen會(huì)話
C-a k #殺掉當(dāng)前窗口
在后臺(tái)運(yùn)行交互式程序,退出登錄后,并不結(jié)束程序
tmux 進(jìn)入后再運(yùn)行其它命令
tmux attach #恢復(fù)
#熱鍵,同時(shí)按下Ctrl和b鍵結(jié)束后,再按下功能鍵
C-b c #創(chuàng)建一個(gè)新的運(yùn)行shell的窗口并切換到該窗口
C-b n #切換到下一個(gè)窗口
C-b p #切換到前一個(gè)窗口(與C-a n相對(duì))
C-b 0..9 #切換到窗口0..9
C-b d #暫時(shí)斷開(kāi)會(huì)話
C-b #殺掉當(dāng)前窗口
詳細(xì)顯示程序的運(yùn)行信息
strace -f -F -o outfile
增加系統(tǒng)最大打開(kāi)文件個(gè)數(shù)
#ulimit -SHn
sudo vim /etc/security/limits.conf
文件尾追加
* hard nofile 4096
* soft nofile 4096
sudo vim /etc/pam.d/su
將 pam_limits.so 這一行注釋去掉
重起系統(tǒng)
清除僵尸進(jìn)程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9
將大于120M內(nèi)存的php-cgi都?xì)⒌?/p>
ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3=120000) print $1}' | xargs sudo kill -9
Linux系統(tǒng)中如何限制用戶進(jìn)程CPU占用率
renice +10 `ps aux | awk '{ if ($3 0.8 id -u $1 500) print $2}'`
#或直接編輯/etc/security/limits.conf文件。 ;
基本linux命令有哪些呢?
1、ls命令
就是 list 的縮寫,通過(guò) ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件權(quán)限(包括目錄、文件夾、文件權(quán)限)查看目錄信息等等。
常用參數(shù)搭配:
ls -a 列出目錄所有文件,包含以.開(kāi)始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時(shí)間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名之外,還將文件的權(quán)限、所有者、文件大小等信息詳細(xì)列出來(lái)
實(shí)例:
(1) 按易讀方式按時(shí)間反序排序,并顯示文件詳細(xì)信息
ls -lhrt
(2) 按大小反序顯示文件詳細(xì)信息
ls -lrS
(3)列出當(dāng)前目錄中所有以"t"開(kāi)頭的目錄的詳細(xì)內(nèi)容
ls -l t*
(4) 列出文件絕對(duì)路徑(不包含隱藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件絕對(duì)路徑(包含隱藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd 命令
cd(changeDirectory) 命令語(yǔ)法:
cd [目錄名]
說(shuō)明:切換當(dāng)前目錄至 dirName。
實(shí)例:
(1)進(jìn)入要目錄
cd /
(2)進(jìn)入 "home" 目錄
cd ~
(3)進(jìn)入上一次工作路徑
cd -
(4)把上個(gè)命令的參數(shù)作為cd參數(shù)使用。
cd !$
3、pwd 命令
pwd 命令用于查看當(dāng)前工作目錄路徑。
實(shí)例:
(1)查看當(dāng)前路徑
pwd
(2)查看軟鏈接的實(shí)際路徑
pwd -P
4、mkdir 命令
mkdir 命令用于創(chuàng)建文件夾。
可用選項(xiàng):
-m: 對(duì)新建目錄設(shè)置存取權(quán)限,也可以用 chmod 命令設(shè)置;
-p: 可以是一個(gè)路徑名稱。此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那些尚不在的目錄,即一次可以建立多個(gè)目錄。
實(shí)例:
(1)當(dāng)前工作目錄下創(chuàng)建名為 t的文件夾
mkdir t
(2)在 tmp 目錄下創(chuàng)建路徑為 test/t1/t 的目錄,若不存在,則創(chuàng)建:
mkdir -p /tmp/test/t1/t
5、rm 命令
刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,如果沒(méi)有使用 -r 選項(xiàng),則 rm 不會(huì)刪除目錄。如果使用 rm 來(lái)刪除文件,通常仍可以將該文件恢復(fù)原狀。
rm [選項(xiàng)] 文件…
實(shí)例:
(1)刪除任何 .log 文件,刪除前逐一詢問(wèn)確認(rèn):
rm -i *.log
(2)刪除 test 子目錄及子目錄中所有檔案刪除,并且不用一一確認(rèn):
rm -rf test
(3)刪除以 -f 開(kāi)頭的文件
rm -- -f*
6、rmdir 命令
從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng),刪除某目錄時(shí)也必須具有對(duì)其父目錄的寫權(quán)限。
注意:不能刪除非空目錄
實(shí)例:
(1)當(dāng) parent 子目錄被刪除后使它也成為空目錄的話,則順便一并刪除:
rmdir -p parent/child/child11
7、mv 命令
移動(dòng)文件或修改文件名,根據(jù)第二參數(shù)類型(如目錄,則移動(dòng)文件;如為文件則重命令該文件)。
當(dāng)?shù)诙€(gè)參數(shù)為目錄時(shí),第一個(gè)參數(shù)可以是多個(gè)以空格分隔的文件或目錄,然后移動(dòng)第一個(gè)參數(shù)指定的多個(gè)文件到第二個(gè)參數(shù)指定的目錄中。
實(shí)例:
(1)將文件 test.log 重命名為 test1.txt
mv test.log test1.txt
(2)將文件 log1.txt,log2.txt,log3.txt 移動(dòng)到根的 test3 目錄中
mv llog1.txt log2.txt log3.txt /test3
(3)將文件 file1 改名為 file2,如果 file2 已經(jīng)存在,則詢問(wèn)是否覆蓋
mv -i log1.txt log2.txt
(4)移動(dòng)當(dāng)前文件夾下的所有文件到上一級(jí)目錄
mv * ../
8、cp 命令
將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄。
注意:命令行復(fù)制,如果目標(biāo)文件已經(jīng)存在會(huì)提示是否覆蓋,而在 shell 腳本中,如果不加 -i 參數(shù),則不會(huì)提示,而是直接覆蓋!
-i 提示
-r 復(fù)制目錄及目錄內(nèi)所有項(xiàng)目
-a 復(fù)制的文件與原文件時(shí)間一樣
實(shí)例:
(1)復(fù)制 a.txt 到 test 目錄下,保持原文件時(shí)間,如果原文件存在提示是否覆蓋。
cp -ai a.txt test
(2)為 a.txt 建議一個(gè)鏈接(快捷方式)
cp -s a.txt link_a.txt
9、cat 命令
cat 主要有三大功能:
1.一次顯示整個(gè)文件:
cat filename
2.從鍵盤創(chuàng)建一個(gè)文件:
cat filename
只能創(chuàng)建新文件,不能編輯已有文件。
3.將幾個(gè)文件合并為一個(gè)文件:
cat file1 file2 file
-b 對(duì)非空輸出行號(hào)
-n 輸出所有行號(hào)
實(shí)例:
(1)把 log2012.log 的文件內(nèi)容加上行號(hào)后輸入 log2013.log 這個(gè)文件里
cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 log.log 里
cat -b log2012.log log2013.log log.log
(3)使用 here doc 生成新文件
cat log.txt EOF
Hello
World
PWD=$(pwd)
EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
10、more 命令
功能類似于 cat, more 會(huì)以一頁(yè)一頁(yè)的顯示方便使用者逐頁(yè)閱讀,而最基本的指令就是按空白鍵(space)就往下一頁(yè)顯示,按 b 鍵就會(huì)往回(back)一頁(yè)顯示。
命令參數(shù):
+n 從笫 n 行開(kāi)始顯示
-n 定義屏幕大小為n行
+/pattern 在每個(gè)檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開(kāi)始顯示
-c 從頂部清屏,然后顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續(xù),按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁(yè))字符
-p 通過(guò)清除窗口而不是滾屏來(lái)對(duì)文件進(jìn)行換頁(yè),與-c選項(xiàng)相似
-s 把連續(xù)的多個(gè)空行顯示為一行
-u 把文件內(nèi)容中的下畫線去掉
常用操作命令:
Enter 向下 n 行,需要定義。默認(rèn)為 1 行
Ctrl+F 向下滾動(dòng)一屏
空格鍵 向下滾動(dòng)一屏
Ctrl+B 返回上一屏
= 輸出當(dāng)前行的行號(hào)
:f 輸出文件名和當(dāng)前行的行號(hào)
V 調(diào)用vi編輯器
!命令 調(diào)用Shell,并執(zhí)行命令
q 退出more
實(shí)例:
(1)顯示文件中從第3行起的內(nèi)容
more +3 text.txt
(2)在所列出文件目錄詳細(xì)信息,借助管道使每次顯示 5 行
ls -l | more -5
按空格顯示下 5 行。
11、less 命令
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動(dòng),卻不能向后移動(dòng),而且 less 在查看之前不會(huì)加載整個(gè)文件。
常用命令參數(shù):
-i 忽略搜索時(shí)的大小寫
-N 顯示每行的行號(hào)
-o 文件名 將less 輸出的內(nèi)容在指定文件中保存起來(lái)
-s 顯示連續(xù)空行為一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
N:反向重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
-x 數(shù)字 將“tab”鍵顯示為規(guī)定的數(shù)字空格
b 向后翻一頁(yè)
d 向后翻半頁(yè)
h 顯示幫助界面
Q 退出less 命令
u 向前滾動(dòng)半頁(yè)
y 向前滾動(dòng)一行
空格鍵 滾動(dòng)一行
回車鍵 滾動(dòng)一頁(yè)
[pagedown]: 向下翻動(dòng)一頁(yè)
[pageup]: 向上翻動(dòng)一頁(yè)
實(shí)例:
(1)ps 查看進(jìn)程信息并通過(guò) less 分頁(yè)顯示
ps -aux | less -N
(2)查看多個(gè)文件
less 1.log 2.log
可以使用 n 查看下一個(gè),使用 p 查看前一個(gè)。
12、head 命令
head 用來(lái)顯示檔案的開(kāi)頭至標(biāo)準(zhǔn)輸出中,默認(rèn) head 命令打印其相應(yīng)文件的開(kāi)頭 10 行。
常用參數(shù):
-n行數(shù) 顯示的行數(shù)(行數(shù)為復(fù)數(shù)表示從最后向前數(shù))
實(shí)例:
(1)顯示 1.log 文件中前 20 行
head 1.log -n 20
(2)顯示 1.log 文件前 20 字節(jié)
head -c 20 log2014.log
(3)顯示 t.log最后 10 行
head -n -10 t.log
13、tail 命令
用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理。常用查看日志文件。
常用參數(shù):
-f 循環(huán)讀取(常用于查看遞增的日志文件)
-n行數(shù) 顯示行數(shù)(從后向前)
(1)循環(huán)讀取逐漸增加的文件內(nèi)容
ping 127.0.0.1 ping.log
后臺(tái)運(yùn)行:可使用 jobs -l 查看,也可使用 fg 將其移到前臺(tái)運(yùn)行。
tail -f ping.log
(查看日志)
14、which 命令
在 linux 要查找某個(gè)文件,但不知道放在哪里了,可以使用下面的一些命令來(lái)搜索:
which 查看可執(zhí)行文件的位置。
whereis 查看文件的位置。
locate 配合數(shù)據(jù)庫(kù)查看文件位置。
find 實(shí)際搜尋硬盤查詢文件名稱。
which 是在 PATH 就是指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并返回第一個(gè)搜索結(jié)果。使用 which 命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
常用參數(shù):
-n 指定文件名長(zhǎng)度,指定的長(zhǎng)度必須大于或等于所有文件中最長(zhǎng)的文件名。
實(shí)例:
(1)查看 ls 命令是否存在,執(zhí)行哪個(gè)
which ls
(2)查看 which
which which
(3)查看 cd
which cd(顯示不存在,因?yàn)?cd 是內(nèi)建命令,而 which 查找顯示是 PATH 中的命令)
查看當(dāng)前 PATH 配置:
echo $PATH
或使用 env 查看所有環(huán)境變量及對(duì)應(yīng)值
15、whereis 命令
whereis 命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說(shuō)明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。whereis 及 locate 都是基于系統(tǒng)內(nèi)建的數(shù)據(jù)庫(kù)進(jìn)行搜索,因此效率很高,而find則是遍歷硬盤查找文件。
常用參數(shù):
-b 定位可執(zhí)行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。
實(shí)例:
(1)查找 locate 程序相關(guān)文件
whereis locate
(2)查找 locate 的源碼文件
whereis -s locate
(3)查找 lcoate 的幫助文件
whereis -m locate
在 Linux 命令行中,當(dāng)輸入字符后,按Tab 鍵,Shell 就會(huì)列出以這些字符開(kāi)頭的所有可用命令,如果只有一個(gè)命令匹配到,按一次 Tab 鍵就自動(dòng)將這個(gè)命令補(bǔ)全。
如果輸入pass,此時(shí)按 Tab 鍵,因?yàn)橐詐ass開(kāi)頭的命令只有passwd這個(gè)命令, Shell 就會(huì)自動(dòng)補(bǔ)全 passwd 命令。
另外如果輸入的字符匹配多個(gè)命令則會(huì)列出所有可用的命令,比如,如果輸入do,此時(shí)按 Tab 鍵 Shell 就會(huì)自列出可用的命令。
但是系統(tǒng)自帶的命令補(bǔ)全功能有限,自動(dòng)補(bǔ)全功能僅限于命令和文件名。
可以安裝 Bash 命令補(bǔ)全增強(qiáng)軟件包 bash-completion來(lái)實(shí)現(xiàn)更多命令的補(bǔ)全。
以Centos為例
直接通過(guò)yum命令安裝
bash-completion版本信息
配置命令補(bǔ)全
命令補(bǔ)全的腳本存放在/usr/share/bash-completion/completions/目錄,可以在這個(gè)目錄查看支持增強(qiáng)補(bǔ)全功能的命令。
再試試輸入docker命令后按tab鍵:
可以看到后續(xù)可用命令的提示,媽媽再也不用擔(dān)心我記不住命令了。
同樣對(duì)于kubenetes也可以實(shí)現(xiàn)命令的自動(dòng)補(bǔ)全和提示:
如果是在安裝bash-completion之后安裝git是不能自動(dòng)命令補(bǔ)全,需要手動(dòng)進(jìn)行一些配置。
git安裝之后文檔里會(huì)有g(shù)it-completion.bash文件
安裝完git之后重新source一下bash-completion
看看配置之后的效果
如果覺(jué)得有用記得收藏點(diǎn)贊
Linux 對(duì)我們的生活產(chǎn)生了巨大的沖擊。至少你的安卓手機(jī)使用的就是 Linux 核心。盡管如此,在第一次開(kāi)始使用 Linux 時(shí)你還是會(huì)感到難以下手。因?yàn)樵?Linux 中,通常需要使用終端命令來(lái)取代 Windows 系統(tǒng)中的點(diǎn)擊啟動(dòng)圖標(biāo)操作。但是不必?fù)?dān)心,這里我們會(huì)介紹 10 個(gè) Linux 基本命令來(lái)幫助你開(kāi)啟 Linux 神秘之旅。
幫助新手走出第一步的 10 個(gè) Linux 基本命令
當(dāng)我們談?wù)?Linux 命令時(shí),實(shí)質(zhì)上是在談?wù)?Linux 系統(tǒng)本身。這短短的 10 個(gè) Linux 基本命令不會(huì)讓你變成天才或者 Linux 專家,但是能幫助你輕松開(kāi)始 Linux 之旅。使用這些基本命令會(huì)幫助新手們完成 Linux 的日常任務(wù),由于它們的使用頻率如此至高,所以我更樂(lè)意稱他們?yōu)?Linux 命令之王!
讓我們開(kāi)始學(xué)習(xí)這 10 條 Linux 基本命令吧。
1. sudo
這條命令的意思是“以超級(jí)用戶的身份執(zhí)行”,是 SuperUserDo 的簡(jiǎn)寫,它是新手將要用到的最重要的一條 Linux 命令。當(dāng)一條單行命令需要 root 權(quán)限的時(shí)候,sudo命令就派上用場(chǎng)了。你可以在每一條需要 root 權(quán)限的命令前都加上sudo。
$ sudo su
2. ls
跟其他人一樣,你肯定也經(jīng)常想看看目錄下都有些什么東西。使用列表命令,終端會(huì)把當(dāng)前工作目錄下所有的文件以及文件夾展示給你。比如說(shuō),我當(dāng)前處在 /home 文件夾中,我想看看 /home 文件夾中都有哪些文件和目錄。
/home$ ls
在 /home 中執(zhí)行l(wèi)s命令將會(huì)返回類似下面的內(nèi)容:
imad lost+found
3. cd
變更目錄命令(cd)是終端中總會(huì)被用到的主要命令。它是最常用到的 Linux 基本命令之一。此命令使用非常簡(jiǎn)單,當(dāng)你打算從當(dāng)前目錄跳轉(zhuǎn)至某個(gè)文件夾時(shí),只需要將文件夾鍵入此命令之后即可。如果你想跳轉(zhuǎn)至上層目錄,只需要在此命令之后鍵入兩個(gè)點(diǎn) (..) 就可以了。 舉個(gè)例子,我現(xiàn)在處在 /home 目錄中,我想移動(dòng)到 /home 目錄中的 usr 文件夾下,可以通過(guò)以下命令來(lái)完成操作。
/home $ cd usr
/home/usr $
4. mkdir
只是可以切換目錄還是不夠完美。有時(shí)候你會(huì)想要新建一個(gè)文件夾或子文件夾。此時(shí)可以使用 mkdir 命令來(lái)完成操作。使用方法很簡(jiǎn)單,只需要把新的文件夾名跟在 mkdir 命令之后就好了。
~$ mkdir folderName
5. cp
拷貝-粘貼copy-and-paste是我們組織文件需要用到的重要命令。使用 cp命令可以幫助你在終端當(dāng)中完成拷貝-粘貼操作。首先確定你想要拷貝的文件,然后鍵入打算粘貼此文件的目標(biāo)位置。
$ cp src des
注意:如果目標(biāo)目錄對(duì)新建文件需要 root 權(quán)限時(shí),你可以使用 sudo命令來(lái)完成文件拷貝操作。
6. rm
rm 命令可以幫助你移除文件甚至目錄。如果不希望每刪除一個(gè)文件都提示確認(rèn)一次,可以用-f參數(shù)來(lái)強(qiáng)制執(zhí)行。也可以使用-r參數(shù)來(lái)遞歸的移除文件夾。
$ rm myfile.txt
7. apt-get
這個(gè)命令會(huì)依據(jù)發(fā)行版的不同而有所區(qū)別。在基于 Debian 的發(fā)行版中,我們擁有 Advanced Packaging Tool(APT)包管理工具來(lái)安裝、移除和升級(jí)包。apt-get 命令會(huì)幫助你安裝需要在 Linux 系統(tǒng)中運(yùn)行的軟件。它是一個(gè)功能強(qiáng)大的命令行,可以用來(lái)幫助你對(duì)軟件執(zhí)行安裝、升級(jí)和移除操作。
在其他發(fā)行版中,例如 Fedora、Centos,都各自不同的包管理工具。Fedora 之前使用的是 yum,不過(guò)現(xiàn)在 dnf 成了它默認(rèn)的包管理工具。
$ sudo apt-get update
$ sudo dnf update
8. grep
當(dāng)你需要查找一個(gè)文件,但是又忘記了它具體的位置和路徑時(shí),grep命令會(huì)幫助你解決這個(gè)難題。你可以提供文件的關(guān)鍵字,使用grep命令來(lái)查找到它。
$ grep user /etc/passwd
9. cat
作為一個(gè)用戶,你應(yīng)該會(huì)經(jīng)常需要瀏覽腳本內(nèi)的文本或者代碼。cat命令是 Linux 系統(tǒng)的基本命令之一,它的用途就是將文件的內(nèi)容展示給你。
$ cat CMakeLists.txt
10. poweroff
最后一個(gè)命令是 poweroff。有時(shí)你需要直接在終端中執(zhí)行關(guān)機(jī)操作。此命令可以完成這個(gè)任務(wù)。由于關(guān)機(jī)操作需要 root 權(quán)限,所以別忘了在此命令之前添加sudo。
$ sudo poweroff
總結(jié)
如我在文章開(kāi)始所言,這 10 條命令并不會(huì)讓你立即成為一個(gè) Linux 大拿,但它們會(huì)讓你在初期快速上手 Linux。以這些命令為基礎(chǔ),給自己設(shè)置一個(gè)目標(biāo),每天學(xué)習(xí)一到三條命令,這就是此文的目的所在。
網(wǎng)頁(yè)標(biāo)題:linux命令do linux命令動(dòng)態(tài)查看日志
文章鏈接:http://jinyejixie.com/article0/dossoio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、企業(yè)建站、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)