Linux進階命令

目錄

一、touch

1. 基本語法

2. 常用選項

二、which

1. 基本語法

2. 主要功能

3. 常用選項

三、find

1. 基本語法

2. 常用選項和表達式

四、more

1. 基本語法

2. 常用操作

3. 對比 more 和 less

五、grep

1. 基本語法

2. 常用選項

六、wc

1. 基本語法

2. 常用選項

七、管道符

1. 基本概念

2. 基本使用

3. 處理大文件

4. 結合awk和sed進行文本處理

5. 查找并實時監控日志文件

6. 注意事項

八、echo

1. 基本語法

2. 常用選項

3. 常見用法

九、tail

1. 基本語法

2. 常用選項

十、重定向符

1. 標準輸入、輸出和錯誤

2. 常見重定向符


一、touch

touch 主要用于創建空文件或更新現有文件的時間戳(包括訪問時間和修改時間)。它是一個簡單但功能強大的工具,廣泛應用于文件管理、腳本編寫和自動化任務中。

1. 基本語法

?touch [選項] 文件名...

如果指定的文件不存在,touch 會創建一個新的空文件。如果文件已存在,touch 默認會更新該文件的訪問時間和修改時間為當前系統時間。

2. 常用選項

  • 無選項:創建新文件或更新現有文件的時間戳。

  • -a:僅改變文件的訪問時間。

  • -m:僅改變文件的修改時間。

  • -c 或 --no-create:不創建文件,如果文件不存在,則不進行任何操作。

touch -c non_existing_file.txt
  • -d 或 --date=字符串:使用指定的字符串設置文件的時間戳。

touch -d "2025-04-12 15:27:00" file.txt
  • -t:使用 [[CC]YY]MMDDhhmm[.ss] 格式的指定時間設置文件的時間戳。

touch -t 202504121527 file.txt
  • -r:使用另一個文件的時間戳來設置目標文件的時間戳。

?touch -r reference_file.txt target_file.txt

二、which

which 用于查找并顯示可執行文件的完整路徑。它通過搜索系統的 PATH 環境變量中定義的目錄,找到與指定命令對應的可執行文件的位置。which 命令的主要用途是幫助用戶快速確定某個命令的實際位置,尤其是在系統中可能存在多個同名命令時。

1. 基本語法

?which [選項] 命令名...

2. 主要功能

  1. 查找命令路徑which 會在 PATH 環境變量中列出的所有目錄中搜索指定的命令,并返回第一個匹配的可執行文件的完整路徑。

  2. 驗證命令是否存在: 如果 which 找不到指定的命令,則說明該命令可能未安裝或不在 PATH 中。

3. 常用選項

-a:顯示所有匹配的可執行文件路徑,而不僅僅是第一個。

?[itjiang@jasmine ~]$ which -a python/usr/bin/python

三、find

find 用于在文件系統中搜索文件和目錄。它可以根據多種條件(如文件名、類型、大小、修改時間等)進行搜索,并支持對找到的文件執行操作。find 命令非常靈活,適用于各種復雜的查找需求。

1. 基本語法

?find [路徑] [選項] [表達式]
  • 路徑:指定搜索的起始目錄。例如 . 表示當前目錄,/ 表示根目錄。

  • 選項:控制搜索行為的參數。

  • 表達式:定義搜索條件和操作。

2. 常用選項和表達式

(1)按名稱查找

使用 -name 選項按文件名查找文件(區分大小寫)。要忽略大小寫,可以使用 -iname。

?[itjiang@jasmine ~]$ find /home/itjiang -name test.txt/home/itjiang/test.txt

使用 * 匹配任意文件名。* 是最常用的通配符,用于匹配任意長度的字符。

?[itjiang@jasmine ~]$ find ~ -name "test*.txt"/home/itjiang/test2.txt/home/itjiang/test1.txt/home/itjiang/test.txt

(2)按類型查找

使用 -type 選項按文件類型查找:

  • f:普通文件

  • d:目錄

  • l:符號鏈接

  • c:字符設備

  • b:塊設備

(3)按大小查找

使用 -size 選項按文件大小查找:

+n:大于 n 單位的文件

-n:小于 n 單位的文件

n:等于 n 單位的文件

單位:

  • c:字節

  • k:千字節

  • M:兆字節

  • G:千兆字節

示例:

?[itjiang@jasmine ~]$ find ~ -size +1M  # 查找~目錄中大于1MB的文件/home/itjiang/.cache/tracker/meta.db/home/itjiang/.cache/tracker/meta.db-wal/home/itjiang/.cache/gnome-software/odrs/ratings.json

(4)按修改時間查找

使用 -mtime、-atime 或 -ctime 按時間查找文件:

-mtime n:文件內容最后修改時間為 n 天前。 -atime n:文件最后訪問時間為 n 天前。 -ctime n:文件狀態最后改變時間為 n 天前。 +n:超過 n 天 -n:少于 n 天

?[itjiang@jasmine ~]$ find ~ -mtime -1  # 查找最近1天內修改過的文件/home/itjiang/home/itjiang/.cache/gdm/home/itjiang/.cache/gdm/session.log.old/home/itjiang/.cache/gdm/session.log

(5)按權限查找

使用 -perm 按文件權限查找。

?[itjiang@jasmine ~]$ find ~ -perm 644  # 查找權限為 644 的文件/home/itjiang/.bash_logout/home/itjiang/.bash_profile

(6)按所有者或組查找

使用 -user 和 -group 按文件的所有者或組查找。

find /path/to/search -user username # 查找屬于某個用戶的文件
find /path/to/search -group groupname # 查找屬于某個組的文件

(7)刪除文件

使用 -delete 直接刪除找到的文件。

find /path/to/search -name "*.log" -delete

四、more

more 用于分頁查看文本文件內容。與 less 類似,more 也允許用戶逐屏瀏覽文件內容,但它提供的功能較少,且不支持向后滾動。盡管如此,對于簡單的文件瀏覽任務,more 仍然是一個實用的工具。

1. 基本語法

more [選項] 文件名...

當我們使用 more 打開一個文件時,它會顯示文件的前幾行,之后可以通過簡單的命令進行翻頁或搜索等操作。

2. 常用操作

當文件內容超過一屏時,more 會暫停并顯示當前屏幕的內容。此時可以使用以下按鍵進行導航:

  • 空格鍵:向下翻一頁。

  • 回車鍵:向下滾動一行。

  • /:后面跟上關鍵詞,然后按回車鍵可以在文件中向前搜索指定的文本。

  • b:僅在某些實現中有效,嘗試向后翻頁(回到之前的內容),但請注意,由于 more 的限制,這可能并不總是可用或工作如預期。

  • q:退出 more 查看器,返回到命令行提示符。

3. 對比 more 和 less

盡管 more 和 less 都用于分頁查看文件內容,它們之間存在一些關鍵差異:

  • 向前和向后滾動:more 主要設計為向前瀏覽文件,雖然有些版本支持向后翻頁(b),但不如 less 方便和可靠。less 支持完全的前后移動。

  • 搜索功能:兩者都支持搜索,但 less 提供更強大的搜索選項,比如區分大小寫的搜索、反向搜索等。

  • 打開大文件:less 更加高效,因為它不會一次性讀取整個文件,而 more 可能在處理特別大的文件時表現不佳。

因此,雖然 more 對于簡單的需求已經足夠,但在更多高級場景下,推薦使用 less 來替代 more。然而,由于 more 的廣泛可用性和簡單性,了解其基本用法仍然很有價值。

五、grep

grep (全稱:Global Regular Expression Print)是一個強大的文本搜索工具,廣泛用于 Linux 和 Unix 系統中。它通過正則表達式(regular expressions, regex)來搜索文件中的匹配行,并輸出這些行或統計相關信息。grep 的名字來源于全球替換命令 g/re/p,意思是全局搜索正則表達式并打印出來。

1. 基本語法

grep [選項] 模式 [文件名...]
  • 模式:要搜索的字符串或正則表達式。

  • 文件名:要搜索的一個或多個文件。如果未指定文件名,則從標準輸入讀取數據。

2. 常用選項

  • 無選項:在一個或多個文件中搜索指定模式,并顯示包含該模式的所有行。

  • -i:忽略大小寫差異進行搜索。

  • -v:反轉匹配,即顯示不包含匹配項的行。

  • -n:顯示匹配行及其所在的行號。

  • -r 或 -R:遞歸地在目錄及其子目錄中搜索文件。

  • -l:僅列出包含匹配內容的文件名,而不是具體行。

  • -c:統計每個文件中匹配的行數。

  • -E:使用擴展正則表達式(ERE)。允許使用更復雜的正則表達式功能,如 |(或)、+(一次或多次)等。

  • -w:匹配整個單詞,而非僅僅是子串。

  • -A n、-B n、-C n:分別表示顯示匹配行后 n 行、前 n 行以及前后各 n 行的內容。

六、wc

wc(word count的縮寫)用于統計文件中的字節數、字符數、單詞數和行數。它是一個非常實用的工具,常用于文本分析、腳本編寫以及日志文件處理等場景。

1. 基本語法

wc [選項] [文件名...]

如果不指定文件名,wc 將從標準輸入讀取數據。

2. 常用選項

  • 無選項:默認情況下,wc 會輸出文件的行數、單詞數和字節數。輸出格式為:行數 單詞數 字節數 文件名

  • -l 或 --lines:統計文件的行數。

  • -w 或 --words:統計文件的單詞數。

  • -c 或 --bytes:統計文件的字節數。對于純文本文件,這通常等于字符數;但對于包含多字節字符的文件,則可能不同。

  • -m 或 --chars:統計文件的字符數。這對于理解文件中實際的字符數量特別有用,特別是在處理包含非ASCII字符的文件時。

  • -L 或 --max-line-length:打印最長行的長度。

七、管道符

在 Linux 和 Unix 系統中,管道符(|)是一個非常強大且常用的工具,用于將一個命令的輸出作為另一個命令的輸入。通過這種方式,用戶可以將多個命令串聯起來,以實現復雜的數據處理任務。這種機制極大地增強了命令行工具的功能性和靈活性。

1. 基本概念

管道符允許我們將前一個命令的標準輸出(stdout)直接連接到下一個命令的標準輸入(stdin)。其基本語法如下:

command1 | command2 | command3 ...

在這個例子中,command1 的輸出會成為 command2 的輸入,command2 的輸出又會成為 command3 的輸入,依此類推。

2. 基本使用

假設我們想查找某個目錄下所有包含特定關鍵字的文件,并統計有多少個這樣的文件。可以結合 grep 和 wc 來完成這個任務:

?grep -rl "search_term" /path/to/search/ | wc -l
  • grep -rl "search_term" /path/to/search/:遞歸地在指定目錄中搜索包含 "search_term" 的文件,并打印這些文件的路徑。

  • wc -l:計算由前面的 grep 命令生成的文件列表中的行數,即找到的文件數量。

3. 處理大文件

如果我們有一個很大的日志文件,并希望查看其中最常見的錯誤信息,可以結合 cat、grep、sort 和 uniq 命令來完成:

?cat large_log_file.log | grep "ERROR" | sort | uniq -c | sort -nr
  • cat large_log_file.log:讀取日志文件的內容。

  • grep "ERROR":過濾出包含 "ERROR" 的行。

  • sort:對結果進行排序。

  • uniq -c:統計每個唯一錯誤信息出現的次數(-c 選項會在每行開頭加上計數)。

  • sort -nr:按數字逆序排列結果(-n 表示按數值排序,-r 表示逆序)。

4. 結合awk和sed進行文本處理

假設我們有一個 CSV 文件,并希望提取第二列的數據,同時替換某些特定字符:

?cat data.csv | awk -F',' '{print $2}' | sed 's/old/new/g'
  • cat data.csv:讀取 CSV 文件內容。

  • awk -F',' '{print $2}':設置字段分隔符為逗號,并打印第二列的數據。

  • sed 's/old/new/g':將上一步輸出中的 "old" 替換為 "new"。

5. 查找并實時監控日志文件

如果我們想實時監控一個日志文件,并只顯示包含特定關鍵詞的新添加的行,可以使用 tail 和 grep:

tail -f logfile.log | grep "keyword"
  • tail -f logfile.log:實時顯示 logfile.log 中追加的數據。

  • grep "keyword":從實時流中篩選出包含 "keyword" 的行。

6. 注意事項

考慮效率:管道連接的命令序列應該盡可能簡潔高效,因為數據需要經過多次傳遞。如果處理的數據量非常大,可能需要考慮優化或使用更高效的方法(如使用專門的工具或腳本)。

標準錯誤處理:默認情況下,只有標準輸出可以通過管道傳輸,而標準錯誤(stderr)不會被傳遞。如果需要處理標準錯誤,可以將其重定向到標準輸出再通過管道傳輸:

command 2>&1 | other_command

緩沖問題:某些命令可能會對輸出進行緩沖,這可能導致管道鏈中的延遲或行為不符合預期。在這種情況下,可以嘗試使用 stdbuf 或者相應命令的選項來調整緩沖行為。

八、echo

echo 用于在終端中輸出文本或變量的值。它常用于腳本編寫、調試以及生成文件內容等任務。盡管功能簡單,但它是日常操作和自動化任務中非常實用的工具。

1. 基本語法

echo [選項] [字符串]
  • 字符串:要輸出的文本或變量。

  • 選項:控制輸出格式的參數。

  • ``:反引號包圍的內容會作為命令執行,而不是普通的字符串。

2. 常用選項

  • 無選項: 默認情況下,echo 會輸出指定的字符串,并在末尾添加一個換行符。

  • -n: 不輸出末尾的換行符。

  • -e: 啟用轉義字符解釋(如 \n 換行、\t 制表符等)。

  • -E(默認行為): 禁用轉義字符解釋。

3. 常見用法

輸出普通文本:直接輸出一段文本:

輸出變量值:結合變量使用,輸出變量的內容:

?name="Tom"echo "Hello, $name!"# 輸出:Hello, Tom!

使用轉義字符:啟用 -e 選項后,可以使用以下常見的轉義字符:

  • \n:換行

  • \t:制表符

  • \\:反斜杠

  • \":雙引號

九、tail

tail 主要用于查看文件的尾部內容。它特別適用于實時監控日志文件或查看大文件的最后幾行,因為直接打開大型文件可能會消耗大量資源或者不方便瀏覽最新的信息。tail 命令可以顯示文件的末尾部分,并支持動態跟蹤文件的更新。

1. 基本語法

tail [選項] 文件名...

如果不指定文件名,tail 將從標準輸入讀取數據。

2. 常用選項

  • 無選項:默認情況下,tail 顯示文件的最后 10 行。

  • -n 或 --lines=:指定要顯示的行數。例如,顯示文件的最后 20 行。

tail -n 20 filename.txt
  • -c 或 --bytes=:顯示文件的最后 N 個字節的內容。

  • -f 或 --follow:實時輸出文件新增加的內容(常用于監視日志文件的變化)。當文件被追加內容時,tail 會持續顯示這些新內容。

tail -f logfile.log
  • -q 或 --quiet 或 --silent:不顯示文件名頭信息,當同時查看多個文件時有用。

tail -q -n 10 file1.txt file2.txt
  • -v 或 --verbose:對每個文件都顯示其文件名頭信息。

十、重定向符

重定向符(Redirection Operators)用于改變命令的標準輸入、標準輸出和標準錯誤的默認行為。通常情況下,程序的標準輸入來自鍵盤,標準輸出和標準錯誤則顯示在終端屏幕上。通過使用重定向符,用戶可以將這些數據流重定向到文件或其他設備。

1. 標準輸入、輸出和錯誤

  • 標準輸入(stdin):文件描述符為 0,默認來自鍵盤。

  • 標準輸出(stdout):文件描述符為 1,默認輸出到終端。

  • 標準錯誤(stderr):文件描述符為 2,默認輸出到終端。

重定向符允許我們改變這些默認行為。

2. 常見重定向符

(1) 輸出重定向 (> 和 >>)

>:將標準輸出重定向到文件。如果文件已存在,則覆蓋其內容;如果文件不存在,則創建新文件。

?echo "Hello, World!" > output.txt

將字符串 "Hello, World!" 寫入 output.txt 文件中。

>>:將標準輸出追加到文件末尾。如果文件不存在,則創建新文件。

?echo "Another line" >> output.txt 

將字符串 "Another line" 追加到 output.txt 的末尾。

(2) 輸入重定向 (<)

<:將文件內容作為命令的標準輸入。

?wc -l < input.txt

統計 input.txt 文件中的行數。

(3) 錯誤重定向 (2> 和 2>>)

2>:將標準錯誤重定向到文件。如果文件已存在,則覆蓋其內容。

?ls /nonexistent_directory 2> error.log

如果 /nonexistent_directory 不存在,則錯誤信息會被寫入 error.log 文件。

2>>:將標準錯誤追加到文件末尾。

?ls /another_nonexistent_directory 2>> error.log

將新的錯誤信息追加到 error.log 文件中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76668.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76668.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76668.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云實時計算Flink版產品體驗測評

阿里云實時計算Flink版產品體驗測評 什么是阿里云實時計算Flink應用場景實時計算Flink&自建Flink集群性價比開發效率運維管理企業安全 場景落地 什么是阿里云實時計算Flink 實時計算Flink大家可能并不陌生&#xff0c;在實時數據處理上&#xff0c;可能會有所接觸&#xf…

用戶登錄不上linux服務器

一般出現這種問題&#xff0c;重新用root用戶修改lsy用戶的密碼即可登錄&#xff0c;但是當修改了還是登錄不了的時候&#xff0c;去修改一個文件用root才能修改&#xff0c; 然后在最后添加上改用戶的名字&#xff0c;例如 原本是只有user的&#xff0c;現在我加上了lsy了&a…

Android Jetpack架構組件——用Compose工具包構建基本的布局

推薦文章 構建基本布局 | Android Basics Compose - First Android app | Android Developers 向 Android 應用添加圖片 | Android Developers

SLAM(七)-卡爾曼濾波

SLAM&#xff08;七&#xff09;-卡爾曼濾波 一、卡爾曼濾波(KF)二、擴展卡爾曼濾波(EKF)三、誤差狀態卡爾曼濾波(ESKF) 參考《概率機器人》、《Principles of GNSS&#xff0c;lnertial and Multisensor lntegrated Navigation Systems (Second Edition)》 一、卡爾曼濾波(KF)…

Electron 應用太重?試試 PakePlus 輕裝上陣

Electron 作為將 Web 技術帶入桌面應用領域的先驅框架&#xff0c;讓無數開發者能夠使用熟悉的 HTML、CSS 和 JavaScript 構建跨平臺應用。然而&#xff0c;隨著應用規模的擴大&#xff0c;Electron 應用的性能問題逐漸顯現——內存占用高、啟動速度慢、安裝包體積龐大&#xf…

Vue.js組件安全工程化演進:從防御體系構建到安全性能融合

——百萬級流量場景下的安全組件架構與源碼級解決方案 文章目錄 總起&#xff1a;安全工程化的組件革命 分論&#xff1a; 一、現存組件架構的七宗罪與安全改造路徑   1.1 組件生態安全赤字現狀   1.2 架構級安全缺陷深度剖析   1.3 性能與安全的死亡螺旋 二、百萬級…

MCP+cursor使用嘴操作數據庫(不用編寫SQL語句實現CURD)

文章目錄 1.如何進行相關配置2.如何添加MCP server3.如何進行相關的操作3.0數據的查詢3.1數據的插入3.2數據的修改3.3多表連接查詢 1.如何進行相關配置 這個跟昨天的高德地圖的配置非常的相似&#xff0c;因此這個地方我就不進行過多的這個說明了&#xff0c;就是新加一個全聚…

效率工具- git rebase 全解

一、前言 對于git rebase 一直不太了解,這幾天想著提高下git提交質量,就發現了這個好用的指令,順便記錄一下,好加深記憶 貼出官方文檔以便大家進一步學習 Git 二、rebase是作用 rebase 官方解釋為變基,可以理解為移動你的分支根節點,維護一個更好的提交記錄。rebase把你當前…

小愛音箱接入大模型DeepSeek及TTS

簡介 相信看過鋼鐵俠的朋友們&#xff0c;都夢想擁有一個像賈維斯這樣全能的人工智能管家。而現在隨著AI的發展&#xff0c;這個愿景將隨我們越來越近。現階段&#xff0c;我們可以將小愛音箱接入DeepSeek&#xff0c;將其從“人工智障”進化成上知天文&#xff0c;下懂地理的半…

軟件架構評估利器:質量效用樹全解析

質量效用樹是軟件架構評估中的一種重要工具&#xff0c;它有助于系統地分析和評估軟件架構在滿足各種質量屬性方面的表現。以下是關于質量效用樹的詳細介紹&#xff1a; 一、定義與作用 質量效用樹是一種以樹形結構來表示軟件質量屬性及其相關效用的模型。它將軟件的質量目標…

[IEEE TIP 2024](cv即插即用模塊分享)IdeNet信息增強模塊 性能提升必備!

論文地址&#xff1a;https://ieeexplore.ieee.org/document/10661228 代碼地址&#xff1a;https://github.com/whyandbecause/IdeNet 什么是偽裝目標檢測&#xff08;COD&#xff09;&#xff1f; 偽裝目標檢測&#xff08;Camouflaged Object Detection, COD&#xff09;是…

biblatex 的 Biber 警告??:tex文件運行無法生成參考文獻和目錄

原因??&#xff1a;使用了 biblatex 管理參考文獻&#xff0c;但未運行 biber 生成參考文獻數據。 ??解決??&#xff1a;更新 LaTeX Workshop 配置 修改你的 settings.json&#xff0c;添加 biber 工具并更新編譯流程&#xff1a; {"latex-workshop.latex.tools&…

thingsboard3.9.1編譯問題處理

問題1&#xff1a; [ERROR] Failed to execute goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke (default) on project http: Execution default of goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke failed: Plugin org.thingsboard:gradle-maven-plugin:1.…

深入淺出Redis 緩存使用問題 | 長文分享

目錄 數據一致性 先更新緩存&#xff0c;后更新數據庫【一般不考慮】 先更新數據庫&#xff0c;再更新緩存【一般不考慮】 先刪除緩存&#xff0c;后更新數據庫 先更新數據庫&#xff0c;后刪除緩存【推薦】 怎么選擇這些方案&#xff1f;采用哪種合適&#xff1f; 緩存…

Express中間件(Middleware)詳解:從零開始掌握(2)

1. 請求耗時中間件的增強版 問題&#xff1a;原版只能記錄到控制臺&#xff0c;如何記錄到文件&#xff1f; 改進點&#xff1a; 使用process.hrtime()是什么&#xff1f;獲取更高精度的時間支持將日志寫入文件記錄更多信息(IP地址、狀態碼)工廠函數模式使中間件可配置 con…

如何設置Ubuntu服務器版防火墻

在Ubuntu服務器中&#xff0c;默認使用 ufw&#xff08;Uncomplicated Firewall&#xff09;作為防火墻管理工具。它是對iptables的簡化封裝&#xff0c;適合快速配置防火墻規則。以下是設置防火墻的詳細步驟&#xff1a; 1. 安裝與啟用 ufw 安裝&#xff08;通常已預裝&…

暢游Diffusion數字人(23):字節最新表情+動作模仿視頻生成DreamActor-M1

暢游Diffusion數字人(0):專欄文章導航 前言:之前有很多動作模仿或者表情模仿的工作,但是如果要在實際使用中進行電影級的復刻工作,僅僅表情或動作模仿還不夠,需要表情和動作一起模仿。最近字節跳動提出了一個表情+動作模仿視頻生成DreamActor-M1。 目錄 貢獻概述 核心動…

模型開發中的微調是干什么

在模型開發中&#xff0c;微調&#xff08;Fine-tuning&#xff09; 是指利用預訓練模型&#xff08;Pre-trained Model&#xff09;的參數作為初始值&#xff0c;在特定任務或數據集上進一步調整模型參數的過程。它是遷移學習&#xff08;Transfer Learning&#xff09;的核心…

vue3中,element-plus中el-select隱藏下拉箭頭

需求&#xff1a;el-select需要隱藏下拉箭頭 <el-select v-model"apply.dataType" readonly><el-option :key"1" label"樣品檢相同項目" :value"1" /><el-option :key"2" label"樣品檢不同項目" :…

英語學習4.9

cordial 形容詞&#xff1a; 熱情友好的&#xff0c;誠懇的 表示一個人態度溫和、親切&#xff0c;給人溫暖和善的感覺。 令人愉快的&#xff0c;和睦的 形容關系融洽、氛圍和諧。 例句??&#xff1a; The two leaders had a ??cordial?? but formal discussion. &am…