天天看點

Linux下的基本操作指令集錦

對于Linux下的開發人員來說,除了編寫代碼之外,也要熟練掌握Linux作業系統的一些基本操作。很多開發人員可能會有這樣的經曆:有很多非常簡單的操作指令長期不用就忘掉了,等需要用到的時候又要到處去找,甚至去問周圍的同僚。在尴尬之餘,我們也怪自己沒有将那些簡單而有用的操作指令記錄下來。

本文彙總了我在使用Linux的過程中所使用過的一些基本操作,可供相關的開發人員參考。本文中的操作指令雖然比較簡單,但很實用,相信對大家會有所幫助的。

這些基本的操作指令如下:

1.Linux下,如何從目前普通使用者切換到root使用者?如何從root使用者切換到普通使用者?如何從目前普通使用者切換到其他普通使用者?

1)從目前普通使用者切換到root使用者可使用su指令,并需要輸入使用者名(root)和密碼。操作示例如下:

zhou:~> su - root Password: root:~

其中,輸入的密碼是不會顯示出來的。

2)從root使用者切換到普通使用者也使用su指令,隻需要輸入使用者名。操作示例如下:

root:~ su - zhou zhou:~>

3)從目前普通使用者切換到其他普通使用者也使用su指令,并需要輸入使用者名和密碼。操作示例如下:

zhou~> su - zhao zhao:~>

2.如何在Linux下的大量檔案中搜尋特定的文本内容?

可使用grep指令來實作特定文本内容的搜尋,具體使用示例如下:

(1)在某個檔案中搜尋特定的文本内容,例如在Test.txt中搜尋“Hello”,可使用如下兩個指令:

1)grep “Hello” Test.txt 2)cat Test.txt | grep “Hello”

(2)在某一系列檔案中搜尋特定的文本内容,例如在Test.txt、Test1.txt、Test2.txt…中搜尋“Hello”,可使用如下兩個指令:

1)grep “Hello” Test* 2)cat Test* | grep “Hello”

其中,星号(*)為通配符。

(3)在某一個或一系列檔案中搜尋特定的文本内容出現的次數,例如在Test.txt、Test1.txt、Test2.txt…中搜尋“Hello”的出現次數,可使用如下兩個指令:

1)grep “Hello” Test* | wc -l 2)cat Test* | grep “Hello” | wc -l

3.如何快速統計在Linux下的同類檔案(相同字首或字尾)的個數?

可使用“ls -ltr 檔案名 | wc -l”指令,操作示例如下:

zhou:~> ls -ltr Test* | wc -l 11

4.如何在Linux下對檔案進行壓縮和解壓縮?

可使用tar指令對檔案進行壓縮和解壓縮,具體操作示例如下:

1)如果想把test.txt檔案壓縮為test.tar,則可執行如下指令:

tar -zcvf test.tar test.txt

2)如果想把test.tar解壓縮,則可執行如下指令:

tar -zxvf test.tar

5.如何在Linux下使用指令登入到MySQL、Oracle和Sybase?

(1)登入到MySQL使用如下指令:

mysql -u使用者名 -p’密碼’ -h網絡IP位址 -P端口

如:

mysql -uroot -p’root’ -h10.10.10.10 -P3306

(2)登入到Oracle使用如下指令:

sqlplus 使用者名/’密碼’@資料庫服務名

sqlplus username/’userpwd’@db10_10_10_10

注意:登入Oracle之前需要到Oracle目錄下的tnsnames.ora檔案裡面配置資料庫服務名,如下所示:

