Linux常用命令与基本操作、填空题、简答题
文章目錄
- 基本知識點
- 基本操作
- 敘述什么是shell?
- 重啟虛擬機網(wǎng)絡(luò)
- 分區(qū)
- 查看當(dāng)前進(jìn)程
- 查看主機名
- 重啟
- 關(guān)機
- 查看IP地址
- 文件搜索
- 掛載
- 查看網(wǎng)絡(luò)配置
- linux系統(tǒng)中Vi的三種模式
- 磁盤分區(qū)
- 查看硬盤信息
- df,fdisk,lsblk區(qū)別
- 進(jìn)程
- 用戶
- 用戶信息
- 查看用戶密碼信息
- 修改密碼
- 添加用戶
- 修改用戶帳號
- 組
- 添加組
- 刪除組
- 修改組
- 修改用戶的工作組
- 指定要管理的工作組
- 目錄和文件操作
- 文件
- 目錄文件
- 顯示目錄下的內(nèi)容
- 讀寫權(quán)限
- 修改目錄的擁有者
- 修改文件的權(quán)限
- rwx權(quán)限詳解
- chmod改變權(quán)限
- 創(chuàng)建文件夾
- 創(chuàng)建文件
- 編輯文件
- 復(fù)制文件和目錄
- 刪除文件或目錄
- 刪除一個或多個空目錄
- 移動文件
- 查看文件夾和文件的內(nèi)存占用情況
- 操行符
- 壓縮命令
- 項目部署常用命令
- 查看進(jìn)程號
- 后臺運行jar包
- 查看nginx的安裝目錄
- 填空題
- 簡答題
- 1) 公司新來了一名員工,對員工進(jìn)行以下操作
- 2) 如果一個文件的權(quán)限是-r-w-r-$,解釋清楚-r-w-r- $的每個字符的含義
- 3) 描述邏輯分區(qū)是什么?它是怎么來的?如果讓你分區(qū),你如何操作?
- 4) shell腳本的定時性操作
- 5) 寫出提高linux系統(tǒng)安全性的方法 (答案有十二個,只要求寫十個)
- 6) 一個if判斷題,寫一個shell腳本
- 7) 什么是進(jìn)程?進(jìn)程資源由哪兩部分組成?
- 8) pid_t fork() 返回值的意義?
- 9) Linux環(huán)境中使用kill函數(shù)向進(jìn)程或進(jìn)程組發(fā)送信號
- 10) 共享主存和修改消息隊列狀態(tài)
- 11) 父進(jìn)程調(diào)用wait() 可能出現(xiàn)的三種情況?
- 12) 在進(jìn)程中,return和exit() 的區(qū)別?
- 13)什么是孤兒進(jìn)程?誰負(fù)責(zé)回收孤兒進(jìn)程的內(nèi)核空間資源?
- 14) 僵尸進(jìn)程是什么?如何消滅僵尸進(jìn)程?
- 15) 簡述進(jìn)程對可靠信號和不可靠信號的處理過程
- 16) 簡單介紹一下信號的定義及其分類
- 17) 簡單介紹一下匿名管道及其特點
- 18) 請解釋一下有名管道和匿名管道的區(qū)別?
- 19) 什么是線程?進(jìn)程和線程的區(qū)別?
- 20) Please describe the difference of signal() and sigaction() in brief
- 21)在標(biāo)準(zhǔn)IO庫中,rewind函數(shù)作用?
- 22)C語言中沒有明確給定初值的全局變量和靜態(tài)變量存放在哪兒?
- 23)函數(shù)geteuid()用于得到進(jìn)程的?
- 24)邏輯卷的創(chuàng)建
基本知識點
基本操作
敘述什么是shell?
Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。是一個命令解釋器,它可以用來啟動、掛起、停止、甚至編寫程序。重啟虛擬機網(wǎng)絡(luò)
sudo service networking restart分區(qū)
主分區(qū),邏輯分區(qū),擴展分區(qū)
查看當(dāng)前進(jìn)程
ps -aux查看主機名
hostname重啟
shutdown -r now reboot init 6 ctrlaltdel //強制或安全重新啟動服務(wù)器關(guān)機
shutdown -h now init 0 halt poweroff查看IP地址
#查看外網(wǎng)IP: curl ipinfo.io/ip #查看本機IP: ip addr 或 ifconfig文件搜索
find / -name file1 從 '/' 開始進(jìn)入根文件系統(tǒng)搜索文件和目錄 find /home/user1 -name \*.bin 在目錄 '/ home/user1' 中搜索帶有'.bin' 結(jié)尾的文件掛載
掛載:linux系統(tǒng)中,若用戶需對某個硬盤設(shè)備或文件進(jìn)行訪問,要將其掛載到一個目錄上。
掛載點命令
mount 進(jìn)行添加掛載點
卸載掛載點
umount 文件位置
umount /media
查看網(wǎng)絡(luò)配置
查看網(wǎng)絡(luò)接口信息 ifconfig
測試網(wǎng)絡(luò)連接狀態(tài) ping
查看網(wǎng)關(guān)地址和路由信息 route netsat
查看主機名稱信息 hostname nslookup
linux系統(tǒng)中Vi的三種模式
1.命令模式
2.文件編輯模式
3.底行模式
磁盤分區(qū)
fdisk -l 查看硬盤名稱 物理分區(qū):儲存空間最小的儲存單元卷組:一個或多個物理卷可整合一個卷組
邏輯卷:一個卷組可以劃分出一個或多個邏輯卷,用于建立文件系統(tǒng) Fstab文件用于管理文件系統(tǒng)信息
查看硬盤信息
# 安裝插件 yum install smartmontools# 查看 /dev/ 下 sda 盤的信息:smartctl --all /dev/sdadf,fdisk,lsblk區(qū)別
df:主要是檢查文件系統(tǒng)磁盤內(nèi)存占用情況
fdisk:一般用來磁盤分區(qū),也可以用來查看磁盤分區(qū)情況
lsblk命令用于列出所有可用塊設(shè)備的信息,同時能顯示它們之間的依賴關(guān)系。
進(jìn)程
系統(tǒng)進(jìn)程
用戶進(jìn)程
守護(hù)進(jìn)程
用戶
超級用戶
系統(tǒng)用戶
普通用戶
用戶信息
passwd
-d 用戶名 刪除用戶的密碼。則該用戶無需密碼即可登錄系統(tǒng) -S 用戶名 顯示指定用戶賬號的狀態(tài) -u 用戶名 解除指定用戶賬號 -l 用戶名 暫時鎖定指定的用戶賬號 Usedel [-r] 用戶名 刪除指定的用戶賬號 Su [-] [用戶名] 切換用戶身份 Id [用戶名] 查看用戶的UID和GID查看用戶密碼信息
cat /etc/shadow修改密碼
passwd 用戶名添加用戶
useradd(僅限超級管理用戶) -c 指定用戶的全稱修改用戶帳號
usermod可用來修改用戶帳號的各項設(shè)定
語法
參數(shù)說明:
-c<備注> 修改用戶帳號的備注文字。 -d登入目錄> 修改用戶登入時的目錄。 -e<有效期限> 修改帳號的有效期限。 -f<緩沖天數(shù)> 修改在密碼過期后多少天即關(guān)閉該帳號。 -g<群組> 修改用戶所屬的群組。 -G<群組> 修改用戶所屬的附加群組。 -l<帳號名稱> 修改用戶帳號名稱。 -L 鎖定用戶密碼,使密碼無效。 -s<shell> 修改用戶登入后所使用的shell。 -u<uid> 修改用戶ID。 -U 解除密碼鎖定。實例
更改登錄目錄
改變用戶的uid
usermod -u 777 root組
添加組
groupadd
指定群組名稱來建立新的群組賬號,需要時可以從系統(tǒng)中取得新的群組值。
此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
groupadd [選項] group
2、選項列表
3、文件
4、實例
創(chuàng)建組,指定組的id
刪除組
刪除組,如果租內(nèi)有用戶,那么必須先刪除用戶。
此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
groupdel 組名 刪除指定的組名
2、選項列表
3、實例
修改組
Linux groupmod命令用于更改群組識別碼或名稱。
需要更改群組的識別碼或名稱時,可用groupmod指令來完成這項工作。
語法
groupmod [-g <群組識別碼> <-o>][-n <新群組名稱>][群組名稱]參數(shù):
-g <群組識別碼> 設(shè)置欲使用的群組識別碼。
-o 重復(fù)使用群組識別碼。
-n <新群組名稱> 設(shè)置欲使用的群組名稱。
實例
修改組名
修改用戶的工作組
Chgrp
功能: 改變文件的擁有組
示例:
請將/home/catch .txt文件的所在組修改成 letter
chgrp letter /home/catch.txt請將 /home/* 目錄下所有的文件和目錄的所在組都修改成letter
chgrp -R letter /home/*指定要管理的工作組
gpasswd命令是Linux下工作組文件/etc/group和/etc/gshadow的管理工具,用于指定要管理的工作組。
選項詳解:
-a : 添加用戶到組-d : 從組刪除用戶-A:指定管理員-M:指定組成員和-A的用途差不多;-r:刪除密碼;-R:限制用戶登入組,只有組中的成員才可以用newgrp加入該組。實例
將userA添加到groupB用戶組里面:
注意:添加用戶到某一個組可以使用 usermod -G groupB userA 這個命令可以添加一個用戶到指定的組,但是以前添加的組就會清空掉,所以想要添加一個用戶到一個組,同時保留以前添加的組時,請使用gpasswd這個命令來添加操作用戶。
將userA設(shè)置為groupA的群組管理員:
gpasswd -A userA groupA目錄和文件操作
file: 查詢文件的類型
du:顯示目錄或文件的磁盤占用量(文件系統(tǒng)數(shù)據(jù)庫的情況)
wc:統(tǒng)計文件的行數(shù)、單詞數(shù)、字節(jié)數(shù)和字符數(shù)
tree:以樹狀圖逐級列出目錄的內(nèi)容
cksum:顯示文件的CRC校驗值和字節(jié)統(tǒng)計
mk5sum:顯示或檢查MD5(128-bit)
sum:為文件輸出校驗及塊計數(shù)
dirname:輸出去除尾“/”字符部分的名稱,名稱不包含“/”則顯示“.”
basename:去除前導(dǎo)的目錄部分后顯示名稱,如果指定后綴的話會去掉后綴
In: 創(chuàng)建鏈接文件
stat:顯示文件或文件系統(tǒng)的狀態(tài)
文件
普通文件
目錄文件
設(shè)備文件
目錄文件
/bin 普通用戶使用的命令,二進(jìn)制目錄,存放二進(jìn)制可執(zhí)行文件(ls,cat,mkdir等),常用命令一般都在這里。 /etc 目錄存放系統(tǒng)的大部分配置文件和子目錄。存放系統(tǒng)管理和配置文件 /usr 用于存放系統(tǒng)應(yīng)用程序,比較重要的目錄/usr/local 本地系統(tǒng)管理員軟件安裝目錄(安裝系統(tǒng)級的應(yīng)用)。這是最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個目錄。 /usr/x11r6 存放x window的目錄 /usr/bin 眾多的應(yīng)用程序 /usr/sbin 超級用戶的一些管理程序 /usr/doc linux文檔 /usr/include linux下開發(fā)和編譯應(yīng)用程序所需要的頭文件 /usr/lib 常用的動態(tài)鏈接庫和軟件包的配置文件 /usr/man 幫助文檔 /usr/src 源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的庫 /opt 額外安裝的可選應(yīng)用程序包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這里。 /proc 虛擬文件系統(tǒng)目錄,是系統(tǒng)內(nèi)存的映射。可直接訪問這個目錄來獲取系統(tǒng)信息。 /root 超級用戶(系統(tǒng)管理員)的主目錄(特權(quán)階級^o^) /temp 用于存放各種臨時文件,是公用的臨時文件存儲點。 /home 普通用戶主目錄,存放所有用戶文件的根目錄,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示 /lib 庫函數(shù)及內(nèi)核函數(shù), 存放跟文件系統(tǒng)中的程序運行所需要的共享庫及內(nèi)核模塊。共享庫又叫動態(tài)鏈接共享庫,作用類似windows里的.dll文件,存放了根文件系統(tǒng)程序運行所需的共享文件。 /lost+found 默認(rèn)空的,當(dāng)系統(tǒng)不正常關(guān)機后,這里就成了一些無家可歸的文件的避難所 /sbin 超級用戶管理員使用的命令,存放二進(jìn)制可執(zhí)行文件,只有root才能訪問。這里存放的是系統(tǒng)管理員使用的系統(tǒng)級別的管理命令和程序。如ifconfig等。 /boot 超級用戶管理員使用的命令 /dev 用于存放設(shè)備文件, /misc 備用文件夾 /mnt 設(shè)備掛載點 ,系統(tǒng)管理員安裝臨時文件系統(tǒng)的安裝點,系統(tǒng)提供這個目錄是讓用戶臨時掛載其他的文件系統(tǒng)。 /var 用于存放運行時需要改變數(shù)據(jù)的文件,也是某些大文件的溢出區(qū),比方說各種服務(wù)的日志文件(系統(tǒng)啟動日志等。)等。pwd 顯示當(dāng)前用戶所處的工作目錄的絕對路徑
顯示目錄下的內(nèi)容
ls --color=never 不是用顏色表示不同類型文件 ls -a 顯示所有文件 ls -l 以長格式顯示文件 ls -d 只顯示目錄 ls -i 查看inode節(jié)點 dirs //顯示目錄列表,在只需要顯示目錄的時候比較簡單實用讀寫權(quán)限
讀權(quán)限r(nóng)(read):
對文件而言 是讀取文件的內(nèi)容的權(quán)限,對目錄而言是列出目錄下所包含的內(nèi)容的權(quán)限。
寫權(quán)限w:
對文件而言是修改文件內(nèi)容的權(quán)限;對目錄而言是在目錄下創(chuàng)建及刪除文件的權(quán)限
執(zhí)行權(quán)限 x:
對可執(zhí)行文件而言 是允許執(zhí)行改文件的權(quán)限,對目錄而言是進(jìn)入目錄的權(quán)限。
(1)符號表示法
Ls -l 文件名 列出某個目錄下每個文件的權(quán)限
-rw 讀寫
–: 0
w: 2
x: 1
r: 4
第一個值是文件類型
后面每3個為一組,分別代表用戶的權(quán)限 組權(quán)限 通用權(quán)限
修改目錄的擁有者
Chown 文件擁有人[:文件擁有組] 文件
改變文件的擁有人,可一并修改文件的擁有組
實例:
修改文件所有者
遞歸改變文件所有者和所有組
chown -R tom:leader home/修改文件的權(quán)限
chmod是Linux/Unix中修改文件或者目錄權(quán)限的命令,通過修改權(quán)限可以讓指定的人對文件可讀、可寫、可運行,極大地保證了數(shù)據(jù)的安全性。
0-9位說明
第0位確定文件類型(說明:
-:普通文件
d:目錄
l : 連接文件,
c: 字符設(shè)備文件[鍵盤,鼠標(biāo)]
b:塊設(shè)備文件[硬盤] )
第1-3位確定所有者(該文件的所有者)擁有該文件的權(quán)限。
R: 讀
w : 寫權(quán)限
x: 執(zhí)行權(quán)限
第4-6位確定所屬組(同用戶組的)擁有該文件的權(quán)限
第7-9位確定其他用戶擁有該文件的權(quán)限
1: 如果是文件,表示硬鏈接的數(shù)目, 如果是目錄,則表示有多少個子目錄
1213: 表示文件大小,如果是目錄,則統(tǒng)一為 4096
rwx權(quán)限詳解
rwx作用到文件(重要)
r: 代表可讀(read): 可以讀取,查看
w:代表可寫(write): 可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有寫權(quán)限,才能刪除該文件.
x: 代表可執(zhí)行(execute):可以被執(zhí)行
rwx作用到目錄(重要)
r: 代表可讀(read): 可以讀取,ls查看目錄內(nèi)容
w:代表可寫(write): 可以修改,目錄內(nèi)創(chuàng)建+刪除+重命名目錄
x:代表可執(zhí)行(execute):可以進(jìn)入該目錄
chmod改變權(quán)限
通過chmod指令,可以修改文件或者目錄的權(quán)限
u: 文件擁有人
g: 文件擁有組
o: 其他人
a:所有人
一)+ 、-、= 變更權(quán)限
示例:
1.使myshare下的所有文件和子目錄都自動擁有工作組為bin
chmod g+s myshare ls -ld myshare/2.給catch文件 的所有者讀寫執(zhí)行的權(quán)限,給所在組讀執(zhí)行權(quán)限,給其它組讀執(zhí)行權(quán)限。
chmod u=rwx, g=rx ,o=rx catch3.給catch文件的所有者除去執(zhí)行的權(quán)限,增加組寫的權(quán)限
chmod u-x, g+w catch4.給catch文件的所有用戶添加讀的權(quán)限
chmod a+r catch二)第二種方式:通過數(shù)字變更權(quán)限
數(shù)字代表的權(quán)限:r=4 w=2 x=1 rwx=4+2+1=7
示例:
將 catch.txt 文件的權(quán)限修改成 rwxr-xr-x, 使用給數(shù)字的方式實現(xiàn):
創(chuàng)建文件夾
mkdir myshare/testdir mkdir -p //會自動創(chuàng)建父文件夾 ls -l myshare mkdir -p 一次性創(chuàng)建多級目錄創(chuàng)建文件
touch a.txt提示: 如果文件名字已經(jīng)存在了,不會報錯,也不會覆蓋
編輯文件
vim a.txt提示:
文件名字不存在,會自動創(chuàng)建
復(fù)制文件和目錄
cp 命令,主要用來復(fù)制文件和目錄,同時借助某些選項,還可以實現(xiàn)復(fù)制整個目錄,以及比對兩文件的新舊而予以升級等功能。
cp 命令的基本格式如下:cp [選項] 源文件 目標(biāo)目錄/文件
選項:
-a:相當(dāng)于 -d、-p、-r 選項的集合,這幾個選項我們一一介紹; -d:如果源文件為軟鏈接(對硬鏈接無效),則復(fù)制出的目標(biāo)文件也為軟鏈接; -i:詢問,如果目標(biāo)文件已經(jīng)存在,則會詢問是否覆蓋; -l:把目標(biāo)文件建立為源文件的硬鏈接文件,而不是復(fù)制源文件; -s:把目標(biāo)文件建立為源文件的軟鏈接文件,而不是復(fù)制源文件; -p:復(fù)制后目標(biāo)文件保留源文件的屬性(包括所有者、所屬組、權(quán)限和時間); -r:遞歸復(fù)制,用于復(fù)制目錄; -u:若目標(biāo)文件比源文件有差異,則使用該選項可以更新目標(biāo)文件,此選項可用于對文件的升級和備用。當(dāng)源文件可以有多個,但這種情況下,目標(biāo)文件必須是目錄才可以。
這里的軟鏈接,類似于 Windows 系統(tǒng)中的快捷方式,而硬鏈接則是透過文件系統(tǒng)的 inode 號產(chǎn)生一個新的文件名。無論是復(fù)制軟鏈接還是硬鏈接,都不是復(fù)制源文件。
cp 命令既可以復(fù)制文件,也可以復(fù)制目錄。
touch cangls #建立源文件 cp cangls /tmp/ #把源文件不改名復(fù)制到 /tmp/ 目錄下 cp cangls /tmp/bols #改名復(fù)制如果復(fù)制的目標(biāo)位置已經(jīng)存在同名的文件,則會提示是否覆蓋,因為 cp 命令默認(rèn)執(zhí)行的是“cp -i”的別名,例如:
cp cangls /tmp/ cp:是否覆蓋"/tmp/cangls"?y #目標(biāo)位置有同名文件,所以會提示是否覆蓋復(fù)制目錄,其實復(fù)制目錄只需使用“-r”選項即可,例如:
cp -r /root/movie/ /tmp/刪除文件或目錄
rm是常用的命令,該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對于鏈接文件,只是刪除了鏈接,原有文件均保持不變。
rm是一個危險的命令,使用的時候要特別當(dāng)心,尤其對于新手,否則整個系統(tǒng)就會毀在這個命令(比如在/(根目錄)下執(zhí)行rm *-rf)。所以,我們在執(zhí)行rm之前最好先確認(rèn)一下在哪個目錄,到底要刪除什么東西,操作時保持高度清醒的頭腦。
在使用 rm 命令刪除文件或目錄時,系統(tǒng)不會產(chǎn)生任何提示信息。
1.命令的基本格式
rm[選項] 文件或目錄2.命令功能
刪除一個目錄中的一個或多個文件或目錄,如果沒有使用- r選項,則rm不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復(fù)原狀。
3.命令參數(shù):
常用命令選項
rm 命令如果任何選項都不加,則默認(rèn)執(zhí)行的是"rm -i 文件名",也就是在刪除一個文件之前會先詢問是否刪除。
如果要刪除的目錄中有 1 萬個子目錄或子文件,那么普通的 rm 刪除最少需要確認(rèn) 1 萬次。所以,在真正刪除文件的時候,我們會選擇強制刪除:
rm -rf /hdfs_demo #強制刪除,一了百了雖然 “-rf” 選項是用來刪除目錄的,但是刪除文件也不會報錯。所以,為了使用方便,一般不論是刪除文件還是刪除目錄,都會直接使用 “-rf” 選項。
4.實例
刪除文件file,系統(tǒng)會先詢問是否刪除
將 MapReduce子目錄及子目錄中所有檔案刪除
rm -r MapReduce刪除一個或多個空目錄
外置命令,rmdir 命令,只能刪除空目錄。
rmdir命令作用是刪除空的目錄,英文全稱:“remove directory”。
rmdir命令只能刪除空目錄。當(dāng)要刪除非空目錄時,就要使用帶有“-R”選項的rm命令。
rmdir命令的“-p”參數(shù)可以遞歸刪除指定的多級目錄,但是要求每個目錄也必須是空目錄。
語法格式 :
rmdir [參數(shù)] [目錄名稱]常用參數(shù):
刪除空目錄:
遞歸刪除指定的目錄樹
rmdir -p dir/dir_/dir_2顯示指令詳細(xì)執(zhí)行過程
rmdir -v dir rmdir -p -v dir/dir_/dir_2顯示命令的版本信息
rmdir --version移動文件
mv命令:用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。
source表示源文件或目錄,target表示目標(biāo)文件或目錄。如果將一個文件移到一個已經(jīng)存在的目標(biāo)文件中,則目標(biāo)文件的內(nèi)容將被覆蓋。
mv命令可以用來將源文件移至一個目標(biāo)文件中,或?qū)⒁唤M文件移至一個目標(biāo)目錄中。源文件被移至目標(biāo)文件有兩種不同的結(jié)果:
1.如果目標(biāo)文件是到某一目錄文件的路徑,源文件會被移到此目錄下,且文件名不變。
2.如果目標(biāo)文件不是目錄文件,則源文件名(只能有一個)會變?yōu)榇四繕?biāo)文件名,并覆蓋己存在的同名文件。如果源文件和目標(biāo)文件在同一個目錄下,mv的作用就是改文件名。當(dāng)目標(biāo)文件是目錄文件時,源文件或目錄參數(shù)可以有多個,則所有的源文件都會被移至目標(biāo)文件中。所有移到該目錄下的文件都將保留以前的文件名。
注意事項:mv與cp的結(jié)果不同,mv好像文件“搬家”,文件個數(shù)并未增加。而cp對文件進(jìn)行復(fù)制,文件個數(shù)增加了。
語法
mv(選項)(參數(shù))選項
--backup=<備份模式>: 若需覆蓋文件,則覆蓋前先行備份;-b:當(dāng)文件存在時,覆蓋前,為其創(chuàng)建一個備份;-f:若目標(biāo)文件或目錄與現(xiàn)有的文件或目錄重復(fù),則直接覆蓋現(xiàn)有的文件或目錄(強制覆蓋同名文件);-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標(biāo)文件或目標(biāo)目錄中的文件同名,則詢問用戶是否覆蓋目標(biāo)文件。用戶輸入”y”,表示將覆蓋目標(biāo)文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。--strip-trailing-slashes:刪除源文件中的斜杠“/”;-S<后綴>:為備份文件指定后綴,而不使用默認(rèn)的后綴;--target-directory=<目錄>:指定源文件要移動到目標(biāo)目錄;-u:當(dāng)源文件比目標(biāo)文件新或者目標(biāo)文件不存在時,才執(zhí)行移動操作。
實例:
實例一、移動文件或目錄
如果移動的目標(biāo)位置已經(jīng)存在同名的文件,則同樣會提示是否覆蓋,因為 mv 命令默認(rèn)執(zhí)行的也是 “mv -i” 的別名,例如:
touch cangls #重新建立文件mv cangls /tmp mv #是否覆蓋"tmp/cangls"?y#由于 /tmp 目錄下已經(jīng)存在 cangls 文件,所以會提示是否覆蓋,需要手工輸入 y 覆蓋移動實例二、強制移動
如果目標(biāo)目錄下已經(jīng)存在同名文件,則會提示是否覆蓋,需要手工確認(rèn)。這時如果移動的同名文件較多,則需要一個一個文件進(jìn)行確認(rèn),很不方便。
如果我們確認(rèn)需要覆蓋已經(jīng)存在的同名文件,則可以使用 “-f” 選項進(jìn)行強制移動,這就不再需要用戶手工確認(rèn)了。例如:
touch cangls #重新建立文件mv -f cangls /tmp #就算 /tmp/ 目錄下已經(jīng)存在同名的文件,由于"-f"選項的作用,所以會強制覆蓋實例三、不覆蓋移動
既然可以強制覆蓋移動,那也有可能需要不覆蓋的移動。如果需要移動幾百個同名文件,但是不想覆蓋,這時就需要 “-n” 選項的幫助了。例如:
實例四、改名
如果源文件和目標(biāo)文件在同一目錄中,那就是改名。
目錄也可以按照同樣的方法改名。
實例五、顯示移動過程
如果我們想要知道在移動過程中到底有哪些文件進(jìn)行了移動,則可以使用 “-v” 選項來查看詳細(xì)的移動信息。例如:
查看文件夾和文件的內(nèi)存占用情況
du -a操行符
+ 增加權(quán)限- 刪除權(quán)限= 賦予給定權(quán)限壓縮命令
1、bzip方式、bzip2方式、zip方式
bzip方式 壓縮文件后綴是 .bz2bzip2 文件名 進(jìn)行壓縮bzip2 -d 壓縮文件名 進(jìn)行解壓bzip2 -9 文件名 進(jìn)行高壓縮比的壓縮zip -r myfile.zip ./* 將當(dāng)前目錄下的所有文件和文件夾全部壓縮成myfile.zip文件,-r表示遞歸壓縮子目錄下所有文件.2、gzip方式
壓縮文件后綴是 .gz
gzip 文件名 進(jìn)行壓縮
gzip -d 壓縮文件名 進(jìn)行解壓
gzip -9 文件名 進(jìn)行高壓縮比的壓縮
3、unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解壓到 /home/sunny/
-o:不提示的情況下覆蓋文件;
-d:-d /home/sunny 指明將文件解壓縮到/home/sunny目錄下;
4、tar(重點)
壓縮命令
解壓命令
tar -jxvf 壓縮文件名 tar -zxvf 壓縮文件名 tar –xvf file.tar //解壓 tar包tar -xzvf file.tar.gz //解壓tar.gz-c: 創(chuàng)建 .tar格式的包文件
-x: 解壓.tar格式的包文件
-v :輸出詳細(xì)信息
-f: 表示使用歸檔文件
-p:打包時保留原始文件及目錄的權(quán)限
-t:列表查看包內(nèi)的文件
-z:調(diào)用gzip程序進(jìn)行壓縮或解壓
-j:調(diào)用bzip2程序進(jìn)行壓縮或解壓
項目部署常用命令
查看進(jìn)程號
ps -ef | grep java 查看所有Java相關(guān)的進(jìn)程
#殺進(jìn)程:kill -9 進(jìn)程號
#查看端口占用情況
lsof -i:端口號 用于查看某一端口的占用情況,比如查看8000端口使用情況,lsof -i:8000 netstat -ntlp //查看當(dāng)前所有tcp端口#linux查看日志文件:tail -f test.log 查看實時日志
linux 如何顯示一個文件的某幾行(中間幾行)
從第3000行開始,顯示1000行。即顯示3000~3999行 cat filename | tail -n +3000 | head -n 1000
顯示1000行到3000行 cat filename| head -n 3000 | tail -n +1000
tac (反向列示)
tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行連續(xù)顯示在螢?zāi)簧?#xff0c;而 tac 則是由最后一行到第一行反向在螢?zāi)簧巷@示出來
后臺運行jar包
方式一:
$ nohup java -jar test.jar &方法二:
$ nohup java -jar test.jar >temp.txt &//這種方法會把日志文件輸入到你指定的文件中,沒有則會自動創(chuàng)建jobs命令://列出所有后臺執(zhí)行的作業(yè),并且每個作業(yè)前面都有個編號
查看nginx的安裝目錄
1:查看端口占用,和進(jìn)程號:netstat -ntlp
2:根據(jù)進(jìn)程號查看安裝目錄:ll /proc/進(jìn)程號/exe
查看nginx 配置文件的路徑:
進(jìn)入nginx安裝目錄下的sbin目錄(上面的步驟)輸入:./nginx -t
填空題
1.linux中把分區(qū)和目錄對應(yīng)的過程叫做 掛載 。
2.信號是在軟件層次上對中斷 機制的一種模擬, 是一種異步通信方式。
3.用GCC編譯過程可以被細(xì)分為四個階段:預(yù)處理,編譯,匯編,鏈接 。
4.編譯有線程的文件要加 -lpthread 參數(shù)。
5.父進(jìn)程等待子進(jìn)程的結(jié)束,可以使用的函數(shù)是 wait() 和 waitpid() 。
6.linux主要有兩個信號安裝函數(shù),分別是什么。
Signal(),sigaction()
7.Linux操作系統(tǒng)內(nèi)核由 C語言 編寫完成。
8.使用gdb調(diào)試程序時,next和step命令的作用?
Next:單步跳過命令,一次跳過一行(跳過一行代碼,不可跳過函數(shù))
Shop:單步跳過命令,跳過一行代碼,跳過函數(shù)調(diào)用
9.目錄/BOOT 下存放linux操作系統(tǒng)啟動時所要用到的程序
10.Linux 系統(tǒng)的設(shè)備文件分為三類?
字符設(shè)備文件,塊設(shè)備文件,網(wǎng)絡(luò)設(shè)備文件
11.Linux 中采用“一對一”的線程機制,也就是一個用戶線程對應(yīng)一個 內(nèi)核線程 。
12.vim三種模式:在命令模式下按下 Esc 就進(jìn)入了底線命令模式。
13.標(biāo)準(zhǔn)I/O提供了三種類型的緩沖,分別是?
全緩沖,行緩沖,不緩沖
14.linux文件系統(tǒng)由四部分組成, 超級塊 用于存放文件的控制信息。
15.一個完整的信號生命周期包含4個重要的事件,這4個重要事件分別是?
信號誕生,信號注冊,信號注銷,信號處理執(zhí)行完畢
16.互斥鎖只有兩種狀態(tài),即?
上鎖,解鎖
17.線程本身調(diào)用 pthread_exit() 函數(shù)可以退出線程。
18.向消息隊列發(fā)送消息的函數(shù)是 msgsnd() 。
19. Fstat() 系統(tǒng)調(diào)用可以根據(jù)文件描述符來操作文件特性。
Valgrind包括很多工具, Memcheck 是valgrind應(yīng)用最廣泛的工具,一個重量級的內(nèi)存檢查器,能夠發(fā)現(xiàn)開發(fā)中絕大多數(shù)內(nèi)存錯誤使用情況, Cachegrind 是主要用來檢查程序中緩存使用出現(xiàn)的問題。
Memcheck: 這是valgrind應(yīng)用最廣泛的工具,一個重量級的內(nèi)存檢查器,能夠發(fā)現(xiàn)開發(fā)中絕大多數(shù)內(nèi)存錯誤使用情況,比如:使用未初始化的內(nèi)存,使用已經(jīng)釋放了的內(nèi)存,內(nèi)存訪問越界等。這也是本文將重點介紹的部分。
Callgrind: 它主要用來檢查程序中函數(shù)調(diào)用過程中出現(xiàn)的問題。
Cachegrind。它主要用來檢查程序中緩存使用出現(xiàn)的問題。
Helgrind: 它主要用來檢查多線程程序中出現(xiàn)的競爭問題。 Massif。它主要用來檢查程序中堆棧使用中出現(xiàn)的問題。
Extension: 可以利用core提供的功能,自己編寫特定的內(nèi)存調(diào)試工具。
20.信號發(fā)送函數(shù)中, alarm() 用于設(shè)置定時器,當(dāng)計時時間到達(dá)時,向進(jìn)程發(fā)送SIGALRM信號。
21.當(dāng)一個線程的屬性設(shè)置為 detach ,該線程結(jié)束時立即釋放它所占有的系統(tǒng)資源。
1.以下哪種方式屬于異常終止一個進(jìn)程(D )
A從main函數(shù)返回。
B調(diào)用exit。
C最后一個線程從其啟動例程返回。
D接到一個信號并終止。(軟中斷)
2.下列命令哪個是創(chuàng)建線程私有數(shù)據(jù)命令(A)
A pthread_key_create() B pthread_setspecific()
C pthread_getspecific() D pthread_key_delete();
3.下面哪種通信方式適用于不同機器之間的進(jìn)程通信。(D )
A.消息隊列 B.共享內(nèi)存 C.信號量 D.套接字
4.創(chuàng)建或打開消息隊列的函數(shù)為(A )
A.msgget() B.msgsnd() C.msgrcv() D. msgctl()
5.linux中通過調(diào)用waitpid()函數(shù)得到進(jìn)程的退出信息,該函數(shù)原型為
Pit_p waitpid(pid_t pid,int * statloc,int options)
pid_t waitpid(pit_t pid, int *statloc, int options);當(dāng)?shù)谝粋€參數(shù)pid取值為-1時,表示(A)
A等待任一子進(jìn)程退出,相當(dāng)于 wait()。
B等待進(jìn)程組ID與調(diào)用進(jìn)程組ID相同的任一子進(jìn)程。==0
C只等待進(jìn)程ID等于PID的子進(jìn)程。>0
D等待指定進(jìn)程組中的進(jìn)程,該進(jìn)程組id等于 pid的絕對值。<-1
簡答題
1) 公司新來了一名員工,對員工進(jìn)行以下操作
(1)添加員工
useradd 用戶名(2)更改密碼
passwd 用戶名(3)更改用戶的目錄
usermod -d/目錄名(4)鎖定用戶賬號
passwd –l 用戶名2) 如果一個文件的權(quán)限是-r-w-r-$,解釋清楚-r-w-r- $的每個字符的含義
(1)讀權(quán)限r(nóng)(read): 對文件而言 是讀取文件的內(nèi)容的權(quán)限,對目錄而言是列出目錄下所包含的內(nèi)容的權(quán)限。
(2)寫權(quán)限w:
對文件而言是修改文件內(nèi)容的權(quán)限;對目錄而言是在目錄下創(chuàng)建及刪除文件的權(quán)限
(3)執(zhí)行權(quán)限 x: 對可執(zhí)行文件而言
是允許執(zhí)行改文件的權(quán)限,對目錄而言是進(jìn)入目錄的權(quán)限。
(4)$ //
在bash里符號表示當(dāng)前用戶為普通用戶;在bash腳本里。符號表示當(dāng)前用戶為普通用戶;在bash腳本里。符號表示當(dāng)前用戶為普通用戶;在bash腳本里。開頭表示變量
3) 描述邏輯分區(qū)是什么?它是怎么來的?如果讓你分區(qū),你如何操作?
邏輯分區(qū)是硬盤上一塊連續(xù)的區(qū)域,不同之處在于,每個主分區(qū)只能分成一個驅(qū)動器,每個主分區(qū)都有各自獨立的引導(dǎo)塊,可以用fdisk設(shè)定為啟動區(qū)。 linux中主分區(qū)至少要有1個,最多可以有4個,擴展分區(qū)至多只能有1個或者沒有,但是主分區(qū)加上擴張分區(qū)數(shù)量不能超過4個。擴展分區(qū)下必須再分邏輯分區(qū),不然空間不能被格式化,邏輯分區(qū)的數(shù)量沒有限制。4) shell腳本的定時性操作
1.安裝crontab
2.開啟crontab服務(wù)
3.3.設(shè)置需要執(zhí)行的腳本
用戶所建立的crontab文件中,每一行都代表一項任務(wù),每行的每個字段代表一項設(shè)置,它的格式共分為六個字段,前五段是時間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數(shù)。 hour:表示小時,可以是從0到23之間的任何整數(shù)。 day:表示日期,可以是從1到31之間的任何整數(shù)。 month:表示月份,可以是從1到12之間的任何整數(shù)。 week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。5) 寫出提高linux系統(tǒng)安全性的方法 (答案有十二個,只要求寫十個)
1.開防火墻
2.分區(qū)
3.不使用默認(rèn)路由(這三個先寫上)
4.不要以root身份登錄
5.限制超級用戶的權(quán)利
6.使用基于密鑰的認(rèn)證
7.僅監(jiān)聽特定的ip
8.禁止使用空密碼
9.做好日志,經(jīng)常分析
10.禁止SSH遠(yuǎn)程
11.Linux內(nèi)核參數(shù)優(yōu)化
12.調(diào)整文件描述符數(shù)量
6) 一個if判斷題,寫一個shell腳本
1.判斷文件是否存在
if[-f ”文件名”]; then echo “文件存在” else echo “文件不存在” fi2.能不能讀取內(nèi)容
if[-r “文件名”] ;then echo “可以讀取文件內(nèi)容”; else echo “不可以~”; fi3.要求輸入輸出,類似輸入一個成績數(shù)字,判斷是否及格。
# !/bin/bash echo "請輸入一個分?jǐn)?shù):" read aif [ $a -ge 90 ] #大于 -gt (greater than) then #小于 -lt (less than) echo 'A' #大于或等于 -ge (greater than or equal) elif [ $a -ge 80 ] #小于或等于 -le (less than or equal) then #不相等 -ne (not equal)echo 'B'elif [ $a -ge 70 ]then echo 'C'elif [ $a -ge 60 ]then echo 'D'elseecho 'E'7) 什么是進(jìn)程?進(jìn)程資源由哪兩部分組成?
進(jìn)程是計算機中的程序關(guān)于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)
進(jìn)程資源包括內(nèi)核空間進(jìn)程資源和用戶空間進(jìn)程資源
8) pid_t fork() 返回值的意義?
創(chuàng)建失敗時返回負(fù)數(shù);創(chuàng)建成功時返回兩個值:父進(jìn)程的fork返回一個正數(shù)表示子進(jìn) 程的進(jìn)程ID,子進(jìn)程的fork返回0
9) Linux環(huán)境中使用kill函數(shù)向進(jìn)程或進(jìn)程組發(fā)送信號
Linux環(huán)境中使用kill函數(shù)向進(jìn)程或進(jìn)程組發(fā)送信號。Kill函數(shù)原型為
int kill(pid_t pid, int signo);當(dāng)?shù)谝粋€參數(shù)pid>0時,表示( A )
A發(fā)送信號給進(jìn)程ID為pid的進(jìn)程;
B發(fā)送信號給進(jìn)程組ID和該進(jìn)程相同的進(jìn)程;
C發(fā)送信號給進(jìn)程組內(nèi)進(jìn)程ID為pid的絕對值的進(jìn)程;
D發(fā)送信號給系統(tǒng)的所有進(jìn)程;
10) 共享主存和修改消息隊列狀態(tài)
共享主存基本操作(A )將共享主存區(qū)映射到進(jìn)程虛擬地址空間。
A shmat() B shmdt()共享內(nèi)存 C shmctl()控制對共享內(nèi)存的使用 D shmget() 創(chuàng)建共享內(nèi)存修改消息隊列狀態(tài)信息的命令是(B)
A msgsnd()發(fā)送信息 B msgctl() 控制 C msgrcv() 獲取信息 D msgget() 創(chuàng)建11) 父進(jìn)程調(diào)用wait() 可能出現(xiàn)的三種情況?
1.如果其所有子進(jìn)程都還在運行,則阻塞;
2.如果一個子進(jìn)程已經(jīng)終止,正等待父進(jìn)程獲取其終止?fàn)顟B(tài),則取得該子進(jìn)程的終止?fàn)顟B(tài)立即返回;
3.如果它沒有任何子進(jìn)程,則立即出錯返回;
12) 在進(jìn)程中,return和exit() 的區(qū)別?
return是語言級別的,它表示了調(diào)用堆棧的返回;而exit是系統(tǒng)調(diào)用級別的,它表示一個進(jìn)程的結(jié)束。
在main函數(shù)里,return(0)和exit(0)是一樣的,子函數(shù)用return返回,而子進(jìn)程用exit退出,調(diào)用exit時要調(diào)用一段終止處理程序,然后關(guān)閉所有I/O流
1.return 是C語言的關(guān)鍵字,exit是POSIX API 函數(shù)
2.在main函數(shù)中,執(zhí)行return和exit會產(chǎn)生相同效果。
3.在子函數(shù)中,執(zhí)行return僅僅從子函數(shù)中返回,而調(diào)用exit函數(shù)將會直接退出當(dāng)前進(jìn)程
13)什么是孤兒進(jìn)程?誰負(fù)責(zé)回收孤兒進(jìn)程的內(nèi)核空間資源?
孤兒進(jìn)程:因父親進(jìn)程先退出而導(dǎo)致一個子進(jìn)程被init進(jìn)程收養(yǎng)的進(jìn)程,即孤兒進(jìn)程的父親更改為init進(jìn)程,該進(jìn)程在孤兒進(jìn)程退出后回收它的內(nèi)核空間資源。
14) 僵尸進(jìn)程是什么?如何消滅僵尸進(jìn)程?
僵尸進(jìn)程:進(jìn)程已經(jīng)退出,但它的父親進(jìn)程還沒有回收內(nèi)核資源的進(jìn)程,即該進(jìn)程在內(nèi)核空間的PCB沒有釋放。
利用kill函數(shù)殺死父進(jìn)程,僵尸函數(shù)會被init進(jìn)程收養(yǎng)
15) 簡述進(jìn)程對可靠信號和不可靠信號的處理過程
如果進(jìn)程在屏蔽某個信號的時間內(nèi),其他進(jìn)程多次向其發(fā)送同一個信號,不可靠信號只有一次未決記錄,當(dāng)進(jìn)程解除屏蔽后,該信號只會被捕捉一次;而可靠信號操作系統(tǒng)會 記錄所有的發(fā)送,當(dāng)進(jìn)程解除屏蔽后,操作系統(tǒng)會捕捉對等次數(shù)。
16) 簡單介紹一下信號的定義及其分類
信號是表示消息的物理量,是運載消息的工具
信號是軟件中斷,是在軟件層次上對中斷機制的一種模擬,在原理上,一個進(jìn)程收到一個信號與處理器收到一個中斷請求可以說是一樣的 分類:確定信號和隨機信號;連續(xù)信號和離散信號;周期信號和非周期信號;能量信號與功率信號;因果信號與反因果信號;實信號與復(fù)信號17) 簡單介紹一下匿名管道及其特點
匿名管道:用于連接一個讀進(jìn)程和一個寫進(jìn)程,以實現(xiàn)它們
之間通信的共享文件,又稱pipe文件,是一個只存在于內(nèi)存的特殊文件。
匿名管道用于進(jìn)程之間通信,且僅限于本地父子進(jìn)程之間通信,結(jié)構(gòu)簡單。
1.只提供單向通信,也就是說,兩個進(jìn)程都能訪問這個文件,假設(shè)進(jìn)程1往文件內(nèi)寫東 西,那么進(jìn)程2 就只能讀取文件的內(nèi)容。 2.只能用于具有血緣關(guān)系的進(jìn)程間通信,通常用于父子進(jìn)程建通信 3.管道是基于字節(jié)流來通信的 4.依賴于文件系統(tǒng),它的生命周期隨進(jìn)程的結(jié)束結(jié)束(隨進(jìn)程) 5.其本身自帶同步互斥效果18) 請解釋一下有名管道和匿名管道的區(qū)別?
匿名管道是由pipe函數(shù)創(chuàng)建 并打開的
命名管道是由mkfifo函數(shù)創(chuàng)建 的 ,打開用open
命名管道和匿名管道唯一的區(qū)別就是在創(chuàng)建的打開,一旦這些工作完成后,它們有相同的意義。
FIFO索引節(jié)點出現(xiàn)在系統(tǒng)目錄數(shù)上而不是pipefs特殊文件系統(tǒng)中
FIFO是一種雙向通信管道,可以以讀/寫模式打開一個FIFO
命名管道和匿名管道唯一的區(qū)別就是在創(chuàng)建的打開,一旦這些工作完成后,它們有相同的意義。
19) 什么是線程?進(jìn)程和線程的區(qū)別?
線程是操作系統(tǒng)能夠進(jìn)行運算調(diào)度的最小單位。
區(qū)別:
進(jìn)程是運行中的程序,線程是進(jìn)程的內(nèi)部的一個執(zhí)行序列
進(jìn)程是資源分配的單元,線程是執(zhí)行行單元
程間切換代價大,線程間切換代價小
進(jìn)程擁有資源多,線程擁有資源少使用靈活
多個線程共享進(jìn)程的資源
20) Please describe the difference of signal() and sigaction() in brief
(1) signal在調(diào)用handler之前先把信號的handler指針恢復(fù);sigaction調(diào)用之后不會恢復(fù)handler指針,直到再次調(diào)用sigaction修改handler指針。
這樣,signal就會丟失信號,而且不能處理重復(fù)的信號,而sigaction就可以。
因為signal在得到信號和調(diào)用handler之間有個時間把handler恢復(fù)了,這樣再次接收到此信號就會執(zhí)行默認(rèn)的handler。
signal在調(diào)用過程不支持信號block;sigaction調(diào)用后在handler調(diào)用之前會把屏蔽信號加入信號中,handler調(diào)用后會自動恢復(fù)信號到原先的值。
(2)signal處理過程中就不能提供阻塞某些信號的功能,sigaction就可以阻指定的信號和本身處理的信號,直到handler處理結(jié)束。這樣就可以阻塞本身處理的信號,到handler結(jié)束就可以再次接受重復(fù)的信號。
不同點
signal()
安裝的信號不能向信號處理函數(shù)傳遞信息
sigaction()
可設(shè)置進(jìn)程的信號掩碼,返回設(shè)置之前的sigaction結(jié)構(gòu)
安裝的信號可以向信號處理函數(shù)傳遞信息
相同點
都可以為指定的信號設(shè)置信號處理函數(shù)
共用同一個內(nèi)核函數(shù)do_sigaction()
21)在標(biāo)準(zhǔn)IO庫中,rewind函數(shù)作用?
將文件內(nèi)部的位置指針指向一個流的開頭
22)C語言中沒有明確給定初值的全局變量和靜態(tài)變量存放在哪兒?
沒有初始化的全局變量,bss(未初始化代碼段),初始化的全局變量和靜態(tài)變量放在data(初始化代碼段)
23)函數(shù)geteuid()用于得到進(jìn)程的?
得到有效用戶的id
24)邏輯卷的創(chuàng)建
1.劃分LINUX分區(qū)
2.創(chuàng)建PV(物理卷)
3.創(chuàng)建VG(卷組)
4.創(chuàng)建LV(邏輯卷)
5.格式化LV
6.掛載
總結(jié)
以上是生活随笔為你收集整理的Linux常用命令与基本操作、填空题、简答题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是债券逆回购 主要存在5大优势
- 下一篇: Linux Ubuntu16.04界面美