<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    初識Shell

    VSole2022-03-11 22:42:44

    轉自計算就該這么學

    一、程序 

    1、什么是程序

    程序是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。簡單來說,電腦里面的應用都是程 序來控制的,程序天天見。程序是由序列組成的,告訴計算機如何完成一個具體的任務。由于現在的計算機還不能 理解人類的自然語言,所以還不能用自然語言編寫計算機程序,不過現在語音識別技術己經很歷害了,在不久的將 來,估計,電腦就自己會編程序了。

    2、程序能做什么?

    電腦控制手機控制機械控制物聯控制。一切自動化制造的系統,都是由程序來控制的。

    3、什么是編程?

    編程 是個動詞,編程==寫代碼,寫代碼為了什么? 為了讓計算機干你想要干的事情,比如,馬化騰想跟別人聊天, 于是寫了個聊天軟件,這個軟件就是一堆代碼的集合,這些代碼是什么?這些代碼是計算機能理解的語言。

    二、語言 

    1、那計算能理解的語言是什么呢 ?

    計算機只能理解2進制,0101010...,總不能人肉輸一堆二進制給計算機(雖然最原始的計算機就是這么干的)讓它工 作吧,這樣開發速度太慢了。所以最好的辦法就是人輸入簡單的指令,計算機能把指令轉成二進制進行執行,

    2、有哪些編程語言?

    編程語言總體分以為機器語言、匯編語言、高級語言

    1)機器語言

    由于計算機內部只能接受二進制代碼,因此,用二進制代碼0和1描述的指令稱為機器指令,全部機器指令的 集合構成計算機的機器語言,用機器語言編程的程序稱為目標程序。只有目標程序才能被計算機直接識別和 執行。但是機器語言編寫的程序無明顯特征,難以記憶,不便閱讀和書寫,且依賴于具體機種,局限性很 大,機器語言屬于低級語言。

    用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手編程序時,程序員 得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何 種狀態。這是一件十分繁瑣的工作。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。而且,編 出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。除了計算機生產廠家的專業人員外,絕大多數的 程序員已經不再去學習機器語言了。

    機器語言是微處理器理解和使用的,用于控制它的操作二進制代碼。

    2)匯編語言

    匯編語言的實質和機器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標識符,更容易 識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。

    匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作。例如移動、自增,因此匯編源程序一 般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也 是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能夠實現的,而且源程序經匯編生成的可執 行文件不僅比較小,而且執行速度很快。

    3)高級語言

    高級語言是大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,并且去 掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指 令。同時,由于省略了很多細節,編程者也就不需要有太多的專業知識。

    高級語言主要是相對于匯編語言而言,它并不是特指某一種具體的語言,而是包括了很多編程語言,像最簡 單的編程語言PASCAL語言也屬于高級語言。

    高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:

    編譯類

    編譯是指在應用源程序執行之前,就將程序源代碼“翻譯”成目標代碼(機器語言),因此其目標程序可 以脫離其語言環境獨立執行(編譯后生成的可執行文件,是cpu可以理解的2進制的機器碼組成的),使用 比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。

    編譯后程序運行時不需要重新翻譯,直接使用編譯的結果就行了。程序執行效率高,依賴編譯器,跨平 臺性差些。如C、C++、Delphi等

    解釋類

    執行方式類似于我們日常生活中的“同聲翻譯”,應用程序源代碼一邊由相應語言的解釋器“翻譯”成目標代 碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能 脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活, 可以動態地調整、修改應用程序。如Shell,Python、Java、PHP、Ruby等語言。

    4)總結

    機器語言

    優點是最底層,速度最快,缺點是最復雜,開發效率最低

    匯編語言

    優點是比較底層,速度最快,缺點是復雜,開發效率最低

    高級語言

    編譯型語言執行速度快,不依賴語言環境運行,跨平臺差

    解釋型跨平臺好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行

    三、Shell 的定義 

    1、Shell 的含義

    首先Shell的英文含義是“殼”;它是相對于內核來說的,因為它是建立在內核的基礎上,面向于用戶的一種表現形 式,比如我們看到一個球,見到的是它的殼,而非核。Linux中的Shell,是指一個面向用戶的命令接口,表現形式 就是一個可以由用戶錄入的界面,這個界面也可以反饋運行信息;

    2、Shell 在Linux中的存在形式

    由于Linux不同于Windows,Linux是內核與界面分離的,它可以脫離圖形界面而單獨運行,同樣也可以在內核的 基礎上運行圖形化的桌面。這樣,在Linux系統中,就出現了兩種Shell表現形式,一種是在無圖形界面下的終端運 行環境下的Shell,另一種是桌面上運行的類似Windows 的MS-DOS運行窗口,前者我們一般習慣性地簡稱為終 端,后者一般直接稱為Shell

    3、Shell 如何執行用戶的指令

    1)Shell有兩種執行指令的方式,

    第一種方法是用戶事先編寫一個sh腳本文件,內含Shell腳本,而后使用Shell程序執行該腳本,這種方式,我 們習慣稱為Shell編程。

    第二種形式,則是用戶直接在Shell界面上執行Shell命令,由于Shell界面的關系,大家都習慣一行行的書寫, 很少寫出成套的程序來一起執行,所以也稱命令行。

    總結

    Shell 只是為用戶與機器之間搭建成的一個橋梁,讓我們能夠通過Shell來對計算機進行操作和交互,從而達到 讓計算機為我們服務的目的。

    四、Shell 的分類 

    Linux中默認的Shell是/bin/bash,流行的Shell有ash、bash、ksh、csh、zsh等,不同的Shell都有自己的特點以 及用途。

    1、bash

    大多數Linux系統默認使用的Shell,bash Shell是Bourne Shell 的一個免費版本,它是最早的Unix Shell,bash 還有一個特點,可以通過help命令 來查看幫助。包含的功能幾乎可以涵蓋Shell所具有的功能,所以一般的Shell腳本都會指定它為執行路徑。

    2、csh

    C Shell 使用的是“類C”語法,csh是具有C語言風格的一種Shell,其內部命令有52個,較為龐大。目前使用的 并不多,已經被/bin/tcsh所取代。

    3、ksh

    Korn Shell 的語法與Bourne Shell相同,同時具備了C Shell的易用特點。許多安裝腳本都使用ksh,ksh 有42條 內部命令,與bash相比有一定的限制性。

    4、tcsh

    tcsh是csh的增強版,與C Shell完全兼容。

    5、sh

    是一個快捷方式,已經被/bin/bash所取代。

    6、nologin

    指用戶不能登錄

    7、zsh

    目前Linux里最龐大的一種 zsh。它有84個內部命令,使用起來也比較復雜。一般情況下,不會使用該Shell。

    五、Shell 能做什么

    自動化批量系統初始化程序 (update,軟件安裝,時區設置,安全策略...)

    自動化批量軟件部署程序 (LAMP,LNMP,Tomcat,LVS,Nginx)

    應用管理程序 (KVM,集群管理擴容,MySQL,DELLR720批量RAID)

    日志分析處理程序(PV, UV, 200, !200, top 100, grep/awk)

    自動化備份恢復程序(MySQL完全備份/增量 + Crond)

    自動化管理程序(批量遠程修改密碼,軟件升級,配置更新)

    自動化信息采集及監控程序(收集系統/應用狀態信息,CPU,Mem,Disk,Net,T CP Status,Apache,MySQL)

    配合Zabbix信息采集(收集系統/應用狀態信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)

    自動化擴容(增加云主機——>業務上線)

    zabbix監控CPU 80%+|-50% Python API AWS/EC2(增加/刪除云主機) + Shell Script(業務上線)

    俄羅斯方塊,打印三角形,打印圣誕樹,打印五角星,運行小火車,坦克大戰,排序算法實現

    Shell可以做任何事(一切取決于業務需求)

    shell計算機指令
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    初識Shell
    2022-03-11 22:42:44
    程序是由序列組成的,告訴計算機如何完成一個具體的任務。編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。除了計算機生產廠家的專業人員外,絕大多數的 程序員已經不再去學習機器語言了。包含的功能幾乎可以涵蓋Shell所具有的功能,所以一般的Shell腳本都會指定它為執行路徑。目前使用的 并不多,已經被/bin/tcsh所取代。
    Mozi僵尸網絡使用自己的擴展DHT協議實現來構建P2P網絡。該惡意軟件通過嘗試猜測目標設備的Telnet密碼并利用已知漏洞進行傳播。一旦獲得對設備的訪問權限,該機器人便會嘗試執行惡意有效負載,并且該機器人將自動加入Mozi P2P網絡。研究人員認為,Mozi運營商將配置不良的設備作為攻擊目標,但導致物聯網攻擊激增的因素之一是威脅行為者可以瞄準的“不斷擴大的物聯網格局”。物聯網使用率的持續增長和配置協議不完善是造成這一躍遷的罪魁禍首。
    shell編程15例(三)
    2022-03-25 07:43:19
    1、統計當前 Linux 系統中可以登錄計算機的賬戶有多少個 #!/bin/bash # 統計當前 Linux 系統中可以登錄計算機的賬戶有多少個 #方法 1: grep "bash$" /etc/passwd | wc -l #方法 2: awk -f: '/bash$/{x++}end{print x}' /etc/passwd
    因此當不方便進行直接傳輸時,同時目標主機是能有網絡連接的,那么此時就可以通過本地下載這種方法來達到文件傳輸的目的。此篇文章,我會對互聯網上針對win與linux大部分的下載指令來做一個匯總,可能會有疏漏,但匯總的都是經常會用的。
    能運行的環境包括I/O,權限控制,系統調用,進程管理,內存管理等多項功能都可以歸結到上邊兩點中。需要注意的是,kernel 的crash 通常會引起重啟。注意大多數的現代操作系統只使用了 Ring 0 和 Ring 3。
    自11月底發布以來,美國人工智能研究公司OpenAI的高級聊天機器人ChatGPT已經被用戶玩出了花。如今,一家安全供應商發出警告稱,黑客可能利用該聊天機器人執行高度針對性的網絡攻擊。上個月發布的時候,OpenAI表示設置了檢查措施防止ChatGPT生成惡意代碼,但發布之后人們找到了多種方式騙過這個系統,讓ChatGPT認為產生惡意代碼僅僅是出于研究目的。
    前言office宏攻擊是釣魚郵件場景中最常見的攻擊手段,其制作簡單,兼容性強,非常適合批量攻擊,但由于其需要用戶交互,隱蔽性差,攻擊能否成功基本取決于目標的安全意識強弱。
    SOCIALNETWORK打靶記錄
    2023-05-29 09:14:26
    對隱藏路徑進行爬取和發現:打開后發現是一個代碼執行頁面 如果過濾不嚴格可能可以通過該功能直接執行代碼操作。通過查看是否存在dockerenv這個文件,如果存在則大概率就是一個docker容器系統。16個網段,存在65535個ip。在kali系統上啟動http程序,在目標靶機上運行wget,將kali上的a程序下載過去。使用賬密進行ssh登錄。
    所以可以通過它傳回lsass.dmp本地提取hashprocdump64.exe -accepteula -ma lsass.exe lsass.dmp 執行該指令,獲取到lsass.dmp
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类