db10_10_10_10 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.10)(PORT = 1521)) ) (CONNECT_DATA = (SERVER=DEDICATED) (SERVICE_NAME = db)

(3)登入到Sybase使用如下指令:

isql -U使用者名 -P密碼 -S資料庫服務名

isql -Uusername -Puserpwd -Sdb10_10_10_10

6.如何在Linux下使用指令啟動Oracle?

首先登入到Oracle使用者下,然後按照如下步驟操作:

(1)打開Oracle監聽

lsnrctl start

(2)進入sqlplus

sqlplus /nolog

(3)使用sysdba角色登入sqlplus

SQL> conn /as sysdba

(4)啟動資料庫

SQL> startup

經過上面的四個步驟,Oracle資料庫就可以正常啟動并使用了。

啟動之後,可以用這個指令檢視啟動是否正常:lsnrctl status。

如果要關閉資料庫,可在第(4)步執行“shutdown”指令,如果要強制關閉,則使用“shutdown abort”指令。

在Oracle使用者下直接運作SQL腳本,可使用如下指令:

sqlplus username/’userpwd’@db10_10_10_10 @test.sql

7.如何在Linux下使用指令啟動Sybase?

首先登入到Sybase使用者下,然後按照如下步驟操作:

(1)轉到install目錄下

可使用cd指令,如本人使用的是15.0版本的Sybase,則需要執行如下指令:

cd /home/sybase/ASE-15_0/install

(2)使用“startserver -f RUN_SYBASE”指令啟動Sybase

注意,“RUN_SYBASE”是一個shell腳本檔案,用于啟動Sybase,不同的Sybase安裝版本中的檔案名會有所差別。

在Sybase使用者下直接運作SQL腳本,可使用如下指令:

isql -Uusername -Puserpwd -Sdb10_10_10_10 -itest.sql

8.如何在Linux下檢視目前系統的時間?

直接使用“date”指令即可,如下所示:

~date Thu May 5 11:10:41 CST 2016

9.如何在Linux下添加和删除使用者?

首先切換到root使用者下,然後按照如下示例執行添加使用者的操作:

~useradd -d /home/zhou -m zhou ~passwd zhou Changing password for zhou. ~New password: ~Re-enter new password: ~Password changed

删除使用者時,隻需在root使用者下執行如下操作即可:

userdel -r zhou

10.當Linux下有程式崩潰的時候,如何修改作業系統配置以産生core檔案?

當Linux下程式異常退出時,核心會在目前工作目錄下生成一個core檔案(是一個記憶體映像,同時加上調試資訊)。

通過如下兩個步驟可以讓系統将core檔案産生出來:

(1)在目前使用者下執行“ulimit -a”指令以檢視程式異常崩潰時是否會産生core檔案。示例如下:

~ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 46741 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) 5095324 open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 46741 virtual memory (kbytes, -v) 4795600 file locks (-x) unlimited

(2)“core file size”為0表示不會産生core檔案,可用“ulimit -c filesize”指令設定core檔案大小。示例如下:

~ ulimit -c 1000000 core file size (blocks, -c) 1000000

11.當Linux下使用VI編輯檔案時,如何快速跳轉到檔案的第一行和最後一行?

(1)要跳轉到檔案的第一行,可以使用如下指令:

1)gg

2):0 (注意:冒号是不可少的)

3):1 (注意:冒号是不可少的)

(2)要跳轉到檔案的最後一行,可以使用如下指令:

1):$ (注意:冒号是不可少的)

2)Shift + G (即Shift鍵和G鍵的組合)

12.如何檢視Linux下的檔案中的重複記錄?

(1)如果是單個檔案,可使用如下指令:

cat 檔案名 | uniq -d

cat test.txt | uniq -d

(2)如果是多個檔案(相同字首或字尾),可使用如下指令:

cat (檔案字首)或(檔案字尾) | uniq -d

cat test* | uniq -d

13.如何統計Linux下的檔案中的記錄行數和位元組數?

(1)對于單個檔案中的記錄行數和位元組數的統計,可使用如下指令:

1)統計記錄行數

wc -l 檔案名

~ wc -l TestFile.txt 5 TestFile.txt

2)統計位元組數

wc -c 檔案名

~ wc -c TestFile.txt 48 TestFile.txt

(2)對于多個檔案中的記錄行數和位元組數的統計,可使用如下指令:

wc -l (檔案字首)或(檔案字尾)

~ wc -l TestFile* 2 TestFile1.txt 7 total

wc -c (檔案字首)或(檔案字尾)

~ wc -c TestFile* 18 TestFile1.txt 66 total

14.如何檢視Linux下的某個目錄下的檔案總數?

可使用如下指令:

ls -1 | wc -l

~ ls -1 | wc -l 41

15.如何在Linux下使用FTP功能?

第一步,啟用系統的FTP功能

在root使用者下執行如下指令:

service vsftpd start

第二步,執行ftp指令,連接配接到對端IP

~ ftp 10.10.10.10 Connected to 10.10.10.10. 220 (vsFTPd 2.0.7) Name (10.10.10.10:zhou):

第三步,輸入使用者名和密碼

~ Name (10.10.10.10:zhou): zhou 331 Please specify the password. ~ Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>

通過以上三步,就已經通過FTP的方式連接配接到對端機器上了。

如果還要擷取某個檔案,可繼續執行第四步操作。

第四步,擷取某個檔案

ftp> get test.txt local: test.txt remote: test.txt 229 Entering Extended Passive Mode (|||30090|) 150 Opening BINARY mode data connection for 166servicemain.sh (698 bytes). 100% |*******************************************************************************| 698 2.28 MB/s 00:00 ETA 226 File send OK. 698 bytes received in 00:00 (64.39 KB/s)

如果要停止FTP,則繼續執行第五步操作。

第五步,停止FTP

ftp> bye 221 Goodbye.

16.如何在Linux下使用GCC将C代碼檔案編譯為可執行的檔案?

假設現有HelloWorld.c檔案,可以使用如下指令(指令中的gcc均可替換為cc)将其編譯為可執行的檔案:

(1)生成a.out可執行檔案

第一步,執行:gcc -c HelloWorld.c

第二步,執行:gcc HelloWorld.o

即可生成a.out檔案,然後執行./a.out指令,即可看到程式運作結果。

(2)生成HelloWorld可執行檔案

第二步,執行:gcc -o HelloWorld HelloWorld.o

即可生成HelloWorld檔案,然後執行./HelloWorld或HelloWorld指令,即可看到程式運作結果。

(3)生成HelloWorld可執行檔案

直接執行:gcc -o HelloWorld HelloWorld.c

(4)生成帶調試資訊的HelloWorld可執行檔案

直接執行:gcc -g -o HelloWorld HelloWorld.c 或 gcc -g HelloWorld.c -o HelloWorld

17.如何檢視Linux下某程序的詳細資訊?

直接使用“ps -ef | grep 程序(或程式)名”即可。

例如,要想檢視正在運作的“HelloWorld”程序的詳細資訊,可使用如下指令:

ps -ef | grep HelloWorld

指令執行結果如下:

~ ps -ef | grep HelloWorld 1009 7437 1 0 09:04 ? 00:00:21 HelloWorld

其中,第二個參數(即7437)為PID。

18.如何檢視Linux下某個檔案的類型及編碼格式等?

直接使用“file 檔案名”指令即可,使用示例如下:

~ file HelloWorld.c HelloWorld.c: ASCII C program text, with CRLF line terminators ~ file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

可以看到,HelloWorld.c檔案是ASCII格式的C檔案,而a.out是可執行檔案。

19.如何檢視Linux下某個可執行檔案所依賴的庫檔案?

直接使用“ldd 檔案名”指令即可,使用示例如下:

~ ldd a.out linux-gate.so.1 => (0xffffe000) libc.so.6 => /lib/tls/libc.so.6 (0x40032000) /lib/ld-linux.so.2 (0x40000000)

可以看到,a.out依賴于3個庫檔案。

20.如何檢視Linux下磁盤空間的占用情況?

直接使用“df -h”指令即可,示例如下:

~ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda3 77G 19G 54G 26% / udev 3.8G 120K 3.8G 1% /dev tmpfs 3.8G 72K 3.8G 1% /dev/shm /dev/vda2 190M 36M 145M 20% /boot

21.如何将Linux下的資料庫腳本檔案從sh格式變為SQL格式?

假設要将example.sh檔案變為example.sql,則執行步驟如下:

(1)上傳sh檔案

使用FTP工具(如filezilla)将example.sh檔案上傳到Linux的對應目錄下。

(2)使用dos2unix指令修改檔案格式

由于example.sh檔案是在本地的Windows作業系統下編寫的,是以要先轉換為Linux下的格式才能使用。

dos2unix指令用來将DOS格式的文本檔案轉換成UNIX格式的,其使用的格式為:dos2unix file,如果一次轉換多個檔案,把這些檔案名直接跟在dos2unix之後(dos2unix file1 file2 file3 …)。

在這裡,指令執行如下:

~ dos2unix example.sh dos2unix: converting file example.sh to UNIX format …

(3)使用chmod指令修改檔案的權限

在執行了dos2unix指令之後,還是不能立馬生成檔案,還需要修改檔案的權限。

chmod指令是Linux系統中最常用到的指令之一,用于改變檔案或目錄的通路權限。

在這裡,指令為:chmod 777 example.sh

(4)生成SQL檔案

直接運作帶字尾的sh檔案名,即可生成SQL檔案。指令如下:

~ example.sh example.sql no exits and is creating it

表示example.sql檔案之前不存在,這是第一次生成。

注意:如果example.sh檔案本來就是在Linux下編輯的,那麼就可以直接執行第四步操作(生成SQL檔案)。

22.如何在Linux下跟蹤程式所生成的日志?

程式所生成的日志檔案一般以.log作為字尾,在産生日志的過程中,可以用“tail -f 日志檔案名”指令來跟蹤日志。示例如下:

~ tail -f test.log Hello,world

如果要檢視具體的日志檔案内容,可以使用“vi 日志檔案名”指令。示例如下:

~ vi test.log

可以直接使用鍵盤上的上下左右按鈕來檢視日志内容,如果要搜尋文本内容,可以使用“/欲查找内容”指令(如:/world)。

23.如何在Linux下檢視某個系統程式是否存在?

直接使用“whereis 程式名”指令即可,示例如下:

~ whereis telnet telnet: /usr/bin/telnet /usr/share/man/man1/telnet.1.gz

24.如何将Linux下的makefile檔案所編譯的程式從32位移植為64位?

在将編譯程式所需要的庫都替換為64位的庫之後,隻需要直接修改makefile檔案即可。

具體要修改makefile檔案中的内容為:

(1)在“CF_MACRO”項值的後面添加“-D_64_BIT_ -D_REENTRANT -D_PSTAT64”。

(2)在“CFLAGS”項值的最前面添加“-fPIC”。

(3)在最後一個gcc緊接着的後面添加“-fPIC”。

25.如何使用指令對Linux下的檔案和目錄進行備份?

直接使用cp指令即可,具體如下:

(1)檔案的備份

1)直接在目前目錄下備份檔案,使用指令“cp 原檔案名 備份檔案名”。示例如下:

~ ll -rw——- 1 zhou users 94 2016-05-09 09:43 HelloWorld.c ~ cp HelloWorld.c HelloWorld1.c -rw——- 1 zhou users 94 2016-05-12 15:18 HelloWorld1.c

2)将檔案備份到其他目錄中,使用指令“cp 原檔案名 備份目錄/備份檔案名”。示例如下:

~ cp HelloWorld.c /home/zhou/zhouzx/HelloWorld1.c

(2)目錄的備份

1)直接将目錄備份到目前位置,使用指令“cp -rf 原目錄名 備份目錄名”。示例如下:

~ cp -rf HelloWorld HelloWorld_bak

2)将目錄備份到其他地方,使用指令“cp -rf 原目錄名 備份目錄/備份目錄名”。示例如下:

~ cp -rf HelloWorld /home/zhou/zhouzx/HelloWorld_bak

26.如何在Linux下殺死某個程序?

首先要查找到要殺死的程序的PID,之後執行“kill -9 PID”指令即可。

例如,我們要殺死名為“HelloWorld”的程序,則執行示例如下:

zhou 24046 1 2 08:43 ? 00:00:00 HelloWorld ~ kill -9 24046 ~ ps -ef | grep impservice ~

27.如何修改Linux下某個檔案所屬使用者和群組?

直接在root使用者下執行“chown 所屬使用者:群組 檔案名”指令即可,示例如下:

~ll -rw-r–r– 1 root root 4 May 16 17:14 TestFile.txt ~chown zhou:zhao TestFile.txt -rw-r–r– 1 zhou zhao 4 May 16 17:14 TestFile.txt

28.如何删除Linux下的.swap檔案?

先檢視.swap檔案的完整檔案名,再将其删除。執行示例如下:

~ ll -a drwx—— 2 zhou users 192 2016-05-19 17:09 . drwx—— 4 zhou users 96 2016-05-05 17:39 .. -rw-r–r– 1 zhou users 491010 2016-05-19 17:09 Test.txt -rwxrwxrwx 1 zhou users 6774 2016-05-19 17:09 .Test.txt.swap ~ rm .Test.txt.swap

29.如何檢視Linux作業系統的位數?

有如下兩個指令可以檢視Linux作業系統的位數:

1) uname -a

2) lsb_release -d

1)執行第一個指令之後,結果如下:

~ uname -a Linux suse 3.0.76-0.11-default #1 SMP Fri Jun 14 08:21:43 UTC 2013 (ccab990) x86_64 x86_64 x86_64 GNU/Linux

可以看出,作業系統是64位的(x86_64 x86_64 x86_64 GNU/Linux)。

2)執行第二個指令之後,結果如下:

~ lsb_release -d Description: SUSE Linux Enterprise Server 11 (x86_64)

可以看出,作業系統是64位的(x86_64)。不僅如此,還可以看出使用的作業系統是SUSE Linux的第11版。

30.如何修改Linux的系統時間?

登入或切換到root使用者下,然後執行如下指令:

date -s “YYYY/MM/DD HH:MI:SS”

指令示例:

date -s “2016/05/04 13:49:07”

31.如何在Linux下使用指令啟動MySQL?

首先登入到mysql使用者下,然後執行如下指令:

xpecdmoni

如果要停止MySQL的運作,可執行如下指令:

xsuperstop

在MySQL使用者下直接運作SQL腳本,可使用如下指令:

mysql -uroot -p’root’ -h10.10.10.10 -P3306 -Ddb_name