天天看點

LINUX常見指令集錦

linux下程式設計中,在資料庫初始化後執行該指令辨別把該資料庫設定為預設字型latin1;

mysql_query(&g_mysqlLog,"SET NAMES 'latin1';");

#define _FILE_OFFSET_BITS 64  //linux下定義檔案大小,預設是2G,防止檔案過大導緻無法傳輸,無須放在頭檔案裡,需放在調用函數擷取檔案大小的檔案中。

****************************| vi command |*********************************

定位:

 文檔頭: gg

 文檔尾: G

 行  首: ^

 行  尾: $

 n   行: n+G

 向後跳單詞: w

 向前跳單詞: b

 向上翻頁: b

 向下翻頁: f

塊操作:

 删除行: dd

 删除字母: x

 删除單詞: dw

 删除到行尾: d$

 删除到行首: d^

 删除到檔案頭: dgg

 删除到檔案尾: dG

 複制一行: yy

 向下複制N行: yny

 粘貼:  p

 撤銷操作: u

查找,替換:

 替換單個字母: r

 查找單詞: /單詞

 查找下一個: n

 查找上一個: N

 全部替換: %s/單詞/新單詞

常用指令:

 存盤:  w

 退出:  q

 存盤退出: wq

 強制退出: q!

 指定檔案名: file 檔案名

 進入幫助: h

查檢程序是否已經運作:

ps -e |grep net-ward |wc -l

檢視DNS

cat /etc/resolv.conf

加入自動運作的程式腳本檔案

cat /etc/rc.d/rc.local

檔案交換系統環境重裝後不能連接配接外網ssh 10.0.1.11

到外網執行指令:echo "ABA" > /dev/ttyS1可以通了

第一,配置和修改網卡IP

第二,停止和啟動網閘所有服務   停止網閘指令:iptables -t PROUTING --dport ! 443 161 --j DROP

/srv/network-script/

/etc/init.d/network restart

/etc/rc.d/init.d/network restart 網閘重新開機網絡

DNS目錄:

cat /etc/resolv.conf

tcpdump網閘抓包指令

tcpdump -i eth0 -enn host IP位址

tcpdump -i lo -enn port 56000 -s 0 -w tt.cap抓包寫到指定檔案

資料庫:

mysql下:

 /etc/rc.d/init.d/mysql start開啟資料庫

 show databases;顯示所有資料庫

 use netstat_log;使用那個資料庫

 show tables;顯示資料庫下的所有表

 repair table netward;修複表

 exit退出資料庫

//linux與windows共享目錄

mount -t cifs -o username=administrator,password=qinbaics123. //10.0.0.72/Project /mnt/smb

username:登入使用者名

password:登入windows密碼

後面緊跟windows的本機IP下的目錄 最後是挂載目錄

解除安裝目錄時指令:umonut /mnt/smb

ip route ls table main_t檢視路由表中路由規則

dd if=/dev/sdb of=/dev/sdx 拷貝硬碟指令

tar 打包指令

tar -cjvf *.tar.gz 檔案或者目錄名

tar -xvf Filename.tar解包

tar -cvf Filename.tar DirName 打包

tar -zxvf Filename.tar.gz解包

tar -zcvf Filename.tar.gz DirName打包

tar -jxvf Filename.tar.bz2解包

tar -jcvf Filename.tar.bz2 DirName打包

tar -jxvf Filename.tar.bz解包

添加網卡位址

ip address add 94.4.19.18/24 brd + dev eth0

ip address del 94.4.19.18/24 dev eth0

ip route add default via 94.4.19.254 dev eth*

ip route delete default via 94.4.19.254 dev eth* 删除路由

****************************| Linux command |*********************************

常用指令:

 locale   \\檢視目前系統語言編碼 加[-a]可檢視語言編碼庫 

 passwd   \\修改密碼

 useradd   \\建立使用者

 passwd 使用者名  \\修改使用者密碼

 who am i  \\檢視目前使用者

 ls 或 ls -l  \\檢視目前目錄檔案資訊

 touch 檔案名  \\建立檔案或更新檔案資訊

 touch *   \\更新目前目錄下所有檔案資訊

 uname -r  \\檢視Linux版本

 du * -sh  \\檢視目前目錄大小

 du -sh   \\檢視目前目錄下所有檔案包括所有檔案夾下的檔案大小

 df   \\檢視目前分區

 df -h   \\檢視目前已挂接的磁盤

 mkfs(+Tab)   \\檢視格式化形式

 pwd   \\檢視目前目錄

 ls ~   \\檢視主目錄的資訊

 set   \\檢視所有的環境變量

 env   \\檢視可導出的環境變量

 echo ${變量名}  \\檢視變量,{}可以省略

 變量名=value  \\定義一個變量

 export 變量名=value \\定義一個可導出的環境變量

 unset 變量名  \\取消設定的變量

 hash -r   \\重新整理緩存

 lsof -i                 \\檢視哪個程式使用了哪個端口

 chmod u/g/o/a 檔案名 \\修改使用者權限,u:使用者 g:使用者組 o:其他使用者 a:所有使用者

 chown   \\修改檔案歸屬使用者

 chgrp   \\修改檔案歸屬使用者組

 cat   \\接收輸入,并标準輸出

 more   \\接收輸入,并标準分屏輸出

 wc   \\檢視檔案有多少行

 grep 關鍵字 檔案名 -n \\查找檔案的内容

 find 目錄 -name '*.c' -o -name '*.h' | more \\查找目錄下 所有.c .h 的檔案

 find 目錄 -name '*.[ch]'   \\作用同上

 locate 檔案名  \\全文查找 (根據索引查找)

 updatedb  \\重新整理索引資料庫

 ps 或 ps aux  \\檢視程序

 top   \\詳細資訊檢視程序,d或s指令可以修改重新整理時間

 kill 程序id  \\殺程序

 hexdump -C 檔案名 -n 512 \\以16進制檢視檔案,-n 512 表示檢視前512個位元組

 unixdos 檔案名   \\将unix的檔案轉為windows下檔案

 dos2unix 檔案名   \\将windows檔案轉為unix下的檔案

 ifconfig   \\檢視ip資訊

 ifconfig eth0 IP  \\修改ip

 ifcfg-eth0   \\修改ip配置檔案

        free -m                         \\檢視記憶體

        ll -h /proc/kcore               \\檢視記憶體實際總量

 #!/bin/sh   \\正規腳本檔案格式(檔案名為*.sh)

 mkdir -p 目錄                   \\如果目錄不存在就建立

tar:

 tar cvf aaa.ta aaa  \\把檔案aaa打包為aaa.ta,f表示詳細資訊

 tar xvf aaa.ta   \\解包

 tar cvzf aaa.tgz aaa  \\把檔案aaa打包并壓縮為aaa.tgz

 tar xvzf aaa.tgz  \\解壓包

 tar cfvj aaa.tar.bz2 aaa \\把檔案aaa打包并壓縮為aaa.tar.bz2

 tar xfvj aaa.tar.bz2  \\解壓.tar.bz2

關機:

 shutdown -h now   \\立即關機

 shutdown -h 12:00  \\12:00 關機

 shutdown -r   \\重新開機

 reboot    \\重新開機

rpm:

 rpm -ivh 檔案名   \\安裝檔案

 rpm -e 檔案名   \\解除安裝檔案

 rpm -qa    \\檢視已安裝檔案

磁盤挂接:

        df -h           \\檢視目前已挂接的磁盤

 mount /dev/sdb /mnt  \\挂接CD光牒到mnt目錄下

 mount /dev/sdb1 /mnt  \\挂接U盤到mnt目錄下

 umount 目錄   \\取消挂接

smb:

 1)setup->system service ->smb \\空格鍵選擇,開機自動啟動smb服務

 2)cat/etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd \\建立配置檔案

 3)smbpasswd   \\設定密碼

 4)service smb restart  \\重新整理服務

核心: 

 insmod 核心名  \\安裝核心

 rmmod 核心名  \\解除安裝核心 

 lsmod   \\檢視已有核心檔案,/sys/moudle 目錄下都是已經安裝的核心

 modinfo 核心檔案檔案名 \\檢視編譯好的核心檔案摘要資訊,

 核心檔案目錄下的refcnt \\記錄的是核心檔案被引用的次數,當數值大于0時不可别解除安裝

設定網關:   ip route add default via 94.4.19.254 dev eth0

檢視系統運作日志:tail -f /var/log/messages

附錄:

        修改ip:   ifconfig eth0 xxx.xxx.xxx.xx

        儲存下次重起有效需修改配置檔案: ifcfg-eth0

        也可能是 /srv/network-devices/ifconfig.eth0/ipv4

 修改vimrc檔案,修改或插入: set tabstop=4  \\使得Tab的空格鍵數為4

 修改/etc/inittab檔案:  id:3:initdefault \\修改啟動模式,3:字元界面 5:圖形界面

 修改/etc/profile                PATH=$PATH:.            \\修改PATH

 修改/etc/profile 和bashrc ps1='\w\$'  \\設定指令行顯示方式

     /d :代表日期,格式為weekday month date,例如:"Mon Aug 1"

         /H :完整的主機名稱。例如:我的機器名稱為:fc4.linux,則這個名稱就是fc4.linux

     /h :僅取主機的第一個名字,如上例,則為fc4,.linux則被省略

     /t :顯示時間為24小時格式,如:HH:MM:SS

     /T :顯示時間為12小時格式

     /A :顯示時間為24小時格式:HH:MM

     /u :目前使用者的賬号名稱

     /v :BASH的版本資訊

     /w :完整的工作目錄名稱。家目錄會以 ~代替

     /W :利用basename取得工作目錄名稱,是以隻會列出最後一個目錄

     /# :下達的第幾個指令

     /$ :提示字元,假如是root時,提示符為:# ,普通使用者則為:$

        修改/etc/rc.d/init.d/network    \\修改arp

開機自動生效:

        1. 修改核心開啟最大檔案描述符     echo 22158 > /proc/sys/fs/file-max

        2. 修改FD_SETSIZE : /usr/include/bits/typesizes.h  

           #define __FD_SETSIZE            10240

        3. 修改目前使用者的程序最多可以打開的檔案數(包擴,sock連接配接)。

             第一步,修改/etc/security/limits.conf檔案,在檔案中添加如下行:

*                soft    nofile          4096

*                hard    nofile          4096

             第二步,修改/etc/pam.d/login檔案,在檔案中添加如下行:

             session required /lib/security/pam_limits.so

             第三步,檢視Linux系統級的最大打開檔案數限制,使用如下指令:

             cat /proc/sys/fs/file-max

               如果重新開機後用ulimit-n指令檢視使用者可打開檔案數限制仍然低于上述步驟中設定的最大值,這可能是因為在使用者登入腳                      本/etc/profile中使用ulimit-n指令已經将使用者可同時打開的檔案數做了限制。

        3. 修改臨時端口範圍。

             第一步,修改/etc/sysctl.conf檔案,在檔案中添加如下行:

                net.ipv4.ip_local_port_range = 1024 65535

             第二步,執行sysctl指令:sysctl -p

             檢視是否生效:cat /proc/sys/net/ipv4/ip_local_port_range

        4. 修改Linux網絡核心的IP_TABLE防火牆對最大跟蹤的TCP連接配接數限制。

           第一步,修改/etc/sysctl.conf檔案,在檔案中添加如下行:

               net.ipv4.ip_conntrack_max = 10240

               此限制值要盡量小,以節省對核心記憶體的占用。

           第二步,執行sysctl指令:sysctl -p

           檢視利譜網閘此參數:cat /proc/sys/net/nf_conntrack_max

        5. 修改sock最大連接配接并發數SOMAXCONN(尚未證明有效): echo "1024" > /proc/sys/net/core/somaxconn

ssh密鑰設定:

[[email protected] ~]$ ssh-keygen -t rsa

生成的過程中提示輸入密鑰對儲存位置,直接回車,接受預設值就行了。

接着會提示輸入一個不同于你的password的密碼,直接回車,讓它空着。

其中公共密鑰儲存在 ~/.ssh/id_rsa.pub

私有密鑰儲存在 ~/.ssh/id_rsa

然後改一下 .ssh 目錄的權限,使用指令 "chmod 755 ~/.ssh"

之後把這個密鑰對中的公共密鑰複制到你要通路的機器上去,并儲存為

~/.ssh/authorized_keys

伺服器上的一些統計資料:

1.統計80端口連接配接數: netstat -nat|grep -i "80"|wc -l

2.統計httpd協定連接配接數: ps -ef|grep httpd|wc -l

3.統計已連接配接上的,狀态為"established": netstat -na|grep ESTABLISHED|wc -l

檢視端口被什麼程式占用: lsof -Pnl +M -i4

****************************************

設定Linux的時鐘

1.檢視系統時鐘的操作:date

設定系統時鐘的操作:date 091713272003.30

通用的設定格式:date 月日時分年.秒

2.使用hwclock或clock指令檢視和設定硬體時鐘

檢視硬體時鐘的操作:hwclock --show 或 clock --show

設定硬體時鐘的操作:hwclock --set --date="09/17/2003 13:26:00"

或者 clock --set --date="09/17/2003 13:26:00"

通用的設定格式:hwclock/clock --set --date=“月/日/年 時:分:秒”。

保持系統時間與硬體時鐘同步指令:clock --hctosys

date -s "2011-10-26 09:41:10"

時間設定成2009年5月10日的指令如下:

#date -s 05/10/2009

修改時間:

将系統時間設定成上午10點18分0秒的指令如下。

#date -s 10:18:00

3.同步系統時鐘和硬體時鐘

Linux系統(筆者使用的是Red Hat 8.0,其它系統沒有做過實驗)預設重新開機後,硬體時鐘和系統時鐘同步。如果不大友善重新啟動的話(伺服器通常很少重新開機),使用clock或hwclock指令來同步系統時鐘和硬體時鐘。

硬體時鐘與系統時鐘同步: hwclock --hctosys 或者 clock --hctosys

系統時鐘和硬體時鐘同步: hwclock --systohc 或者 clock --systohc

Redhat Linux 檢視cpu、memory 等指令

檢視系統核心版本:

# uname -a

檢視系統版本:

# more /etc/redhat-release

檢視核心版本gcc版本

# more /proc/version

檢視cpu 資訊

# grep “model name” /proc/cpuinfo

# more /proc/cpuinfo

檢視cpu 的位數

# getconf LONG_BIT

檢視記憶體資訊

# more /proc/meminfo

*************************************