linux命令do linux命令動(dòng)態(tài)查看日志

Linux多臺(tái)主機(jī)批量執(zhí)行命令

指定一臺(tái)主機(jī)作為信任主機(jī),這樣從這臺(tái)主機(jī)登錄其他機(jī)器就不需要密碼了。

創(chuàng)新互聯(lián)建站是一家以重慶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、營銷推廣、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都服務(wù)器租用等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(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)過這幾步,從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í)行命令(記得先對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ī)上。

Linux基礎(chǔ)命令和原理總結(jié)

作為一個(gè)程序員或者測試開發(fā)人員,我們在進(jìn)行項(xiàng)目部署和運(yùn)維時(shí),經(jīng)常會(huì)用到一些linux命令,可是這些命令老是忘記,每次用到的時(shí)候都要去谷歌百度,很是麻煩!這不,為了自己使用方便,對常見的linux命令, SHELL, VIM, Linux性能調(diào)優(yōu)和linux kernel的總結(jié),以便在用到時(shí)能夠快速地找到相關(guān)命令,同時(shí)有需要的朋友也可以參考搜藏該篇文章!文章對講到的每個(gè)命令都有詳細(xì)的參數(shù)解釋,并且給出一些常用例子,因此也非常適合用來學(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文件。“rwx”分別代表擁有讀、寫和執(zhí)行權(quán)限,"-代表無對應(yīng)權(quán)限。三個(gè)"rwx"依次代表文件所有者、文件所有者所在用戶組、其它用戶對文件擁有的權(quán)限。

第二字段:文件硬連接數(shù)量

第三字段:文件擁有者

第四字段:文件擁有者所在組

第五字段:文件大?。ㄒ宰止?jié)為單位)

第六字段:文件最后更改時(shí)間

第七字段:文件名(若為鏈接文件則追加顯示其鏈接的原文件的路徑)

ls命令其它參數(shù)含義:

-a顯示隱藏文件(.開頭的文件)

-r逆序排序

-t按照時(shí)間順序顯示

-R遞歸顯示

ls -lartR : 按照時(shí)間順序倒序顯示所有文件及其文件夾的文件

cd命令:更改當(dāng)前的工作目錄

cd /path/... 絕對路徑

cd ./path/... 相對路徑(./可以省略)

cd ../path/... 相對路徑

mkdir -p 遞歸目錄:遞歸創(chuàng)建目錄

rmdir命令:刪除目錄

rmdir a/b/c/d/e/ #刪除空目錄

rm -r a/b/c/d/ #遞歸刪除目錄,但是系統(tǒng)會(huì)做多次詢問

rm -rf a/b/c/d/ #刪除目錄,不做任何詢問

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命令:查看文件開頭

head -3 文件名稱 #顯示文件開頭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命令和操作!??!

Linux安裝基本命令

Linux安裝基本命令大全

Linux常用命令,你還能記得多少呢?下文是我為大家準(zhǔn)備的Linux常用命令,一起來看看吧!

安裝升級

查看軟件xxx安裝內(nèi)容

dpkg -L xxx

查找軟件庫中的軟件

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

翻頁查看

查詢軟件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)中沒有殘留配置文件了,無須擔(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: 由于沒有公鑰,下列簽名無法進(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)升級

1 這里指的是版本間的升級,例如 9.04=10.04。

2 使用該升級方式通常需要使用 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)存型號

sudo dmidecode -t memory

獲取CPU序列號或者主板序列號

#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ū),請不要檢查已經(jīng)掛載的分區(qū),否則容易丟失和損壞數(shù)據(jù)

sudo fsck /dev/sda1

硬盤壞道檢測

sudo badblocks -s -v -c 32 /dev/sdb

#得到壞的塊后,使用分區(qū)工具隔離壞道。

分區(qū)掛載

sudo mount -t 文件系統(tǒng)類型 設(shè)備路經(jīng) 訪問路經(jīng)

#常用文件類型如下: iso9660 光驅(qū)文件系統(tǒng), vfat fat/fat32分區(qū), ntfs ntfs分區(qū), smbfs windows網(wǎng)絡(luò)共享目錄, reiserfs、ext3、xfs Linux分區(qū)

#如果中文名無法顯示嘗試在最後增加 -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 目錄名

閃盤沒法卸載

sync

fuser -km /media/閃盤卷標(biāo)

使用文件來增加交換空間

