Linux commands
(1) alternative Linux commands to complete the same task, (2) The equivalent or similar commands between Windows and Linux system.
Help for command:- Linux
or macOS
: Type command_name --help or man command_name ; - Win
: Type command_name /? "Open Source tools Cygwin which provide functionality similar to a Linux distribution on Windows"
text file manipulation
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 last few lines of text file
- tail [options] filename (Linux
) - vi [options] filename (and press G) (Linux
) - vim [options] filename (and press G) (Linux
); Open file and press G for gVim (Win
) - Tail for Win32 GUI interface (Win
)
not support Unicode file for v.4.2.6
Display the content of text file
- vi [options] filename (Linux
) - cat filename (Linux
) - tail - cat line X to line Y on a huge file - Unix & Linux Stack Exchange
newline count (count the number of lines of a file), word count
- wc -l <filename> for Linux
[1] ex: wc -l *.txt to print the newline count of txt files of the current folder - wc -l "$(cygpath -u '<path to file>')" for cygwin on Win
ex: wc -l "$(cygpath -u 'c:\Program Files\file.txt')"[2]
Save a Unix manpage as plain text
- man man | col -b > man.txt Thanks! Save a Unix manpage as plain text
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
)[3]
Merger multiple plain text files
- copy *.txt > bundle.txt or copy file1.txt file2.txt > bundle.txt for Win
- cat *.txt > bundle.txt or cat file1.txt file2.txt > bundle.txt for Linux
[5]
file operation
Find a file by filename
locate command (Linux
) ex: locate filename to locate the filename quickly. [6]
- find command (Linux
) ex: sudo find / -iname filename Find the case-insensitive file name Under the path / (root folder) [7]
- dir command (Win
) ex: dir /s filename [8][9]
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
)[10] - /bin/cp -f to_be_copy.file to_be_overwrote.file (Linux
)
Copy old directory to new directory
- cp -a old_dir new_dir/ (Linux
)[11] - copy /Y old_dir new_dir/ (Win
)[12] - make new directory & copy all old files to new directory
- mkdir new_dir
- cp old_dir/* new_dir
Rename (move) files or directory
- mv old_folder_name new_folder_name (Linux
)[13] - mv /path/to/file /path/to/new_folder_name (Linux
) - rename old_folder_name new_folder_name (Win
)[14]
Delete files or directory
delete all files or directory
- rm -rf /Name_of_directory to delete all files under the 'Name_of_directory (Linux
)[15] - 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
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
)[16] un-verified
- S/FTP to the server and delete selected files
delete the files with the naming rule
- find . -name 'naming_rule' -type f -delete [17]
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 [18]
- more on File transfer methods
File compression and decompression
compress
- pv big.file | gzip > big.file.gz(Linux
)[19] keep the original file - gzip -v big.file(Linux
) NOT keep the original file. File name after compressed: big.file.gz - How do I Compress a Whole Linux or UNIX Directory? for Linux
decompress
- gunzip -c big.file.gz > big.file(Linux
) keep the gz file[20] - 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
- 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 [24].
create ls command in Win
command prompt: echo dir %1 > %systemroot%\system32\ls.bat Thanks, hmjd![25]- List all files and directories including hidden ones in the current directory. On Win
is dir /a, and on macOS
or Linux
is ls -a[26][27].
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[28]. - On Win
:
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
Change directory to my home directory
- cd ~/ or cd $HOME (Linux
) will switch to my home directory ex: /Users/ACCOUNT[32] - cd %UserProfile% (Win
) will switch to my home directory ex: C:\Users\ACCOUNT more on MS_Windows_Explorer[33]
network
show ip
ping
You may got no response if the server was disabled the ICMP (Internet Control Message Protocol) response.
whois: search the information of domain (related: Domain Name Register)
- whois domain (Linux
or Win
: require to install whois for windows)
TRACERT (trace route)
apache operation
check apache servie is running or not
- service --status-all | grep -i httpd (Linux
[36][37]) - netstat -npl | grep httpd for Linux
[38] - netstat -an | find /i "listening" (Win
) find the local open ports & find local address TCP 0.0.0.0:80 is listening[39] - more on connection test...
Where is apache installed?[40]
- 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 [41]
mysql operation
MySQL commands: 1. Exporting data into MySql sql file & 2. Importing data from MySql sql file
install package
- Linux
: ex: install the Pipe Viewer (pv) package
- How to Enable RPMForge Repository in RHEL/CentOS 7.x/6.x/5.x/4.x
- (1)yum install pv for RHEL / CentOS / SL / Fedora Linux[42]; (2) apt-get install pv for Debian / Ubuntu[43];
- macOS
- install Homebrew "package manager for OS X"
- brew search PACKAGE_NAME ex: brew search wget
- if the package is available. brew install PACKAGE_NAME ex: brew install wget
system operation
show current time
- date (Linux
) output the system date: Thu Oct 25 15:05:10 CST 2012 [44][45] - TZ=Asia/Taipei date (Linux
) output the time from the Taipei/CST timezone [46] - date/t (Win
) (parameter: /t will not ask you to change the current date)
output: OS in English: Thu 05/03/2012 OS in Chinese (XP): 2012/05/03 星期四 OS in Chinese (Windows 8, 10): 2014/07/01 週二
- prompt $d $t $_$P$G (Win
[47])
output: OS in Chinese (Windows 10): 2017/02/03 週五 15:35:31.61
- related pages: Time server, timestamp in PHP and MySQL syntax
specify the location where Linux or MS-DOS looks when using a command
- echo $PATH (Linux
)[48] - echo %PATH% (Win
) more on How to setup my system path
reboot the system/server
Shutdown system at a specific date time.
- Linux
: (1) Enter date to verify the server timezone. (2) Enter sudo shutdown -h 20:02 [51] - Win
: Schedule Shutdown or Restarts in Windows using the Task Scheduler
OS version
Show the process list & kill the process
Show the process list & kill the high-resource-consumption process[54][55]
- display the process list
- top "display Linux tasks" for Linux
or - top -a or ps aux --sort -rss | more[56] "Sort by memory usage" for Linux
- top "display Linux tasks" for Linux
- keyin q to leave the process list
- find which process to be killed. And then keyin:
Search matched text of command output
- linux command | awk '/string/' (Linux
) ex:
- keyin dpkg --get-selections | awk '/tar/' to search the installed package naming tar for Ubuntu.[59]
- 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.[60] - Windows command | find "string" (Win
) ex: netstat -a | find "3306" (note: enclose string in double quotation marks)[61]
system CPU, memory and disk space 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
:
- PHP function sys_getloadavg() unit: %; Need to divid by CPU cores number
Memory usage
- Win
:
- namespace: ROOT\CIMV2
- WQL query: SELECT FreePhysicalMemory, TotalVisibleMemorySize FROM Win32_OperatingSystem[62]
- output example: 21683460 (UInt64, 64 bit Unsigned Integer) unit: KB
- memory usage = (FreePhysicalMemory * 100) / TotalVisibleMemorySize; unit: %
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
(known as Darwin):
- command: top -l 1
- output example: PhysMem: 8017M used (1486M wired), 172M unused.
- memory usage: 172 / (8017+172); unit: %
hard disk usage
- df command "disk space usage" for Linux
df -h - du command "estimate file space usage" of specific folder for Linux
du --max-depth=1 -B M /path/to/folder/ | sort -g[63]Output example:
0M /sys 1M /tmp 9M /run 27M /etc 36M /root 165M /boot 1647M /usr 49287M /var 51379M /home 102547M /
Scan the disk
- GUI: How to Perform Scandisk in Windows Win
- Command: shutdown -rF now Force fsck when rebooting a Linux server (Linux
)[64]
Clean the screen/console
help for command
view the documentation for this command
find the path of an executable
- which command for Linux
& macOS
ex: which wc will return the path '/usr/bin/wc' - where command for Win
version 2003 or 8. ex: where nslookup will return the path 'C:\Windows\System32\nslookup.EXE'[67]
not all DOS command will return the information ex: where cd, where dir
emergency exit
- ctrl+c or ctrl+break (Linux
, Win
& macOS
) - Pause/Break (Linux
) ex: I pressed the key to leave from the warning message "Vim: Warning: Output is not to a terminal".
references
- ↑ wc (Unix) - Wikipedia, the free encyclopedia
- ↑ Cygwin convert windows path to linux path
- ↑ Unix / Linux: cat .GZ Compressed Text File On Screen
- ↑ 鳥哥的 Linux 私房菜 -- 學習 bash shell
- ↑ Terminal 101: Join Multiple Files Together with Cat
- ↑ Linux 快速尋找檔案 - locate - Tsung's Blog
- ↑ 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'
- ↑ How to find a file in MS-DOS.
- ↑ /S 顯示指定目錄及所有子目錄中的檔案。 (引用自 dir /? 命令說明)
- ↑ Linux:檔案複製強制覆寫, cp force overwrite @ 符碼記憶
- ↑
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 - ↑ /Y 不顯示覆寫現存目的檔案的確認提示。 (引用自 copy /? 命令說明)
- ↑ Linux Rename Files, Folders or Directories
- ↑ MS-DOS ren and rename command help
- ↑ [OPTION]
- -r remove directories and their contents recursively;
- -f ignore nonexistent files, never prompt
- ↑ Linux下使用rsync最快速删除海量文件的方法_果冻的剥壳_新浪博客
- ↑ How to recursively remove .DS_Store files on Mac OS X | Tangential Musings
- ↑ using the www account su - www -c "svn up http://remote.svn.server/path/ /local/path/ --username=your_account --password=xxx"
- ↑ A Unix Utility You Should Know About: Pipe Viewer - good coders code, great reuse
- ↑ linux - How do you gunzip a file and keep the .gz file? - Super User
- ↑ 鳥哥的 Linux 私房菜 -- Linux 的檔案權限與目錄配置
- ↑ [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
- ↑ How to list top 10 files | Unix Linux Forums | UNIX for Dummies Questions & Answers
- ↑ linux - Making ls output like dir /b /s - Super User
- ↑ How to create ls in windows command prompt? - Stack Overflow
- ↑ How to see hidden files in MS-DOS and the Command Prompt
- ↑ Bash Shell: Display All Hidden Dot Files In a Directory
- ↑ Single linux command to return to home directory
- ↑ How to verify if a file exists in a Windows .BAT file? - Stack Overflow
- ↑ Windows shell string operations (changing backslash to slash) - Stack Overflow
- ↑ Windows equivalent to UNIX pwd - Stack Overflow
- ↑ linux - Where is the $HOME environment variable set? - Super User
- ↑ weka - Where is my home directory located?
- ↑ 鳥哥的 Linux 私房菜 -- Linux 常用網路指令介紹
- ↑ bash: ifconfig: command not found 無法使用ifconfig指令? 先加上 su -l指令
- ↑ Red Hat / CentOS: Check / List Running Services
- ↑ -i means ignore caseHow to use the grep command, by The Linux Information Project (LINFO)
- ↑ Linux / UNIX Find Out What Program / Service is Listening on a Specific TCP Port
- ↑ Netstat
- ↑ Enabling and disabling services during start up in GNU/Linux | All about Linux
- ↑ Check which mpm (multi processing module) apache is running | Binary Tides
- ↑ Linux / Unix pv Command: Monitor Progress of Data Sent Via a Pipe
- ↑ ivarch.com: Pipe Viewer
- ↑ 鳥哥的 Linux 私房菜 -- NTP 時間伺服器
- ↑ DATE (command) - Wikipedia, the free encyclopedia
- ↑ How can I have `date` output the time from a different timezone? - Unix & Linux Stack Exchange
- ↑ batch file - How to measure execution time of command in windows command line? - Stack Overflow
- ↑ 鳥哥的 Linux 私房菜 -- 檔案與目錄管理 -- 關於執行檔路徑的變數: $PATH
- ↑ reboot - Linux Command - Unix Command
- ↑ Windows原來也有內建好用的關機軟體(Shutdown.exe) | ㊣軟體玩家
- ↑ How to shutdown Linux at a specific datetime from terminal? - Unix & Linux Stack Exchange
- ↑ The Will Will Web | 如何查詢 Linux 的種類與版本 ( Linux Standard Base )
- ↑ Find windows OS version from command line
- ↑ How do I Find Out Linux CPU Utilization? - nixCraft
- ↑ Show All Running Processes in Linux
- ↑ 鳥哥的 Linux 私房菜 -- 第十六章、程序管理與 SELinux 初探
- ↑ Kill Process in Linux or Terminate a Process in UNIX / Linux Systems, kill(1): terminate process - Linux man page
- ↑ 鳥哥的 Linux 私房菜 -- 第十六章、程序管理與 SELinux 初探
- ↑ logical operators in grep
- ↑ Unix/Linux grep command examples | grep command in Unix and Linux | grep examples | alvinalexander.com
- ↑ Microsoft Windows XP - Find
- ↑ Collect Memory Data from WMI (Win32)
- ↑ 【系統】使用 du 來看磁碟的使用空間 @ My Life :: 隨意窩 Xuite日誌
- ↑ Cloud Provider and Dedicated Server Hosting in Dallas, TX
- ↑ Cls
- ↑ Clear! (clear your terminal screen) | Linux.org
- ↑ What is Windows' equivalent of the "which" command in Unix? Is there an equivalent PowerShell command? - Super User
further reading
- ÆtherDev - Windows | Linux Equivalent Commands[Last visited: 2012-09-07]
- Windows Command Prompt LS Equivalent Dir [Last visited: 2014-05-27]
- Unix 與 MS-DOS 指令對照表
related pages: