国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【shell腳本進階】幾個常用的shell進階腳本

嵌入式物聯網開發 ? 來源:嵌入式物聯網開發 ? 作者:嵌入式物聯網開發 ? 2022-09-19 08:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

博主經常在工作中使用shell腳本,有些流程比較單一但是由很有規律的操作,往往就是腳本使用的最佳應用場景。

雖然在當下python腳本已經非常的普及了,初入行的朋友可能一想到“腳本”,就只想到“python腳本”。但對于我這個“行業老餅”,shell腳本卻還是有一席之地的,畢竟在我們入行那會,還真沒python什么事!

本文呢,主要是給大家介紹幾個我在工作中常用的,但又非常有用且操作高效的腳本,感興趣的可以往下一看。

一、搜索想要的C文件并拷貝到一個指定的目錄

這個案例很有用,我直接上操作指引:

recan@ubuntu:~/win_share_workspace/test_share$ find . -name *.c
./test_gcc/pass_array2_test.c
./test_gcc/test.c
./test_jd_paper_test/test.c
./test_python_gcc_map/main.c
./test_python_gcc_map/libf.c
./test_python_gcc_map/libd.c
./test_python_gcc_map/libe.c
./test_python_gcc_map/libb.c
./test_python_gcc_map/liba.c
./master_mode_sdk/app/bl2028n_linkkitapp/app_entry.c
./master_mode_sdk/app/tg7100c_linkkitapp/app_entry.c
./master_mode_sdk/app/sv6266_linkkitapp/app_entry.c
./jx_sdk_config/jx_sdk_config.c
./jx_sdk_config/cJSON.c
./jx_sdk_config/main.c
./test_coredump/test_cordump.c
./tcp_echo/tcp_server.c
./tcp_echo/tcp_client.c
./test_aligned_macro/main.c
./test_gcc_test/test.c
./test_for_loop/test.c
./test_bin2array/bin2array.c
./test_cli_for_linux/src/cli_dumpsys.c
./test_cli_for_linux/src/jx_os_cli.c
./test_cli_for_linux/src/cli_default_command.c
./test_cli_for_linux/src/cli.c
./test_cli_for_linux/src/cli_adapt.c
./test_cli_for_linux/tcp_server.c
./test_cli_for_linux/adapter_for_linux/main.c
./test_cli_for_linux/adapter_for_linux/uart.c
./test_cli_for_linux/adapter_for_linux/osal.c
./test_hexdump/test_hexdump.c
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ find . -name *.c | xargs -i cp -rf {} /tmp/test_share/
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ ls /tmp/test_share/
app_entry.c  cJSON.c      cli.c                  cli_dumpsys.c  jx_sdk_config.c  libb.c  libe.c  main.c  pass_array2_test.c  tcp_server.c  test_cordump.c  uart.c
bin2array.c  cli_adapt.c  cli_default_command.c  jx_os_cli.c    liba.c           libd.c  libf.c  osal.c  tcp_client.c        test.c        test_hexdump.c
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 

主要腳本命令:find . -name *.c | xargs -i cp -rf {} /tmp/test_share/

二、編譯鏈接的時候把所有的object文件輸出一行

這是一個真實的應用場景,我就經常遇到,我一般是這樣操作:

recan@ubuntu:~/win_share_workspace/test_share$ find . -name *.o
./test_makefile_paper/bar.o
./test_gcc_test/test.o
./test_for_loop/test.o
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ find . -name *.o | xargs echo -n
./test_makefile_paper/bar.o ./test_gcc_test/test.o ./test_for_loop/test.o
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 

關鍵腳本命令:find . -name *.o | xargs echo -n

三、查看當前目錄下所有C文件的大小

這個也應經常用的,見案例操作:

recan@ubuntu:~/win_share_workspace/test_share$ find . -name *.c | xargs ls -alh
-rwxr-xr-x 1 recan system  64K Jul 19  2021 ./jx_sdk_config/cJSON.c
-rwxr-xr-x 1 recan system 6.6K Jul 22  2021 ./jx_sdk_config/jx_sdk_config.c
-rwxr-xr-x 1 recan system  472 Jul 21  2021 ./jx_sdk_config/main.c
-rwxr-xr-x 1 recan recan     0 Jul 12  2021 ./master_mode_sdk/app/bl2028n_linkkitapp/app_entry.c
-rwxr-xr-x 1 recan recan     0 Jul 12  2021 ./master_mode_sdk/app/sv6266_linkkitapp/app_entry.c
-rwxr-xr-x 1 recan recan     0 Jul 12  2021 ./master_mode_sdk/app/tg7100c_linkkitapp/app_entry.c
-rwxr-xr-x 1 recan recan  5.3K Jan 15  2022 ./tcp_echo/tcp_client.c
-rwxr-xr-x 1 recan recan  6.9K Jan 15  2022 ./tcp_echo/tcp_server.c
-rw-r--r-- 1 recan recan  1.1K Aug  4  2021 ./test_aligned_macro/main.c
-rwx------ 1 recan system 1.9K Aug 24  2021 ./test_bin2array/bin2array.c
-rwx------ 1 recan system 1.3K Jan 16  2022 ./test_cli_for_linux/adapter_for_linux/main.c
-rwx------ 1 recan system  857 Jan 15  2022 ./test_cli_for_linux/adapter_for_linux/osal.c
-rwx------ 1 recan system 1.4K Jan 15  2022 ./test_cli_for_linux/adapter_for_linux/uart.c
-rwx------ 1 recan system 2.1K Jan 15  2022 ./test_cli_for_linux/src/cli_adapt.c
-rwx------ 1 recan system  27K Jan 15  2022 ./test_cli_for_linux/src/cli.c
-rwx------ 1 recan system 8.0K Nov  9  2021 ./test_cli_for_linux/src/cli_default_command.c
-rwx------ 1 recan system 1.3K Nov  9  2021 ./test_cli_for_linux/src/cli_dumpsys.c
-rwx------ 1 recan system 1.6K Dec 13  2021 ./test_cli_for_linux/src/jx_os_cli.c
-rwxr-xr-x 1 recan system 9.1K Jan 16  2022 ./test_cli_for_linux/tcp_server.c
-rwx------ 1 recan system  626 Aug 18  2021 ./test_coredump/test_cordump.c
-rw-r--r-- 1 recan system  768 Jan 27  2022 ./test_for_loop/test.c
-rw-r--r-- 1 recan system  817 Sep  7  2021 ./test_gcc/pass_array2_test.c
-rwxr-xr-x 1 recan recan   233 Jul  6  2021 ./test_gcc/test.c
-rw-r--r-- 1 recan recan    87 Jun 11  2021 ./test_gcc_test/test.c
-rwx------ 1 recan system 1.8K Sep  8  2021 ./test_hexdump/test_hexdump.c
-rwx------ 1 recan system 1.7K Aug 31  2021 ./test_jd_paper_test/test.c
-rw-r--r-- 1 recan system  225 Aug 31  2021 ./test_python_gcc_map/liba.c
-rw-r--r-- 1 recan system  225 Aug 31  2021 ./test_python_gcc_map/libb.c
-rw-r--r-- 1 recan system  225 Aug 31  2021 ./test_python_gcc_map/libd.c
-rw-r--r-- 1 recan system  225 Aug 31  2021 ./test_python_gcc_map/libe.c
-rw-r--r-- 1 recan system  225 Aug 31  2021 ./test_python_gcc_map/libf.c
-rw-r--r-- 1 recan system  492 Aug 31  2021 ./test_python_gcc_map/main.c

關鍵腳本命令:find . -name *.c | xargs ls -alh

四、把幾個文本文件按順序拼接起來

recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ echo 111111 > 1.txt
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ echo 222222 > 2.txt
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ echo 333333 > 3.txt
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ cat 1.txt 2.txt 3.txt > all.txt
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ 
recan@ubuntu:~/win_share_workspace/test_share$ cat all.txt 
111111
222222
333333
recan@ubuntu:~/win_share_workspace/test_share$ 

關鍵腳本命令:cat 1.txt 2.txt 3.txt > all.txt

以上幾個常用的腳本操作,你都學會了嗎?歡迎討論。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Shell
    +關注

    關注

    1

    文章

    375

    瀏覽量

    25372
  • 腳本
    +關注

    關注

    1

    文章

    409

    瀏覽量

    29192
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ETAS INCA軟件的五個實用進階功能

    在上一篇文章中我們介紹了INCA軟件如何賦能高效的ECU開發及新能源挑戰,本篇內容將繼續深入探討INCA的五個實用進階功能。
    的頭像 發表于 12-08 16:42 ?2363次閱讀
    ETAS INCA軟件的五個實用<b class='flag-5'>進階</b>功能

    【瑞薩RA6E2】1.使用串口shell點亮LED燈

    啥技術含量,所以想來就打算實現一個小型的串口shell,用串口助手發指令來進行點燈,這樣將串口和點燈融為一體,不至于單調乏味。 1,打開原理圖 發現led1和led2分別如上圖,打開rasmart軟件
    發表于 11-09 17:26

    【EASY EAI Nano-TB(RV1126B)開發板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目-實現開機起動

    0接上文【EASY EAI Nano-TB(RV1126B)開發板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目 Linux 起動系統下 init 系統大多數 Linux 發行版
    發表于 11-03 17:25

    軟件更新 | TSMaster 9-10月版本發布:TAC腳本進階,小程序易用性大幅提升

    為持續賦能用戶的研發與測試工作,TSMaster正式發布2025年9-10月功能更新。本次版本聚焦于核心自動化能力的強化與用戶體驗的優化,重點帶來了TAC腳本全面進階、小程序易用性升級、API更新
    的頭像 發表于 10-31 20:04 ?1360次閱讀
    軟件更新 | TSMaster 9-10月版本發布:TAC<b class='flag-5'>腳本</b><b class='flag-5'>進階</b>,小程序易用性大幅提升

    【技術分享】正確編寫SysV Init腳本以實現Systemd兼容(上)

    嵌入式的ubuntu系統如何寫好SysVInit腳本呢?與system服務又有什么差別呢?一起隨著文章來探究吧。問題背景許多傳統Linux服務仍使用SysVInit腳本(/etc/init.d
    的頭像 發表于 10-28 11:45 ?712次閱讀
    【技術分享】正確編寫SysV Init<b class='flag-5'>腳本</b>以實現Systemd兼容(上)

    shell基本介紹及常用命令之shell基本介紹

    執行結果呈現給用戶;同時Shell也是一種解釋性的編程語言或者腳本語言,開發容易可以在短時間內完成功能強大又好用的腳本,可以在不同的系統上移植非常方便。Shell的特性不同的發行版本使
    發表于 09-28 09:05

    LuatOS腳本開發入門:嵌入式運行框架全解析!

    想搞懂LuatOS如何運行Lua腳本?本文深入剖析其嵌入式運行框架,涵蓋虛擬機加載、任務協程、系統初始化等關鍵環節,適合初學者。 一、LuatOS 編程起步 1.1 底層固件怎么啟動 LuatOS
    的頭像 發表于 09-26 17:45 ?477次閱讀
    LuatOS<b class='flag-5'>腳本</b>開發入門:嵌入式運行框架全解析!

    嵌入式開發新選擇:LuatOS腳本框架入門教程

    LuatOS正成為嵌入式開發的新趨勢!本教程帶你從基礎入手,全面了解其基于Lua的腳本開發模式與輕量級運行框架。 一、LuatOS 編程起步 1.1 底層固件怎么啟動 LuatOS 腳本
    的頭像 發表于 09-26 17:34 ?581次閱讀
    嵌入式開發新選擇:LuatOS<b class='flag-5'>腳本</b>框架入門教程

    嵌入式從入門到進階,怎么學?

    、Linux 深入層 核心目標突破應用開發,進入 內核 / 驅動 / 系統級開發 Linux 基礎命令行(文件 / 進程管理)、Shell 腳本、Makefile、交叉編譯(給 ARM 芯片編譯程序
    發表于 09-02 09:44

    【RA-Eco-RA6M4開發板評測】移植shell實現命令交互

    代碼見 一. 前言前面我們實現了標準輸入輸出,為了進一步方便交互調試,我們繼續來實現一個精簡的shellShell的實現參考https://mp.weixin.qq.com/s
    發表于 07-19 22:47

    Shell腳本入門指南

    Shell 是一塊包裹著系統核心的殼,處于操作系統的最外層,與用戶直接對話,把用戶的輸入, 解釋給操作系統,然后處理操作系統的輸出結果,輸出到屏幕給與用戶看到結果。
    的頭像 發表于 06-03 10:47 ?1198次閱讀
    <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門指南

    RK3568驅動指南|驅動基礎進階篇-進階7 向系統中添加一個系統調用

    RK3568驅動指南|驅動基礎進階篇-進階7 向系統中添加一個系統調用
    的頭像 發表于 05-21 14:15 ?708次閱讀
    RK3568驅動指南|驅動基礎<b class='flag-5'>進階</b>篇-<b class='flag-5'>進階</b>7 向系統中添加一個系統調用

    【米爾-RK3562開發板試用評測】命令行功能測試-shell腳本進行IO控制-(綠色)RUN 燈、(紅色)User燈

    shell腳本進行命令行功能測試 控制部分硬件測試。從IO控制-燈閃開始。 板手冊中LED例: **應開發板上的 RUN 燈 為例進行LED燈測試 root@myd-yr3562:~# cd
    發表于 05-09 18:19

    Altium Designer PCB設計高級進階

    對PCB設計的高級進階的內容進行相關的介紹 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內容有幫助可以關注、點贊、評論支持一下哦~)
    發表于 04-27 16:40

    樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本

    在本教程中,我將討論Shell腳本的基礎知識、它們的用途以及如何在RaspberryPi上編寫和運行Shell腳本。什么是Shell
    的頭像 發表于 03-25 09:28 ?1155次閱讀
    樹莓派新手必看!在樹莓派上編寫和運行 <b class='flag-5'>Shell</b> <b class='flag-5'>腳本</b>!