#創(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

測試硬盤的實(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或?打開幫助窗口,輸入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)程樹

pstree

中止一個(gè)進(jìn)程

kill 進(jìn)程號(就是ps -A中的第一列的數(shù)字)

或者 killall 進(jìn)程名

強(qiáng)制中止一個(gè)進(jìn)程(在上面進(jìn)程中止不成功的時(shí)候使用)

kill -9 進(jìn)程號

或者 killall -9 進(jìn)程名

圖形方式中止一個(gè)程序

xkill 出現(xiàn)骷髏標(biāo)志的鼠標(biāo),點(diǎn)擊需要中止的程序即可

查看進(jìn)程打開的文件

lsof -p 進(jìn)程的pid

顯示開啟文件abc.txt的進(jìn)程

lsof abc.txt

顯示22端口現(xiàn)在運(yùn)行什么程序

lsof -i :22

顯示nsd進(jìn)程現(xiàn)在打開的文件

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相對)

C-a 0..9 #切換到窗口0..9

C-a a #發(fā)送 C-a到當(dāng)前窗口

C-a d #暫時(shí)斷開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相對)

C-b 0..9 #切換到窗口0..9

C-b d #暫時(shí)斷開會(huì)話

C-b #殺掉當(dāng)前窗口

詳細(xì)顯示程序的運(yùn)行信息

strace -f -F -o outfile

增加系統(tǒng)最大打開文件個(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命令

基本linux命令有哪些呢?

1、ls命令

就是 list 的縮寫,通過 ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件權(quán)限(包括目錄、文件夾、文件權(quán)限)查看目錄信息等等。

常用參數(shù)搭配:

ls -a 列出目錄所有文件,包含以.開始的隱藏文件

ls -A 列出除.及..的其它文件

ls -r 反序排列

ls -t 以文件修改時(shí)間排序

ls -S 以文件大小排序

ls -h 以易讀大小顯示

ls -l 除了文件名之外,還將文件的權(quán)限、所有者、文件大小等信息詳細(xì)列出來

實(shí)例:

(1) 按易讀方式按時(shí)間反序排序,并顯示文件詳細(xì)信息

ls -lhrt

(2) 按大小反序顯示文件詳細(xì)信息

ls -lrS

(3)列出當(dāng)前目錄中所有以"t"開頭的目錄的詳細(xì)內(nèi)容

ls -l t*

(4) 列出文件絕對路徑(不包含隱藏文件)

ls | sed "s:^:`pwd`/:"

(5) 列出文件絕對路徑(包含隱藏文件)

find $pwd -maxdepth 1 | xargs ls -ld

2、cd 命令

cd(changeDirectory) 命令語法:

cd [目錄名]

說明:切換當(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: 對新建目錄設(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è)文件或目錄,如果沒有使用 -r 選項(xiàng),則 rm 不會(huì)刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復(fù)原狀。

rm [選項(xiàng)] 文件…

實(shí)例:

(1)刪除任何 .log 文件,刪除前逐一詢問確認(rèn):

rm -i *.log

(2)刪除 test 子目錄及子目錄中所有檔案刪除,并且不用一一確認(rèn):

rm -rf test

(3)刪除以 -f 開頭的文件

rm -- -f*

6、rmdir 命令

從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng),刪除某目錄時(shí)也必須具有對其父目錄的寫權(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)存在,則詢問是否覆蓋

mv -i log1.txt log2.txt

(4)移動(dòng)當(dāng)前文件夾下的所有文件到上一級目錄

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 對非空輸出行號

-n 輸出所有行號

實(shí)例:

(1)把 log2012.log 的文件內(nèi)容加上行號后輸入 log2013.log 這個(gè)文件里

cat -n log2012.log log2013.log

(2)把 log2012.log 和 log2013.log 的文件內(nèi)容加上行號(空白行不加)之后將內(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ì)以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會(huì)往回(back)一頁顯示。

命令參數(shù):

+n 從笫 n 行開始顯示

-n 定義屏幕大小為n行

+/pattern 在每個(gè)檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示

-c 從頂部清屏,然后顯示

-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續(xù),按q鍵退出)”,禁用響鈴功能

-l 忽略Ctrl+l(換頁)字符

-p 通過清除窗口而不是滾屏來對文件進(jìn)行換頁,與-c選項(xiàng)相似

-s 把連續(xù)的多個(gè)空行顯示為一行

-u 把文件內(nèi)容中的下畫線去掉

常用操作命令:

Enter 向下 n 行,需要定義。默認(rèn)為 1 行

Ctrl+F 向下滾動(dòng)一屏

空格鍵 向下滾動(dòng)一屏

Ctrl+B 返回上一屏

= 輸出當(dāng)前行的行號

:f 輸出文件名和當(dāng)前行的行號

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 顯示每行的行號

-o 文件名 將less 輸出的內(nèi)容在指定文件中保存起來

-s 顯示連續(xù)空行為一行

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))

N:反向重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))

-x 數(shù)字 將“tab”鍵顯示為規(guī)定的數(shù)字空格

b 向后翻一頁

d 向后翻半頁

h 顯示幫助界面

Q 退出less 命令

u 向前滾動(dòng)半頁

y 向前滾動(dòng)一行

空格鍵 滾動(dòng)一行

回車鍵 滾動(dòng)一頁

[pagedown]: 向下翻動(dòng)一頁

[pageup]: 向上翻動(dòng)一頁

實(shí)例:

(1)ps 查看進(jìn)程信息并通過 less 分頁顯示

ps -aux | less -N

(2)查看多個(gè)文件

less 1.log 2.log

可以使用 n 查看下一個(gè),使用 p 查看前一個(gè)。

12、head 命令

head 用來顯示檔案的開頭至標(biāo)準(zhǔn)輸出中,默認(rèn) head 命令打印其相應(yīng)文件的開頭 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è)文件,但不知道放在哪里了,可以使用下面的一些命令來搜索:

which 查看可執(zhí)行文件的位置。

whereis 查看文件的位置。

locate 配合數(shù)據(jù)庫查看文件位置。

find 實(shí)際搜尋硬盤查詢文件名稱。

which 是在 PATH 就是指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并返回第一個(gè)搜索結(jié)果。使用 which 命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。

常用參數(shù):

-n  指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。

實(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)境變量及對應(yīng)值

15、whereis 命令

whereis 命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。whereis 及 locate 都是基于系統(tǒng)內(nèi)建的數(shù)據(jù)庫進(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)補(bǔ)全工具bash-completion,自動(dòng)補(bǔ)全git、Docker、kubenetes等命令

在 Linux 命令行中,當(dāng)輸入字符后,按Tab 鍵,Shell 就會(huì)列出以這些字符開頭的所有可用命令,如果只有一個(gè)命令匹配到,按一次 Tab 鍵就自動(dòng)將這個(gè)命令補(bǔ)全。

如果輸入pass,此時(shí)按 Tab 鍵,因?yàn)橐詐ass開頭的命令只有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來實(shí)現(xiàn)更多命令的補(bǔ)全。

以Centos為例

直接通過yum命令安裝

bash-completion版本信息

配置命令補(bǔ)全

命令補(bǔ)全的腳本存放在/usr/share/bash-completion/completions/目錄,可以在這個(gè)目錄查看支持增強(qiáng)補(bǔ)全功能的命令。

再試試輸入docker命令后按tab鍵:

可以看到后續(xù)可用命令的提示,媽媽再也不用擔(dān)心我記不住命令了。

同樣對于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

看看配置之后的效果

如果覺得有用記得收藏點(diǎn)贊

linux基本命令

Linux 對我們的生活產(chǎn)生了巨大的沖擊。至少你的安卓手機(jī)使用的就是 Linux 核心。盡管如此,在第一次開始使用 Linux 時(shí)你還是會(huì)感到難以下手。因?yàn)樵?Linux 中,通常需要使用終端命令來取代 Windows 系統(tǒng)中的點(diǎn)擊啟動(dòng)圖標(biāo)操作。但是不必?fù)?dān)心,這里我們會(huì)介紹 10 個(gè) Linux 基本命令來幫助你開啟 Linux 神秘之旅。

幫助新手走出第一步的 10 個(gè) Linux 基本命令

當(dāng)我們談?wù)?Linux 命令時(shí),實(shí)質(zhì)上是在談?wù)?Linux 系統(tǒng)本身。這短短的 10 個(gè) Linux 基本命令不會(huì)讓你變成天才或者 Linux 專家,但是能幫助你輕松開始 Linux 之旅。使用這些基本命令會(huì)幫助新手們完成 Linux 的日常任務(wù),由于它們的使用頻率如此至高,所以我更樂意稱他們?yōu)?Linux 命令之王!

讓我們開始學(xué)習(xí)這 10 條 Linux 基本命令吧。

1. sudo

這條命令的意思是“以超級用戶的身份執(zhí)行”,是 SuperUserDo 的簡寫,它是新手將要用到的最重要的一條 Linux 命令。當(dāng)一條單行命令需要 root 權(quán)限的時(shí)候,sudo命令就派上用場了。你可以在每一條需要 root 權(quán)限的命令前都加上sudo。

$ sudo su

2. ls

跟其他人一樣,你肯定也經(jīng)常想看看目錄下都有些什么東西。使用列表命令,終端會(huì)把當(dāng)前工作目錄下所有的文件以及文件夾展示給你。比如說,我當(dāng)前處在 /home 文件夾中,我想看看 /home 文件夾中都有哪些文件和目錄。

/home$ ls

在 /home 中執(zhí)行l(wèi)s命令將會(huì)返回類似下面的內(nèi)容:

imad lost+found

3. cd

變更目錄命令(cd)是終端中總會(huì)被用到的主要命令。它是最常用到的 Linux 基本命令之一。此命令使用非常簡單,當(dāng)你打算從當(dāng)前目錄跳轉(zhuǎn)至某個(gè)文件夾時(shí),只需要將文件夾鍵入此命令之后即可。如果你想跳轉(zhuǎn)至上層目錄,只需要在此命令之后鍵入兩個(gè)點(diǎn) (..) 就可以了。 舉個(gè)例子,我現(xiàn)在處在 /home 目錄中,我想移動(dòng)到 /home 目錄中的 usr 文件夾下,可以通過以下命令來完成操作。

/home $ cd usr

/home/usr $

4. mkdir

只是可以切換目錄還是不夠完美。有時(shí)候你會(huì)想要新建一個(gè)文件夾或子文件夾。此時(shí)可以使用 mkdir 命令來完成操作。使用方法很簡單,只需要把新的文件夾名跟在 mkdir 命令之后就好了。

~$ mkdir folderName

5. cp

拷貝-粘貼copy-and-paste是我們組織文件需要用到的重要命令。使用 cp命令可以幫助你在終端當(dāng)中完成拷貝-粘貼操作。首先確定你想要拷貝的文件,然后鍵入打算粘貼此文件的目標(biāo)位置。

$ cp src des

注意:如果目標(biāo)目錄對新建文件需要 root 權(quán)限時(shí),你可以使用 sudo命令來完成文件拷貝操作。

6. rm

rm 命令可以幫助你移除文件甚至目錄。如果不希望每刪除一個(gè)文件都提示確認(rèn)一次,可以用-f參數(shù)來強(qiáng)制執(zhí)行。也可以使用-r參數(shù)來遞歸的移除文件夾。

$ rm myfile.txt

7. apt-get

這個(gè)命令會(huì)依據(jù)發(fā)行版的不同而有所區(qū)別。在基于 Debian 的發(fā)行版中,我們擁有 Advanced Packaging Tool(APT)包管理工具來安裝、移除和升級包。apt-get 命令會(huì)幫助你安裝需要在 Linux 系統(tǒng)中運(yùn)行的軟件。它是一個(gè)功能強(qiáng)大的命令行,可以用來幫助你對軟件執(zhí)行安裝、升級和移除操作。

在其他發(fā)行版中,例如 Fedora、Centos,都各自不同的包管理工具。Fedora 之前使用的是 yum,不過現(xiàn)在 dnf 成了它默認(rèn)的包管理工具。

$ sudo apt-get update

$ sudo dnf update

8. grep

當(dāng)你需要查找一個(gè)文件,但是又忘記了它具體的位置和路徑時(shí),grep命令會(huì)幫助你解決這個(gè)難題。你可以提供文件的關(guān)鍵字,使用grep命令來查找到它。

$ 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é)

如我在文章開始所言,這 10 條命令并不會(huì)讓你立即成為一個(gè) Linux 大拿,但它們會(huì)讓你在初期快速上手 Linux。以這些命令為基礎(chǔ),給自己設(shè)置一個(gè)目標(biāo),每天學(xué)習(xí)一到三條命令,這就是此文的目的所在。

網(wǎng)頁標(biāo)題:linux命令do linux命令動(dòng)態(tài)查看日志
文章鏈接:http://muchs.cn/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開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)