Linux commands: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
Line 118: Line 118:


=== List directory or files /  list directory contents ===
=== List directory or files /  list directory contents ===
* ls ({{Linux}}) ex: {{kbd | key= ls -lh}} List detailed information of files <ref>[http://linux.vbird.org/linux_basic/0210filepermission.php 鳥哥的 Linux 私房菜 -- Linux 的檔案權限與目錄配置]</ref> <ref>[OPTION]
* ls ({{Linux}}) [http://linuxcommand.org/man_pages/ls1.html    ls - list directory contents]
** List detailed information of files. e.g. {{kbd | key= ls -lh}}<ref>[http://linux.vbird.org/linux_basic/0210filepermission.php 鳥哥的 Linux 私房菜 -- Linux 的檔案權限與目錄配置]</ref> <ref>[OPTION]
* -l use a long listing format
* -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 {{kbd | key=man ls}}</ref>  
* -h, --human-readable; with -l, print sizes in human readable format (e.g., 1K 234M 2G) Quoted from linux {{kbd | key=man ls}}</ref>  
** List detailed information of files and sort by modification time. {{kbd | key= ls -lht}}
** List top N files and sort by modification time. {{kbd | key= <nowiki>ls -lht | head -N</nowiki>}} e.g. {{kbd | key= <nowiki>ls -lht | head -10</nowiki>}} First line is the total file size of specified folder.
<ref>[http://www.unix.com/unix-for-dummies-questions-and-answers/44493-how-list-top-10-files.html How to list top 10 files | Unix Linux Forums | UNIX for Dummies Questions & Answers]</ref>
* ll  ({{Linux}}) {{kbd | key= ll}} = {{kbd | key= ls -l}}
* ll  ({{Linux}}) {{kbd | key= ll}} = {{kbd | key= ls -l}}
* Print the entire path of files and '''level-unlimited''' sub-directories in the current directory. On {{Win}} using {{kbd | key= dir/s/b}}, and on {{Linux}} using {{kbd | key= find /path/to/files/ -print}} <ref>[http://superuser.com/questions/159975/making-ls-output-like-dir-b-s linux - Making ls output like dir /b /s - Super User]</ref>.
* Print the entire path of files and '''level-unlimited''' sub-directories in the current directory. On {{Win}} using {{kbd | key= dir/s/b}}, and on {{Linux}} using {{kbd | key= find /path/to/files/ -print}} <ref>[http://superuser.com/questions/159975/making-ls-output-like-dir-b-s linux - Making ls output like dir /b /s - Super User]</ref>.
Line 154: Line 158:
REM -- the returned result will not correct!
REM -- the returned result will not correct!
</pre>
</pre>


=== Print the current directory / where am i ===
=== Print the current directory / where am i ===

Revision as of 22:19, 28 May 2017

(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 first lines of text file

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

display the last few lines of text file

  • tail [options] filename (Linux Os linux.png )
  • vi [options] filename (and press G) (Linux Os linux.png )
  • vim [options] filename (and press G) (Linux Os linux.png ); Open file and press G for gVim (Win Os windows.png )
  • Tail for Win32 GUI interface (Win Os windows.png ) Icon_exclaim.gif not support Unicode file for v.4.2.6

Display the content of text file

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

  • wc -l <filename> for Linux Os linux.png [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 Os windows.png ex: wc -l "$(cygpath -u 'c:\Program Files\file.txt')"[2]

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 Os linux.png )
  • vim: (1)vim [options] filename (2)press /keyword (Linux Os linux.png )
  • cat & grep: cat /path/to/file | grep keyword (Linux Os linux.png ) keyword is case sensitive

Search text in a compressed text file

  • zcat & grep: cat /path/to/compressed_text.gz | grep keyword (Linux Os linux.png )[3]

Search text in files[4]

Merger multiple plain text files

  • copy *.txt > bundle.txt or copy file1.txt file2.txt > bundle.txt for Win Os windows.png
  • cat *.txt > bundle.txt or cat file1.txt file2.txt > bundle.txt for Linux Os linux.png [5]

file operation

Find a file by filename

  • Good.gif locate command (Linux Os linux.png ) ex: locate filename to locate the filename quickly. [6]
  • find command (Linux Os linux.png ) ex: sudo find / -iname filename Find the case-insensitive file name Under the path / (root folder) [7]
  • dir command (Win Os windows.png ) ex: dir /s filename [8][9] 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 Os linux.png )[10]
  • /bin/cp -f to_be_copy.file to_be_overwrote.file (Linux Os linux.png )

Copy old directory to new directory

  • cp -a old_dir new_dir/ (Linux Os linux.png )[11]
  • copy /Y old_dir new_dir/ (Win Os windows.png )[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 Os linux.png )[13]
  • mv /path/to/file /path/to/new_folder_name (Linux Os linux.png )
  • rename old_folder_name new_folder_name (Win Os windows.png )[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 Os linux.png )[15]
  • del Name_of_directory (Win Os windows.png )
    • 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 Os linux.png )
    • rsync --delete-before -a -H -v --progress --stats /path/to/empty/folder/ /path/to/target_folder_will_be_deleted/ (Linux Os linux.png )[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

decompress

  • gunzip -c big.file.gz > big.file(Linux Os linux.png ) keep the gz file[20]
  • gzip -d big.file.gz(Linux Os linux.png ) NOT keep the gz file

ref

List directory or files / list directory contents

  • ls (Linux Os linux.png ) ls - list directory contents
    • List detailed information of files. e.g. ls -lh[21] [22]
    • 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.
[23]
  • ll (Linux Os linux.png ) ll = ls -l
  • Print the entire path of files and level-unlimited sub-directories in the current directory. On Win Os windows.png using dir/s/b, and on Linux Os linux.png using find /path/to/files/ -print [24].
  • Good.gif create ls command in Win Os windows.png 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 Os windows.png is dir /a, and on macOS icon_os_mac.png or Linux Os linux.png is ls -a[26][27].

Verify if a file or a directory exists

  • On Linux Os linux.png : ls /path/to/file or ls -d /path/to/directory/ e.g. ls -d ~/ to list your home directory[28].
  • On Win Os windows.png :
    • dir C:\path\to\file or dir C:\path\to\directory\
    • IF EXIST [29][30]
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 Os linux.png : pwd print name of working directory. More on pwd.
  • Win Os windows.png : echo %cd% current directory [31]

Change directory to my home directory

  • cd ~/ or cd $HOME (Linux Os linux.png ) will switch to my home directory ex: /Users/ACCOUNT[32]
  • cd %UserProfile% (Win Os windows.png ) will switch to my home directory ex: C:\Users\ACCOUNT more on MS_Windows_Explorer[33]

network

show ip

  • ifconfig (Linux Os linux.png )[34][35]
  • ipconfig/all (Win Os windows.png )

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 Os linux.png )
  • ping domain_or_ip -t (Win Os windows.png )

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

TRACERT (trace route)

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

apache operation

check apache servie is running or not

  • service --status-all | grep -i httpd (Linux Os linux.png [36][37])
  • netstat -npl | grep httpd for Linux Os linux.png [38]
  • netstat -an | find /i "listening" (Win Os windows.png ) 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 Os linux.png & Win Os windows.png ) ex: Linux Os linux.png /usr/local/httpd/bin/httpd -l or Win Os windows.png 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


system operation

show current time

  • date (Linux Os linux.png ) output the system date: Thu Oct 25 15:05:10 CST 2012 [44][45]
  • TZ=Asia/Taipei date (Linux Os linux.png ) output the time from the Taipei/CST timezone [46]
  • date/t (Win Os windows.png ) (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 Os windows.png [47])
output:
OS in Chinese (Windows 10): 2017/02/03 週五 15:35:31.61

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

reboot the system/server

  • reboot (Linux Os linux.png )[49]
  • shutdown -r (Win Os windows.png )[50]

Shutdown system at a specific date time.

OS version

  • lsb_release -a (Linux Os linux.png )[52]
  • ver (Win Os windows.png )[53]


Show the process list & kill the process

Show the process list & kill the high-resource-consumption process[54][55]

  1. display the process list
    • top "display Linux tasks" for Linux Os linux.png or
    • top -a or ps aux --sort -rss | more[56] "Sort by memory usage" for Linux Os linux.png
  2. keyin q to leave the process list
  3. find which process to be killed. And then keyin:
    • kill -101 PID to kill the process with PID number: 101[57]
    • kill -9 101 force to kill the process with PID number: 101[58]

Search matched text of command output

  • linux command | awk '/string/' (Linux Os linux.png ) 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 Os linux.png ) ex: keyin yum list installed | grep tar to search the installed package naming tar for CentOS.[60]
  • Windows command | find "string" (Win Os windows.png ) 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 Os windows.png :
    • 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 Os linux.png & macOS icon_os_mac.png :

Memory usage

  • Win Os windows.png :
    • 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: %
  • freebsd & Linux Os linux.png :
    • 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: %


hard disk usage

  • df command "disk space usage" for Linux Os linux.png df -h
  • du command "estimate file space usage" of specific folder for Linux Os linux.png 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

Clean the screen/console

  • Win Os windows.png : cls [65]
  • Linux Os linux.png & macOS icon_os_mac.png : clear [66]

help for command

view the documentation for this command

  • command --help or man command (Linux Os linux.png )
  • command /? (Win Os windows.png )

find the path of an executable

  • which command for Linux Os linux.png & macOS icon_os_mac.png ex: which wc will return the path '/usr/bin/wc'
  • where command for Win Os windows.png version 2003 or 8. ex: where nslookup will return the path 'C:\Windows\System32\nslookup.EXE'[67] Icon_exclaim.gif not all DOS command will return the information ex: where cd, where dir

emergency exit

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

references

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

further reading

related pages: