Linux commands: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
Line 141: Line 141:
=== Exporting data into MySql sql file ===
=== Exporting data into MySql sql file ===
* {{Gd}} export the compressed *.sql file (especially for BIG sql file). It will show a progress bar and estimated time to complete the mysqldump<ref>[http://dba.stackexchange.com/questions/17367/how-can-i-monitor-the-progress-of-an-import-of-a-large-sql-file mysql - How can I monitor the progress of an import of a large .sql file? - Database Administrators Stack Exchange]</ref><ref>[https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html MySQL :: MySQL 5.1 Reference Manual :: 4.5.4 mysqldump — A Database Backup Program]</ref>:  
* {{Gd}} export the compressed *.sql file (especially for BIG sql file). It will show a progress bar and estimated time to complete the mysqldump<ref>[http://dba.stackexchange.com/questions/17367/how-can-i-monitor-the-progress-of-an-import-of-a-large-sql-file mysql - How can I monitor the progress of an import of a large .sql file? - Database Administrators Stack Exchange]</ref><ref>[https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html MySQL :: MySQL 5.1 Reference Manual :: 4.5.4 mysqldump — A Database Backup Program]</ref>:  
*# (optional if the {{kbd | key =pv}} was not installed) {{kbd | key =yum install pv}} for RHEL / CentOS / SL / Fedora Linux<ref>[http://www.cyberciti.biz/open-source/command-line-hacks/pv-command-examples/ Linux / Unix pv Command: Monitor Progress of Data Sent Via a Pipe]</ref>; {{kbd | key =apt-get install pv}} for Debian / Ubuntu<ref>[http://www.ivarch.com/programs/pv.shtml ivarch.com: Pipe Viewer]</ref>; Install (1) [https://www.cygwin.com/ Cygwin], (2) pv package and (3) MySQL database clients apps package  for {{Win}}
*# (optional if the {{kbd | key =pv}} was not installed)  
*#* {{kbd | key =yum install pv}} for RHEL / CentOS / SL / Fedora Linux<ref>[http://www.cyberciti.biz/open-source/command-line-hacks/pv-command-examples/ Linux / Unix pv Command: Monitor Progress of Data Sent Via a Pipe]</ref>;  
*#* {{kbd | key =apt-get install pv}} for Debian / Ubuntu<ref>[http://www.ivarch.com/programs/pv.shtml ivarch.com: Pipe Viewer]</ref>;  
*#* Install (1) [https://www.cygwin.com/ Cygwin], (2) pv package and (3) MySQL database clients apps package  for {{Win}}
*#* Install (1) {{kbd | key =brew install pv}} to get the latest version of pv package<ref>[http://ashleyangell.com/2013/11/pipe-viewer-pv-in-mac-osx/ Pipe Viewer (pv) in Mac OSX]</ref> and (2) MySQL database clients from [https://www.apachefriends.org/zh_tw/download.html XAMPP]  for {{Mac}}. Path of mysql is: /Applications/xampp/xamppfiles/bin/mysql
*# (for InnoDB tables){{kbd | key =  <nowiki>mysqldump -h localhost -u username -p --force --single-transaction DATA_BASE_NAME | pv | gzip -c > database.sql.gz</nowiki>}} <ref>[http://journal.andrewloe.com/2009/05/12/pv-gzip-mysql/ pv + gzip + mysql — W. Andrew Loe III: Journal]</ref><ref>(if have permission to LOCK TABLES){{kbd | key =  <nowiki>mysqldump -h localhost -u username -p DATA_BASE_NAME | pv | gzip -c > database.sql.gz</nowiki>}} (if have no permission to LOCK TABLES){{kbd | key =  <nowiki>mysqldump -h localhost -u username -p --lock-tables=false DATA_BASE_NAME | pv | gzip -c > database.sql.gz</nowiki>}} via [http://stackoverflow.com/questions/104612/run-mysqldump-without-locking-tables mysql - Run MySQLDump without Locking Tables - Stack Overflow]</ref> and press {{kbd | key =  <nowiki>Enter</nowiki> }}
*# (for InnoDB tables){{kbd | key =  <nowiki>mysqldump -h localhost -u username -p --force --single-transaction DATA_BASE_NAME | pv | gzip -c > database.sql.gz</nowiki>}} <ref>[http://journal.andrewloe.com/2009/05/12/pv-gzip-mysql/ pv + gzip + mysql — W. Andrew Loe III: Journal]</ref><ref>(if have permission to LOCK TABLES){{kbd | key =  <nowiki>mysqldump -h localhost -u username -p DATA_BASE_NAME | pv | gzip -c > database.sql.gz</nowiki>}} (if have no permission to LOCK TABLES){{kbd | key =  <nowiki>mysqldump -h localhost -u username -p --lock-tables=false DATA_BASE_NAME | pv | gzip -c > database.sql.gz</nowiki>}} via [http://stackoverflow.com/questions/104612/run-mysqldump-without-locking-tables mysql - Run MySQLDump without Locking Tables - Stack Overflow]</ref> and press {{kbd | key =  <nowiki>Enter</nowiki> }}
*# enter {{kbd | key =  <nowiki>password</nowiki> }} and press {{kbd | key =  <nowiki>Enter</nowiki> }}
*# enter {{kbd | key =  <nowiki>password</nowiki> }} and press {{kbd | key =  <nowiki>Enter</nowiki> }}

Revision as of 22:53, 6 November 2014

(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 ) Type command --help or man command  ;
(Win Os windows.png ) Type command /? "Open Source tools which provide functionality similar to a Linux distribution on Windows" -- Cygwin

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 full text file

  • vi [options] filename (Linux Os linux.png )
  • cat filename (Linux Os linux.png )

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 )
  • (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 files[1]

file operation

find a file

  • find (Linux Os linux.png ) ex: find / -iname filename Find the case-insensitive file name Under the path / (root folder) [2]
  • dir (Win Os windows.png ) ex: dir /s filename [3][4] Icon_exclaim.gif I have no idea to specify the file path to find the file.

copy old directory to new directory

  • cp -a old_dir new_dir/ (Linux Os linux.png )[5]
  • copy /Y old_dir new_dir/ (Win Os windows.png )[6]
  • make new directory & copy all old files to new directory
    • mkdir new_dir
    • cp old_dir/* new_dir

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 )[7]
  • 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
    • rsync -avP --delete /path/to/source/ /path/to/target/ (Linux Os linux.png ) Good.gif quick
    • rsync --delete-before -a -H -v --progress --stats /path/to/empty/folder/ /path/to/target_folder_will_be_deleted/ (Linux Os linux.png )[8] 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 [9]

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 [10]
  • more on File transfer methods


file compression and decompression

compress

  • pv big.file | gzip > big.file.gz(Linux Os linux.png )[11] keep the original file
  • gzip -v big.file(Linux Os linux.png ) NOT keep the original file

decompress

  • gunzip -c big.file.gz > big.file(Linux Os linux.png ) keep the gz file[12]
  • 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 ) ex: ls -lh List detailed information of files [13] [14]
  • ll (Linux Os linux.png ) ll = ls -l
  • dir (Win Os windows.png ) ex: dir/s/b is equal to Linux Os linux.png find /path/to/files/ -print [15]
  • Good.gif create ls in Win Os windows.png command prompt: echo dir %1 > %systemroot%\system32\ls.bat Thanks, hmjd![16]


rename (move) files or directory

  • mv old_folder_name new_folder_name (Linux Os linux.png )[17]
  • mv /path/to/file /path/to/new_folder_name (Linux Os linux.png )
  • rename old_folder_name new_folder_name (Win Os windows.png )[18]


print the current directory / where am i

  • Linux Os linux.png : pwd (print working directory)
  • Win Os windows.png : echo %cd% (current directory) [19]

change directory to my home directory

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

network

show ip

  • ifconfig (Linux Os linux.png )[22][23]
  • 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)

apache operation

check apache servie is running or not

  • service --status-all | grep -i httpd (Linux Os linux.png [24][25])
  • netstat -npl | grep httpd for Linux Os linux.png [26]
  • 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[27]
  • more on connection test...

Where is apache installed?[28]

  • 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 [29]

mysql operation

Exporting data into MySql sql file

  • Good.gif export the compressed *.sql file (especially for BIG sql file). It will show a progress bar and estimated time to complete the mysqldump[30][31]:
    1. (optional if the pv was not installed)
      • yum install pv for RHEL / CentOS / SL / Fedora Linux[32];
      • apt-get install pv for Debian / Ubuntu[33];
      • Install (1) Cygwin, (2) pv package and (3) MySQL database clients apps package for Win Os windows.png
      • Install (1) brew install pv to get the latest version of pv package[34] and (2) MySQL database clients from XAMPP for macOS icon_os_mac.png . Path of mysql is: /Applications/xampp/xamppfiles/bin/mysql
    2. (for InnoDB tables)mysqldump -h localhost -u username -p --force --single-transaction DATA_BASE_NAME | pv | gzip -c > database.sql.gz [35][36] and press Enter
    3. enter password and press Enter


  • Bulk export multiple tables into the compressed *.sql files
mysqldump -h localhost -u username -pPASSWORD --force --single-transaction DB_NAME TABLE_1 | pv | gzip -c > table_1.sql.gz
mysqldump -h localhost -u username -pPASSWORD --force --single-transaction DB_NAME TABLE_2 | pv | gzip -c > table_2.sql.gz
   

note: the last line of above part is return symbol. The last command will not executed automatically without the return symbol.

  • export the *.sql file. It will show a progress bar and estimated time to complete the mysqldump [37]:
    1. (optional if the pv was not installed) yum install pv for RHEL / CentOS / SL / Fedora Linux
    2. (for InnoDB tables)mysqldump -h localhost -u username -p --force --single-transaction DATA_BASE_NAME | pv > database.sql and press Enter
    3. enter password and press Enter
  • export the *.sql file
    1. mysqldump -h localhost -u username -p DATA-BASE-NAME > /path/to/database.sql

Importing data from MySql sql file

Icon_exclaim.gif Notice: existing database will be overwritten

  • Good.gif Import the compressed *.sql file with gzip (especially for BIG sql file). It will show a progress bar and estimated time to complete the mysql command:
    1. (optional if the pv was not installed) yum install pv for RHEL / CentOS / SL / Fedora Linux
    2. pv database.sql.gz | gunzip | mysql -u username -p -h localhost --default_character_set utf8 --force DATA_BASE_NAME [38] and press Enter
    3. enter password and press Enter
  • Import *.sql file:
    1. (optional if the .sql file was compressed) unzip data.zip or gzip -d data.gz if the file was compressed by gzip
    2. mysql -u username -p -h localhost --default_character_set utf8 --force DATA_BASE_NAME < data.sql [39] and press Enter
    3. enter password and press Enter
  • Import the *.sql file (especially for BIG sql file). It will show a progress bar and estimated time to complete the mysql command[40]:
    1. (optional if the pv was not installed) yum install pv for RHEL / CentOS / SL / Fedora Linux
    2. pv data.sql | mysql -u username -p -h localhost --default_character_set utf8 --force DATA_BASE_NAME [41] and press Enter
    3. enter password and press Enter
  • Import ZIP file to MySql directly:
    1. (optional if the 7Zip was not installed) yum install p7zip
    2. 7za x -so data.zip | mysql -u username -p -h localhost --default_character_set utf8 --force DATA_BASE_NAME [42][43] and press Enter
    3. enter password and press Enter

Show the MySQL process list & kill the process

Show the MySQL process list & kill the process (especial for SLOW query command)[44]

  1. mysql -h HOST -u ACCOUNT -p And keyin the PASSWORD for your MySQL ACCOUNT to connect the MySQL server. The first character will be changed to mysql> from $ or #
  2. mysql> SHOW FULL PROCESSLIST\G to show the process list
  3. mysql> kill 101; to kill the process with Id number: 101
  4. mysql> exit; to leave the MySQL command.

system operation

show current time

  • date (Linux Os linux.png ) output: Thu Oct 25 15:05:10 CST 2012 [45][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): 2014/07/01 週二

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

reboot the system/server

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

OS version

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


Show the process list & kill the process

Show the process list & kill the high-resource-consumption process[52][53]

  1. top "display Linux tasks" for Linux Os linux.png or top -a "Sort by memory usage" for Linux Os linux.png
  2. keyin q to leave the process list
  3. find which process to be killed. Keyin: kill -101 PID to kill the process with PID number: 101[54]

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.[55]
    • 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.[56]
  • Windows command | find "string" (Win Os windows.png ) ex: netstat -a | find "3306" (note: enclose string in double quotation marks)[57]


Scan the disk

help for command

view the documentation for this command

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

emergency exit

  • ctrl+c or ctrl+break (Linux Os linux.png & Win Os windows.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. 鳥哥的 Linux 私房菜 -- 學習 bash shell
  2. 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'
  3. How to find a file in MS-DOS.
  4. /S 顯示指定目錄及所有子目錄中的檔案。 (引用自 dir /? 命令說明)
  5. 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
  6. /Y 不顯示覆寫現存目的檔案的確認提示。 (引用自 copy /? 命令說明)
  7. [OPTION]
    • -r remove directories and their contents recursively;
    • -f ignore nonexistent files, never prompt
    (above content cited from linux documentation: rm --help)
  8. Linux下使用rsync最快速删除海量文件的方法_果冻的剥壳_新浪博客
  9. How to recursively remove .DS_Store files on Mac OS X | Tangential Musings
  10. using the www account su - www -c "svn up http://remote.svn.server/path/ /local/path/ --username=your_account --password=xxx"
  11. A Unix Utility You Should Know About: Pipe Viewer - good coders code, great reuse
  12. linux - How do you gunzip a file and keep the .gz file? - Super User
  13. 鳥哥的 Linux 私房菜 -- Linux 的檔案權限與目錄配置
  14. [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
  15. linux - Making ls output like dir /b /s - Super User
  16. How to create ls in windows command prompt? - Stack Overflow
  17. Linux Rename Files, Folders or Directories
  18. MS-DOS ren and rename command help
  19. Windows equivilent to UNIX pwd - Stack Overflow
  20. linux - Where is the $HOME environment variable set? - Super User
  21. weka - Where is my home directory located?
  22. 鳥哥的 Linux 私房菜 -- Linux 常用網路指令介紹
  23. bash: ifconfig: command not found 無法使用ifconfig指令? 先加上 su -l指令
  24. Red Hat / CentOS: Check / List Running Services
  25. -i means ignore caseHow to use the grep command, by The Linux Information Project (LINFO)
  26. Linux / UNIX Find Out What Program / Service is Listening on a Specific TCP Port
  27. Netstat
  28. Enabling and disabling services during start up in GNU/Linux | All about Linux
  29. Check which mpm (multi processing module) apache is running | Binary Tides
  30. mysql - How can I monitor the progress of an import of a large .sql file? - Database Administrators Stack Exchange
  31. MySQL :: MySQL 5.1 Reference Manual :: 4.5.4 mysqldump — A Database Backup Program
  32. Linux / Unix pv Command: Monitor Progress of Data Sent Via a Pipe
  33. ivarch.com: Pipe Viewer
  34. Pipe Viewer (pv) in Mac OSX
  35. pv + gzip + mysql — W. Andrew Loe III: Journal
  36. (if have permission to LOCK TABLES)mysqldump -h localhost -u username -p DATA_BASE_NAME | pv | gzip -c > database.sql.gz (if have no permission to LOCK TABLES)mysqldump -h localhost -u username -p --lock-tables=false DATA_BASE_NAME | pv | gzip -c > database.sql.gz via mysql - Run MySQLDump without Locking Tables - Stack Overflow
  37. MySQL Import/Export Progress Bar - Kevin Warrington
  38. pv + gzip + mysql — W. Andrew Loe III: Journal
  39. Import MySQL Dumpfile, SQL Datafile Into My Database
  40. mysql - How can I monitor the progress of an import of a large .sql file? - Database Administrators Stack Exchange
  41. Import MySQL Dumpfile, SQL Datafile Into My Database
  42. database - Importing zipped files in Mysql using command line - Stack Overflow
  43. Install 7Zip on CentOS 5.5
  44. MySQL :: MySQL 5.1 Reference Manual :: 13.7.5.31 SHOW PROCESSLIST Syntax
  45. 鳥哥的 Linux 私房菜 -- NTP 時間伺服器
  46. DATE (command) - Wikipedia, the free encyclopedia
  47. 鳥哥的 Linux 私房菜 -- 檔案與目錄管理 -- 關於執行檔路徑的變數: $PATH
  48. reboot - Linux Command - Unix Command
  49. Windows原來也有內建好用的關機軟體(Shutdown.exe) | ㊣軟體玩家
  50. The Will Will Web | 如何查詢 Linux 的種類與版本 ( Linux Standard Base )
  51. Find windows OS version from command line
  52. How do I Find Out Linux CPU Utilization? - nixCraft
  53. Show All Running Processes in Linux
  54. Kill Process in Linux or Terminate a Process in UNIX / Linux Systems
  55. logical operators in grep
  56. Unix/Linux grep command examples | grep command in Unix and Linux | grep examples | alvinalexander.com
  57. Microsoft Windows XP - Find
  58. Cloud Provider and Dedicated Server Hosting in Dallas, TX

further reading

related pages: