Linux commands

From LemonWiki共筆
Jump to navigation Jump to search

(1) alternative Linux commands to complete the same task, (2) The equivalent or similar commands between Windows and Linux system.

Owl icon.jpg Help for command:
Linux Os linux.png or macOS icon_os_mac.png : Type command_name --help or man command_name  ;
Win Os windows.png : Type command_name /? "Open Source tools Cygwin which provide functionality similar to a Linux distribution on Windows"

Text file manipulation

Display the content of text file

Display the first lines of text file

  • head [options] filename (OS: Linux   )
  • vi [options] filename (and press gg) (Linux   )
  • vim [options] filename (and press gg) (Linux   ); Open file and press gg for gVim (Win   )

Display the first xxx bytes of text file

  • On Linux   , To display the first bytes characters of text file[1]
head -c 100 file_name

Display the last few lines of text file

Display the entire content of text file

  • vi [options] filename (Linux   )
  • cat <filename> (Linux   )
  • type <filename> (Win   )

Display the partial content of large text file page by page

  • cat <filename> | less (Linux   or Cygwin on Win   ) Icon_exclaim.gif Chinese issue[2]
  • type <filename> | more (Win   ) If the file was encoded in UTF-8, you need to key in chcp 65001 first [3].

Display only certain lines by number

text processing - With the Linux "cat" command, how do I show only certain lines by number - Unix & Linux Stack Exchange

Show certain lines by line number

Show certain lines by line number

Newline count (count the number of lines of a file), word count

  • wc -l <filename> for Linux   [4] ex: wc -l *.txt to print the newline count of txt files of the current folder
  • find . -type f -exec cat {} + | wc -l for Linux   & macOS icon_os_mac.png to print the newline count of all files on all subdirectories[5]
  • wc -l "$(cygpath -u '<path to file>')" for cygwin on Win   ex: wc -l "$(cygpath -u 'c:\Program Files\file.txt')"[6]

Icon_exclaim.gif linux - wc -l is NOT counting last of the file if it does not have end of line character - Stack Overflow

Save the console message as text file

Save the Unix manpage as plain text file

Search text in a file

  • grep command for multiple files: grep -ir "string to search" /path/to/directory or grep keyword /path/to/file (Linux   )
  • vim: (1)vim [options] filename (2)press /keyword (Linux   )
  • cat & grep: cat /path/to/file | grep keyword (Linux   ) keyword is case sensitive

Search text in a compressed text file

  • zcat & grep: cat /path/to/compressed_text.gz | grep keyword (Linux   )[7]

Search text in files[8]

Merge multiple plain text files

Merge multiple text files into one file

File operation

Find a file by filename

  • Good.gif locate command (Linux   ) ex: locate filename to locate the filename quickly. [9]
  • find command (Linux   ) ex: sudo find / -iname filename Find the case-insensitive file name Under the path / (root folder) [10]
  • dir command (Win   ) ex: dir /s filename [11][12] Icon_exclaim.gif I have no idea to specify the file path to find the file.

Copy & overwrite file

overwrite file without prompt (confirmation): cp command

  • cp -f to_be_copy.file to_be_overwrote.file (Linux   )[13]
  • /bin/cp -f to_be_copy.file to_be_overwrote.file (Linux   )

Copy old directory to new directory

  • cp -a old_dir new_dir/ or cp -a old_dir/ new_dir/ (Linux   )[14][15]
    • If the folder new_dir exists already, system will create the folder old_dir and all files and sub folders under old_dir will copy to the path new_dir/old_dir.
    • If the folder new_dir NOT exists, all files and sub folders under old_dir will copy to the folder new_dir.
  • cp -a old_dir/* new_dir/ (Linux   ): All files and sub folders under old_dir will copy to the folder new_dir.
  • copy /Y old_dir new_dir/ (Win   )[16]
  • make new directory & copy all old files to new directory
    • mkdir new_dir
    • cp old_dir/* new_dir
  • How to move all files in current folder to subfolder? - Ask Ubuntu

Rename (move) files or directory

  • mv /path/to/old_folder_name /path/to/new_folder_name (Linux   )[17]
  • mv /path/to/old.file /path/to/new.file (Linux   )
  • mv /path/to/file /path/to/new_folder_name (Linux   )
  • rename old_folder_name new_folder_name (Win   )[18]

Delete files or directory

delete all files or directory

  • rm -rf /Name_of_directory to delete all files under the 'Name_of_directory (Linux   )[19]
  • del Name_of_directory (Win   )
    • After executed del Name_of_directory but the empty directory directory_name will be left.
    • Command delete is not available in Win XP
  • rsync
    • Good.gif quick for many small files (1) create a empty folder ex: mkdit /path/to/source (2) To empty the target folder, keyin rsync -avP --delete /path/to/source/ /path/to/target/ (Linux   )
    • rsync --delete-before -a -H -v --progress --stats /path/to/empty/folder/ /path/to/target_folder_will_be_deleted/ (Linux   )[20] un-verified
  • Using SFTP/FTP to connection to the server and delete selected files. Icon_exclaim.gif It may costs too much time if there are many files or sub folders!

Delete the files which their file name were matched with the naming rule when the number of files is too many.

  • find . -name 'naming_rule' -delete or find . -name 'naming_rule' -type f -delete [21][22][23]

Download file from remote server

  • FTP
  • wget (with progress bar): wget http://path.to/file
  • SVN update: svn up http://remote.svn.server/path/ /local/path/ --username=your_account and key in your SVN password [24]
  • more on File transfer methods


File compression and decompression

compress

decompress

  • gunzip -c big.file.gz > big.file(Linux   ) keep the gz file[26]
  • gzip -d big.file.gz(Linux   ) NOT keep the gz file

ref

List directory or files / list directory contents

  • ls (Linux   ) ls - list directory contents
    • List detailed information of files. e.g. ls -lh[27] [28]
    • List detailed information of files and sort by modification time. ls -lht
    • List top N files and sort by modification time. ls -lht | head -N e.g. ls -lht | head -10 First line is the total file size of specified folder.[29]
  • ll (Linux   ) ll = ls -l
  • Print the entire path of files and level-unlimited sub-directories in the current directory. On Win   using dir/s/b, and on Linux   using find /path/to/files/ -print [30].
  • Good.gif create ls command in Win   command prompt: echo dir %1 > %systemroot%\system32\ls.bat Thanks, hmjd![31]
  • List all files and directories including hidden ones in the current directory. On Win   is dir /a, and on macOS icon_os_mac.png or Linux   is ls -a[32][33].

Verify if a file or a directory exists

  • On Linux   : ls /path/to/file or ls -d /path/to/directory/ e.g. ls -d ~/ to list your home directory[34].
  • On Win   :
    • dir C:\path\to\file or dir C:\path\to\directory\
    • IF EXIST [35][36]
SET a=C:\path\to\file
REM -- If the directory was separated the \ symbol & the path NOT contains space
IF EXIST %a% (ECHO YES) ELSE (ECHO No)

SET a="C:\path\to\directory contains space\space"
REM -- If the directory was separated the \ symbol & the path contains space
IF EXIST %a% (ECHO YES) ELSE (ECHO No)

SET a=C:/path/to/file
REM -- If the directory was separated the / symbol, the next command replace / with \ symbol.
SET a=%a:/=\%
IF EXIST %a% (ECHO YES) ELSE (ECHO No)

troubleshooting

SET a = C:\path\to\file
REM -- Correct command: SET a=C:\path\to\file
IF EXIST %a% (ECHO YES) ELSE (ECHO No)
REM -- the returned result will not correct!

Print the current directory / where am i

  • Linux   : pwd print name of working directory. More on pwd.
  • Win   : cd or echo %cd% to print current directory [37]

Change directory to my home directory

  • cd ~/ or cd $HOME (Linux   ) will switch to my home directory ex: /Users/ACCOUNT[38]
  • cd %UserProfile% (Win   ) will switch to my home directory ex: C:\Users\ACCOUNT more on MS_Windows_Explorer[39]

network

show ip

ping Icon_exclaim.gif You may got no response if the server was disabled the ICMP (Internet Control Message Protocol) response.

  • ping domain_or_ip (Linux   )
  • ping domain_or_ip -t (Win   )

whois: search the information of domain (related: Domain Name Register)

TRACERT (trace route)

  • traceroute domain_or_ip (Linux   ) & macOS icon_os_mac.png
  • tracert domain_or_ip -t (Win   )

apache operation

check apache servie is running or not

  • service --status-all | grep -i httpd (Linux   [43][44])
  • netstat -npl | grep httpd for Linux   [45]
  • netstat -an | find /i "listening" (Win   ) find the local open ports & find local address TCP 0.0.0.0:80 is listening[46]
  • more on connection test...

Where is apache installed?[47]

  • cat /etc/rc.d/rc.local if the apache service is already launched

check which mpm (multi processing module) apache is running

  • httpd -l (Linux   & Win   ) ex: Linux   /usr/local/httpd/bin/httpd -l or Win   x:\apache\bin>httpd -l where x:\apache is the installation folder of apache [48]

mysql operation

MySQL commands: 1. Exporting data into MySql sql file & 2. Importing data from MySql sql file

install package


system operation

show current time

  • date (Linux   ) output the system date: Thu Oct 25 15:05:10 CST 2012 [51][52]
  • TZ=Asia/Taipei date (Linux   ) output the time from the Taipei/CST timezone [53]
  • date/t (Win   ) (parameter: /t will not ask you to change the current date)

More on the page Show current time

specify the location where Linux or MS-DOS looks when using a command

reboot the system/server

Shutdown system at a specific date time.

OS version


Show the process list & kill the process

Show the process list & kill the high-resource-consumption process[60][61]

  1. display the process list
    • top "display Linux tasks" for Linux   or
    • top -a or ps aux --sort -rss | more[62] "Sort by memory usage" for Linux  
  2. keyin q to leave the process list
  3. find which process to be killed. And then keyin:
    • kill <PID> or kill -<PID> PID. To kill the process with PID number: 101, enter kill 101. [63]
    • kill -9 <PID>. Force to kill the process with PID number: 101, enter kill -9 101. [64]

Find process running on port

Find process running on port

Search and extract string from command output

  • linux command | awk '/string/' (Linux   )[65] ex:
    • keyin dpkg --get-selections | awk '/tar/' to search the installed package naming tar for Ubuntu.[66]
    • keyin dpkg --get-selections | awk '/zip|unzip/' to search the installed package naming zip or unzip for Ubuntu.
  • linux command | grep string (Linux   ) ex: keyin yum list installed | grep tar to search the installed package naming tar for CentOS.[67]
  • Windows command | find "string" (Win   ) ex: netstat -a | find "3306" (note: enclose string in double quotation marks)[68]

System CPU usage

CPU usage / system load average

  • Win   :
    • namespace: ROOT\CIMV2
    • WQL query: SELECT LoadPercentage FROM Win32_Processor; No need to divid by CPU cores number for Win8
    • output example: 24 (UInt16, 16 bit Unsigned Integer) unit: %
    • CPU usage = LoadPercentage; unit: %
  • freebsd, Linux   & macOS icon_os_mac.png :

System memory usage

Memory usage

  • Win   :
    • namespace: ROOT\CIMV2
    • WQL query: SELECT FreePhysicalMemory, TotalVisibleMemorySize FROM Win32_OperatingSystem[69]
    • output example: 21683460 (UInt64, 64 bit Unsigned Integer) unit: KB
    • memory usage = (FreePhysicalMemory * 100) / TotalVisibleMemorySize; unit: %
  • freebsd & Linux   :
    • command: free
    • output example:
                               total       used       free     shared    buffers     cached
                    Mem:       8060416    7922496     137920        120     183608     526180
                    -/+ buffers/cache:    7212708     847708
                    Swap:      4194300    1219364    2974936
    • memory usage = 7922496 / 8060416; unit: %
  • macOS icon_os_mac.png (known as Darwin):
    • command: top -l 1
    • output example: PhysMem: 8017M used (1486M wired), 172M unused.
    • memory usage: 172 / (8017+172); unit: %

System disk space usage

hard disk usage

  • df command "disk space usage" for Linux   df -h
  • du command "estimate file space usage" of specific folder for Linux  
    • du -h /path/to/folder/ Detailed output of hard disk usage of specific folder and child folders. e.g. du -h /home | sort -rn > ~/disk.txt
    • du -hcs /path/to/folder/ Brief output of total hard disk usage.
    • du --max-depth=1 -B M /path/to/folder/ | sort -g[70]Output example:
0M      /sys
1M      /tmp
9M      /run
27M     /etc
36M     /root
165M    /boot
1647M   /usr
49287M  /var
51379M  /home
102547M /

How To Find Largest Top 10 Files and Directories On Linux / UNIX / BSD - nixCraft Icon_exclaim.gif It may costs time to return the result if there are too many file under the specified path. Output example of du -a -BM /path/to/folder/ | sort -n -r | head -n 10:

# du -a -BM /var/ | sort -n -r | head -n 10
11199M  /var/
10384M  /var/lib
6336M   /var/lib/mysql
3714M   /var/lib/strong-pm
3661M   /var/lib/strong-pm/svc
2042M   /var/lib/strong-pm/svc/1/work
2042M   /var/lib/strong-pm/svc/1
1619M   /var/lib/strong-pm/svc/2/work

Options cited from the content of Linux man page[71]

  • -a, --all "write counts for all files, not just directories"
  • -B, --block-size=SIZE "scale sizes by SIZE before printing them"

Scan the disk

Switch the user account

switch the current user

  • su on Linux   switch the current user to super user [73]
  • su - <user name> on Linux   switch the current user to another user

prints the current user

  • whoami on Linux   & Win   "prints the effective user ID"[74][75]

Clean the screen/console

help for command

view the documentation for this command

  • command --help or man command (Linux   )
  • command /? (Win   )

find the path of an executable

  • which command for Linux   ex: which wc will return the path '/usr/bin/wc'
  • which command for macOS icon_os_mac.png ex: which wc will return the path '/usr/bin/wc' (Input where command to find alternative commands with the same file name.)
  • where command for Win   version 2003 or 8. ex: where nslookup will return the path 'C:\Windows\System32\nslookup.EXE'[78] Icon_exclaim.gif not all DOS command will return the information ex: where cd, where dir. Related page: How to setup my system path

emergency exit

  • ctrl+c or ctrl+break (Linux   , Win   & macOS icon_os_mac.png )
  • Pause/Break (Linux   ) ex: I pressed the key to leave from the warning message "Vim: Warning: Output is not to a terminal".

相關新聞聯播

Linux OR unix 相關新聞聯播
法國計畫將部份公部門Windows電腦改成Linux,使用開源IT軟體 - iThome
Valve 悄悄將 Proton 移植至 Wine 11,Linux 遊戲終於迎來 Windows 級幀時序 - 電腦王阿達
工程師用復古軟碟機,成功讓 Tesla 播放 Rick Astley - hypebeast.com
Linux 崛起的最大功臣:微軟 - TechNews 科技新報
Valve Linux VRAM優化實測《心靈殺手2》效能暴升192% - GameApps.hk
Valve改善Linux的記憶體調度 8GB以下顯卡容量利用率大提升 - 4Gamers
Linux 7.1 加入原生 NTFS 讀寫支援 完美掛載寫入 性能提升最高 110% - 電腦領域HKEPC Hardware
美國CISA 警告:Linux 內核高危險漏洞遭勒索軟體集團攻擊利用 - informationsecurity.com.tw
逃離Windows Linux一發行版本下載破200萬 75%來自Windows使用者 - XFastest News
AI輔助撰碼納入Linux核心 人類開發者仍是責任最終歸屬 - Yahoo股市
OpenAI 在 Linux 基金會下共同創立了 Agentic AI 基金會 - OpenAI
Linux自7.1起不再支援i486,認為沒有理由把開發資源耗費於此 #相容性 (247569) - Cool3c
Linux核心首度出現Rust漏洞,恐導致系統當機 - iThome
Linux 7.0 推出三款原生 AI 鍵碼,Google 負責 HID 規範和核心修補程式 - TechNews 科技新報
中國駭客組織開發VoidLink惡意軟體框架,鎖定Linux雲端環境 - informationsecurity.com.tw
Linux基金會成立代理式AI基金會,收編三大標準 - iThome
Linux核心存在資安漏洞CrackArmor,攻擊者可取得Root權限、繞過容器隔離機制 - iThome
【資安日報】8月26日,散布Linux後門出現透過檔案名稱搭Bash指令碼的新手法 - iThome
開源專案Arch Linux遭到超過一周的DDoS攻擊 - iThome
為迴避偵測,勒索軟體Qilin在Windows電腦使用Linux加密工具犯案 - iThome
Linux之父也在Vibe Coding!坦言:不會用在核心系統 - ETtoday新聞雲
Linux 基金會接手 Coinbase 推出的 x402 協議,23 家大廠共同打造 AI 交易標準 - 區塊客
俄駭客利用Windows內建Hyper-V躲避資安偵測,私建輕量Linux VM偽裝WSL混淆系統監控 - iThome
美國要求作業系統需年齡驗證 Windows、macOS、Linux 全都要做 - 電腦領域HKEPC Hardware
後門程式PeerBlight鎖定React2Shell而來,企圖綁架Linux主機從事挖礦及DDoS攻擊 - iThome
歷史新高!已有9成遊戲可在Linux上執行 能取代Windows 11嗎? - XFastest News
Anthropic 新模型 Mythos 強到自家都不敢放:幾小時能自主攻破全球 Linux、串出完整漏洞鏈 - 動區動趨
新手學Linux不再繞路!恆逸全新RHCSA 10 認證課程同步開班 - iThome
專為雲端打造的Linux惡意程式VoidLink現身 - iThome
從流行音樂到 Linux 核心:南臺科大如何透過「教學實踐」 打造隨處發光的 AI 活才 - peopo.org
Windows正現玩家出走潮?Steam 3月市佔率掉了4%、Linux撿走了3% - 4Gamers
最像 Windows 的 Linux 爆紅!Zorin OS 18 單月下載破百萬、超多 Windows 用戶轉向 - T客邦

Powered by Google News

references

  1. cut - get first X characters from the cat command? - Unix & Linux Stack Exchange
  2. linux - Show special characters in Unix while using 'less' Command - Stack Overflow un-verified
  3. (Solved) Window命令視窗中文亂碼 改編碼方法
  4. wc (Unix) - Wikipedia, the free encyclopedia
  5. linux - Use wc on all subdirectories to count the sum of lines - Stack Overflow
  6. Cygwin convert windows path to linux path
  7. Unix / Linux: cat .GZ Compressed Text File On Screen
  8. 鳥哥的 Linux 私房菜 -- 學習 bash shell
  9. Linux 快速尋找檔案 - locate - Tsung's Blog
  10. Find command: how to ignore case? - Unix and Linux; Find the case-sensitive file name Under the path / (root folder) ex: find / -name filename ref:Tips For Linux - How to find files in Linux using 'find'
  11. How to find a file in MS-DOS.
  12. /S 顯示指定目錄及所有子目錄中的檔案。 (引用自 dir /? 命令說明)
  13. Linux:檔案複製強制覆寫, cp force overwrite @ 符碼記憶
  14. from manual:
    -a, --archive
                  same as -dR --preserve=all
    -d     same as --no-dereference --preserve=links
    --preserve[=ATTR_LIST]
                  preserve the specified attributes (default: mode,ownership,timestamps), if  possible  addi-
                  tional attributes: context, links, xattr, all
    -R, -r, --recursive
                  copy directories recursively
  15. unix - How to copy with cp to include hidden files and hidden directories and their contents? - Super User
  16. /Y 不顯示覆寫現存目的檔案的確認提示。 (引用自 copy /? 命令說明)
  17. Linux Rename Files, Folders or Directories
  18. MS-DOS ren and rename command help
  19. [OPTION]
    • -r remove directories and their contents recursively;
    • -f ignore nonexistent files, never prompt
    (above content cited from linux documentation: rm --help)
  20. Linux下使用rsync最快速删除海量文件的方法_果冻的剥壳_新浪博客
  21. How to recursively remove .DS_Store files on Mac OS X | Tangential Musings
  22. XYZ的筆記本: Linux 使用 rm 刪除檔案,出現 /bin/rm: Argument list too long
  23. Linux find command
  24. using the www account su - www -c "svn up http://remote.svn.server/path/ /local/path/ --username=your_account --password=xxx"
  25. A Unix Utility You Should Know About: Pipe Viewer - good coders code, great reuse
  26. linux - How do you gunzip a file and keep the .gz file? - Super User
  27. 鳥哥的 Linux 私房菜 -- Linux 的檔案權限與目錄配置
  28. [OPTION]
    • -l use a long listing format
    • -h, --human-readable; with -l, print sizes in human readable format (e.g., 1K 234M 2G) Quoted from linux man ls
  29. How to list top 10 files | Unix Linux Forums | UNIX for Dummies Questions & Answers
  30. linux - Making ls output like dir /b /s - Super User
  31. How to create ls in windows command prompt? - Stack Overflow
  32. How to see hidden files in MS-DOS and the Command Prompt
  33. Bash Shell: Display All Hidden Dot Files In a Directory
  34. Single linux command to return to home directory
  35. How to verify if a file exists in a Windows .BAT file? - Stack Overflow
  36. Windows shell string operations (changing backslash to slash) - Stack Overflow
  37. Windows equivalent to UNIX pwd - Stack Overflow
  38. linux - Where is the $HOME environment variable set? - Super User
  39. weka - Where is my home directory located?
  40. 鳥哥的 Linux 私房菜 -- Linux 常用網路指令介紹
  41. bash: ifconfig: command not found 無法使用ifconfig指令? 先加上 su -l指令
  42. mac 要怎麼看自己的ip呢 - Mobile01
  43. Red Hat / CentOS: Check / List Running Services
  44. -i means ignore caseHow to use the grep command, by The Linux Information Project (LINFO)
  45. Linux / UNIX Find Out What Program / Service is Listening on a Specific TCP Port
  46. Netstat
  47. Enabling and disabling services during start up in GNU/Linux | All about Linux
  48. Check which mpm (multi processing module) apache is running | Binary Tides
  49. Linux / Unix pv Command: Monitor Progress of Data Sent Via a Pipe
  50. ivarch.com: Pipe Viewer
  51. 鳥哥的 Linux 私房菜 -- NTP 時間伺服器
  52. DATE (command) - Wikipedia, the free encyclopedia
  53. How can I have `date` output the time from a different timezone? - Unix & Linux Stack Exchange
  54. 鳥哥的 Linux 私房菜 -- 檔案與目錄管理 -- 關於執行檔路徑的變數: $PATH
  55. reboot - Linux Command - Unix Command
  56. Windows原來也有內建好用的關機軟體(Shutdown.exe) | ㊣軟體玩家
  57. How to shutdown Linux at a specific datetime from terminal? - Unix & Linux Stack Exchange
  58. The Will Will Web | 如何查詢 Linux 的種類與版本 ( Linux Standard Base )
  59. Find windows OS version from command line
  60. How do I Find Out Linux CPU Utilization? - nixCraft
  61. Show All Running Processes in Linux
  62. 鳥哥的 Linux 私房菜 -- 第十六章、程序管理與 SELinux 初探
  63. Kill Process in Linux or Terminate a Process in UNIX / Linux Systems, kill(1): terminate process - Linux man page
  64. 鳥哥的 Linux 私房菜 -- 第十六章、程序管理與 SELinux 初探
  65. shell script - How to search and extract string from command output? - Unix & Linux Stack Exchange
  66. logical operators in grep
  67. Unix/Linux grep command examples | grep command in Unix and Linux | grep examples | alvinalexander.com
  68. Microsoft Windows XP - Find
  69. Collect Memory Data from WMI (Win32)
  70. 【系統】使用 du 來看磁碟的使用空間 @ My Life :: 隨意窩 Xuite日誌
  71. du man page
  72. Cloud Provider and Dedicated Server Hosting in Dallas, TX
  73. Linux su command help and examples
  74. Linux whoami command help and examples
  75. Whoami
  76. Cls
  77. Clear! (clear your terminal screen) | Linux.org
  78. What is Windows' equivalent of the "which" command in Unix? Is there an equivalent PowerShell command? - Super User

further reading

related pages: