新聞中心
Linux安裝基本命令
Linux安裝基本命令大全
廣西網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,廣西網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為廣西成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的廣西做網(wǎng)站的公司定做!
Linux常用命令,你還能記得多少呢?下文是我為大家準(zhǔn)備的Linux常用命令,一起來看看吧!
安裝升級(jí)
查看軟件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)升級(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) 訪問路經(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
測(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或?打開幫助窗口,輸入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)程號(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)程打開的文件
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相對(duì))
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相對(duì))
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下怎么運(yùn)行main函數(shù)
1.運(yùn)行:
本文使用一個(gè)簡(jiǎn)單的C程序(simple.c)。代碼如下:
int main()
{
return(0);
}
2. 編譯:
~#gcc -o simple simple.c
3. 查看可執(zhí)行文件的基本信息
~#objdump -f simple
simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0借助objdump這個(gè)工具,可以獲得可執(zhí)行文件的一些關(guān)鍵信息。
Linux——網(wǎng)絡(luò)配置命令
一、ifconfig
自u(píng)buntu17起,已經(jīng)不提供這個(gè)命令了,要自動(dòng)安裝
sudo apt install net-tools
ifconfig -a :查看當(dāng)前系統(tǒng)所有的網(wǎng)絡(luò)接口
ifconfig interface(PS:這里是網(wǎng)絡(luò)接口的名稱) down:禁用當(dāng)前網(wǎng)絡(luò)接口
ifconfig interface up :啟用網(wǎng)絡(luò)接口
二、ip命令
1、管理網(wǎng)絡(luò)接口
1)、ip link list 顯示網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)
2)、ip -s link list 顯示更詳細(xì)的網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)
4)、ip link set dev ens33 mtu 1600: 改變網(wǎng)絡(luò)設(shè)備最大傳輸單元 MTU的值為1600
2、管理ip地址
1)、ip a show dev ens33 顯示指定網(wǎng)絡(luò)接口的ip
2)、ip addr ls ens33
5)、ip -4 addr flush ens33
通過id修改的ip地址重啟后會(huì)消失。如果要永久保存,則需要修改配置文件
3、管理路由表
1)、ip route show 顯示main 路由表的路由信息
每行定義一個(gè)路由表,前面的數(shù)字為路由編號(hào),后面為路由名稱
以上的幾個(gè)路由表為默認(rèn)路由表,用戶不可以修改
默認(rèn)所有的路由表都會(huì)被插入到254的main表中。在進(jìn)行路由查詢時(shí),內(nèi)核只使用路由表main
3)、ip route show table local 指定顯示路由表
4、管理策略路由
1)、ip route list 列出當(dāng)前系統(tǒng)的策略路由規(guī)則
2、添加一條到達(dá)網(wǎng)絡(luò)224.0.0.0/28的路由
route add -net 224.0.0.0/28 netmask 224.0.0.0 dev docker0
3、刪除指定的路由記錄224.0.0.0
route del -net 224.0.0.0 netmask 224.0.0.0
route -n 查看路由
5、刪除默認(rèn)網(wǎng)關(guān)
route del default gw 172.17.0.0 dev docker0
route -n
四、netstat命令
1、netstat(network status) 查看各種網(wǎng)絡(luò)信息的,包括網(wǎng)絡(luò)連接、路由表以及網(wǎng)絡(luò)接口的各種統(tǒng)計(jì)數(shù)據(jù)
netstat [options]
常用的幾個(gè)選項(xiàng):
-a :顯示所有處于活動(dòng)狀態(tài)的套接字
-t :顯示TCP/IP協(xié)議的連接信息
-l:列出所有處于監(jiān)聽狀態(tài)的套接字
-n:直接顯示ip地址,不轉(zhuǎn)換成域名
-i :列出所有的網(wǎng)絡(luò)接口
-p:顯示使用套接字的進(jìn)程id和程序名
-r:顯示路由表信息
2、netstat -a
顯示所有的端口,包含未監(jiān)聽的和監(jiān)聽的
3、nestat -at
只顯示TCP/IP協(xié)議的連接
4、netstat -tl
只顯示處于監(jiān)聽狀態(tài)的TCP連接
5、netstat -tlanx
顯示數(shù)字形式的ip地址
6、netstat -anp | grep ":80"
排查處于某個(gè)端口被占用導(dǎo)致服務(wù)器無法啟動(dòng)
7、netstat -i
列出當(dāng)前系統(tǒng)的所有網(wǎng)絡(luò)接口
8、netstat -r
查看路由表信息
該命令是向某臺(tái)主機(jī)( )發(fā)送ICMP數(shù)據(jù)包,并接收響應(yīng)
Ctrl+C退出ping 命令
linux 使用find和locate命令查找/目錄下所有已main開頭的文件,并顯示這些文件的內(nèi)容!
1、打開shell連接抄工具,連接上服務(wù)器,pwd查看當(dāng)前目錄,一般進(jìn)來默認(rèn)在主目錄下。
2、通過命令:cd /切換到主目錄下,然后pwd查看當(dāng)前目錄,并用ls可以查看當(dāng)前目錄下的文件及目錄。
3、假如要找一個(gè)nginx配置文件nginx.conf,那么可以通過find命令查找:find . -name 'nginx.conf'。
4、假如不知道文件的具體名字只是模糊記得幾個(gè)關(guān)鍵的單詞,那么就可以通過模糊匹配去搜索:find 目錄 -name '*nginx*' 查找即可。
擴(kuò)展資料:
shutdown.exe -a取消關(guān)機(jī)。
shutdown.exe -s 關(guān)機(jī)。
shutdown.exe -f強(qiáng)行關(guān)閉應(yīng)用程序。
shutdown.exe -m \\計(jì)算機(jī)名 控制遠(yuǎn)程計(jì)算機(jī)。
shutdown.exe -i顯示圖形用戶界面,但必須是Shutdown的第一個(gè)參數(shù)。
shutdown.exe -l注銷當(dāng)前用戶。
shutdown -r關(guān)機(jī)并重啟。
Linux文件相關(guān)命令
grep命令:
grep命令是非常重要的命令,可以對(duì)文本進(jìn)行查找和搜索
常用參數(shù)如下:
常用實(shí)例:
1、在多個(gè)文件中查找:
grep "file" file_1 file_2 file_3
2、輸出除之外的所有行 -v 選項(xiàng):
grep -v "file" file_name
3、標(biāo)記匹配顏色 --color=auto 選項(xiàng):
grep "file" file_name --color=auto
4、使用正則表達(dá)式 -E 選項(xiàng):
grep -E "[1-9]+"
egrep "[1-9]+"
5、只輸出文件中匹配到的部分 -o 選項(xiàng):
echo this is a test line. | grep -o -E "[a-z]+."
line.
echo this is a test line. | egrep -o "[a-z]+."
line.
6、統(tǒng)計(jì)文件或者文本中包含匹配字符串的行數(shù)-c 選項(xiàng):
grep -c "text" file_name
2
7、輸出包含匹配字符串的行數(shù) -n 選項(xiàng):
grep "text" -n file_name
或
cat file_name | grep "text" -n
8、多個(gè)文件
grep "text" -n file_1 file_2
9、搜索多個(gè)文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
10、grep遞歸搜索文件
在多級(jí)目錄中對(duì)文本進(jìn)行遞歸搜索:
grep "text" . -r -n
11、忽略匹配樣式中的字符大小寫:
echo "hello world" | grep -i "HELLO"
hello
12、選項(xiàng) -e 指定多個(gè)匹配樣式:
echo this is a text line | grep -e "is" -e "line" -o
is
line
13、也可以使用 -f 選項(xiàng)來匹配多個(gè)樣式,在樣式文件中逐行寫出需要匹配的字符。
cat patfile
aaa
bbb
echo aaa bbb ccc ddd eee | grep -f patfile -o
14、在grep搜索結(jié)果中包括或者排除指定文件:
只在目錄中所有的.php和.html文件中遞歸搜索字符"main()"
grep "main()" . -r --include *.{php,html}
15、在搜索結(jié)果中排除所有README文件
grep "main()" . -r --exclude "README"
16、在搜索結(jié)果中排除filelist文件列表里的文件
grep "main()" . -r --exclude-from filelist
touch abc.txt 創(chuàng)建一個(gè)名為abc.txt的文件
touch -r 指定文件時(shí)間與參考文件相同
touch -t 201608012234.55[yyyymmddhhmm.ss] abc.txt 更改文件為指定的時(shí)間
touch temp 創(chuàng)建一個(gè)名為temp的文件
vi編輯器有三種模式,命令行模式、編輯模式、底行模式。
vi 文件名進(jìn)入命令行模式,Insert進(jìn)入編輯模式,編輯完成Esc退出編輯模式,:wq進(jìn)入底行模式并保存修改,:q直接退出保存。
tar命令用于打包壓縮文件,常用的壓縮命令還有bzip2,gzip
bunzip2 file1.bz2 解壓一個(gè)叫做 'file1.bz2'的文件
bzip2 file1 壓縮一個(gè)叫做 'file1' 的文件
gunzip file1.gz 解壓一個(gè)叫做 'file1.gz'的文件
gzip file1 壓縮一個(gè)叫做 'file1'的文件
gzip -9 file1 最大程度壓縮
rar a file1.rar test_file 創(chuàng)建一個(gè)叫做 'file1.rar' 的包
rar a file1.rar file1 file2 dir1 同時(shí)壓縮 'file1', 'file2' 以及目錄 'dir1'
rar x file1.rar 解壓rar包
unrar x file1.rar 解壓rar包
tar -cvf archive.tar file1 創(chuàng)建一個(gè)非壓縮的 tarball
tar -cvf archive.tar file1 file2 dir1 創(chuàng)建一個(gè)包含了 'file1', 'file2' 以及 'dir1'的檔案文件
tar -tf archive.tar 顯示一個(gè)包中的內(nèi)容
tar -xvf archive.tar 釋放一個(gè)包
tar -xvf archive.tar -C /tmp 將壓縮包釋放到 /tmp目錄下
tar -cvfj archive.tar.bz2 dir1 創(chuàng)建一個(gè)bzip2格式的壓縮包
tar -xvfj archive.tar.bz2 解壓一個(gè)bzip2格式的壓縮包
tar -cvfz archive.tar.gz dir1 創(chuàng)建一個(gè)gzip格式的壓縮包
tar -xvfz archive.tar.gz 解壓一個(gè)gzip格式的壓縮包
zip file1.zip file1 創(chuàng)建一個(gè)zip格式的壓縮包
zip -r file1.zip file1 file2 dir1 將幾個(gè)文件和目錄同時(shí)壓縮成一個(gè)zip格式的壓縮包
unzip file1.zip 解壓一個(gè)zip格式壓縮包
which命令用于用戶查找命令所有路徑
命令格式
file命令用于獲取文件屬性
命令格式
file 文件名或目錄名
命令示例:
使用說明
命令格式:cat [-AbeEnstTuv] [--help] [--version] fileName
cat file1 從第一個(gè)字節(jié)開始正向查看文件的內(nèi)容
-n 或 --number:由 1 開始對(duì)所有輸出的行數(shù)編號(hào)。
-b 或 --number-nonblank:和 -n 相似,只不過對(duì)于空白行不編號(hào)。
-s 或 --squeeze-blank:當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符號(hào),除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行結(jié)束處顯示 $。
-T 或 --show-tabs: 將 TAB 字符顯示為 ^I。
-A, --show-all:等價(jià)于 -vET。
-e:等價(jià)于"-vE"選項(xiàng);
-t:等價(jià)于"-vT"選項(xiàng);
使用示例
把 textfile1 的文檔內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)文檔里
cat -n textfile1 textfile2
把 textfile1 和 textfile2 的文檔內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3 文檔里
cat -b textfile1 textfile2 textfile3
清空 /etc/test.txt 文檔內(nèi)容
cat /dev/null /etc/test.txt
tac [filename]
從最后一行開始反向查看一個(gè)文件的內(nèi)容,ac與cat命令剛好相反,文件內(nèi)容從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫。
nl [-bnw] 文件
選項(xiàng)與參數(shù):
-b: 指定行號(hào)指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號(hào)(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(hào)(默認(rèn)值);
-n :列出行號(hào)表示的方法,主要有三種:
-n ln :行號(hào)在熒幕的最左方顯示;
-n rn :行號(hào)在自己欄位的最右方顯示,且不加 0 ;
-n rz :行號(hào)在自己欄位的最右方顯示,且加 0 ;
-w :行號(hào)欄位的占用的位數(shù)。
more file1 查看一個(gè)長(zhǎng)文件的內(nèi)容,支持一頁一頁翻動(dòng)
運(yùn)行的時(shí)候,支持以下幾個(gè)按鍵:
空白鍵 (space):代表向下翻一頁;
Enter :代表向下翻『一行』;
/字串 :代表在這個(gè)顯示的內(nèi)容當(dāng)中,向下搜尋『字串』這個(gè)關(guān)鍵字;
:f :立刻顯示出檔名以及目前顯示的行數(shù);
q :代表立刻離開 more ,不再顯示該文件內(nèi)容。
b 或 [ctrl]-b :代表往回翻頁,不過這動(dòng)作只對(duì)文件有用,對(duì)管線無用。
less file1 類似于 'more' 命令,但是它允許在文件中和正向操作一樣的反向操作
less運(yùn)行時(shí)可以輸入的命令有:
空白鍵 :向下翻動(dòng)一頁;
[pagedown]:向下翻動(dòng)一頁;
[pageup] :向上翻動(dòng)一頁;
/字串 :向下搜尋『字串』的功能;
?字串 :向上搜尋『字串』的功能;
n :重復(fù)前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
N :反向的重復(fù)前一個(gè)搜尋 (與 / 或 ? 有關(guān)!)
q :離開 less 這個(gè)程序;
head [-n number]
head -2 file1 查看一個(gè)文件的前兩行
tail [-n number]
tail -2 file1 查看一個(gè)文件的最后兩行
tail -f /var/log/messages 實(shí)時(shí)查看被添加到一個(gè)文件中的內(nèi)容
文件權(quán)限列中三位為一組,分別代表相關(guān)的用戶、組、其它用戶的權(quán)限
權(quán)限列中三位為一組,分別代表相關(guān)的用戶、組、其它用戶的權(quán)限
所以修改權(quán)限可以分別修改或一同修改,系統(tǒng)中權(quán)限分為數(shù)字權(quán)限與字符權(quán)限
數(shù)字權(quán)限:r=4,w=2,x=1
字符權(quán)限:+ 增加 -去除 a取消所有加上給定的
修改權(quán)限的命令chmod,命令格式:
chmod 權(quán)限 文件名或目錄名 修改權(quán)限格式
chmod -R 權(quán)限 目錄名 遞歸將目錄及其下面所有內(nèi)容權(quán)限全部修改
chown 改變文件或目錄的屬主(所有者)
chown 用戶名 文件名或目錄名
chown 用戶名.組名 文件名或目錄名
修改所屬組也可用chgrp 命令來完成
當(dāng)你用ls -l 查看到文件的屬主、屬組為數(shù)字時(shí),就表明該文件的創(chuàng)建用戶已被刪除。
文件的特殊權(quán)限
chattr +i(-i) 文件名 鎖定文件(取消鎖定)不可刪除與清空
chattr +a(-a) 文件名 添加內(nèi)容(只可添加內(nèi)容)
使用lsattr 文件名 查看文件的特殊權(quán)限
由此可以看出
root用戶默認(rèn)創(chuàng)建的目錄權(quán)限是755,文件權(quán)限是644
普通用戶默認(rèn)創(chuàng)建的目錄權(quán)限是775,文件權(quán)限是664
這也是系統(tǒng)默認(rèn)的比較安全的權(quán)限分配,其實(shí)這些默認(rèn)權(quán)限全部都是由umask值來決定的
系統(tǒng)規(guī)定了
文件的權(quán)限值是從666開始計(jì)算(默認(rèn)權(quán)限=權(quán)限值-umask值)
目錄的權(quán)限值是從777開始計(jì)算(默認(rèn)權(quán)限=權(quán)限值-umask值)
文件1的權(quán)限=444 (666-232=434——43(3+1)4)
linux下,在調(diào)用main函數(shù)之前怎樣得到命令行參數(shù)argc和argv
#include mutex
#include thread
class main_args;
namespace details
{
templatetypename MainArgs
class main_args_access : MainArgs
{
public:
static void get_main_args_func(int c, char* v[], char* p[])
{
std::call_once(MainArgs::get_flag, [](){
MainArgs::argc = c;
MainArgs::argv = v;
MainArgs::envp = p;
});
}
};
}
class main_args
{
private:
friend class details::main_args_accessmain_args;
static std::once_flag get_flag;
public:
static int argc;
static char** argv;
static char** envp;
};
int main_args::argc;
char** main_args::argv = nullptr;
char** main_args::envp = nullptr;
namespace details
{
// gcc
#if defined(__GNUC__) (__linux__)
__attribute__((section(".init_array"))) void (*get_main_args_func_ptr)(int, char*[], char*[]) = (main_args_accessmain_args::get_main_args_func);
#endif
}
必需支持C++11以上的編譯器
文章題目:linux命令main,linux命令man詳解
本文路徑:http://fisionsoft.com.cn/article/hcsdsi.html