linux開發常用命令
經常使用linux進行開發,軟體安裝,環境部署等,會用到一些常用的命令,下面是我平時使用或收集到的linux下的常用命令集:
type command 檢視一條命令是外部命令還是內部命令
[root@upl test]# type cd
cd is a shell builtin
cd 是內部命令
[root@upl test]# type mount
mount is /bin/mount
mount 是外部命令
內部命令可以直接訪問環境變數,外部命令不可以
檢視內部命令集合體
man type
環境變數
檢視環境變數
echo $PATH
env 檢視所有環境變數
自已設定環境變數
[root@upl test]# AA=hello
[root@upl test]# echo $AA
hello
檢視環境變數要給 $
環境變數配置角本 /etc/profile
檢視命令或者函式在哪一章
whatis command
man -f command
man文件
1.基本的shell指令 whatis ls
2.系統呼叫命令 whatis open
3.系統呼叫庫命令 whatis malloc
4.
5.檔案介面 whatis passwd whatis inittab whatis shadow
7.總述 雜項 whatis signal whatis socket
8.網路介面,核心介面 whatis ifconfig whatis mii-tool
info command
help
ls list directory contents
ls file or directory
ls -l 以列表的形式 ==> ll
ls -a 所有的檔案
ls -R 遞迴資料夾
ls -h 檔案大小帶有單位
ls -t 以時間順序排列
touch 建立一個檔案
1.假如檔案不存在,會建立一個檔案
2.如果檔案存在,改變檔案的時間戳,不會改變檔案內容
cd change working directory 改變工作目錄
cd directory
cd . 當前目錄
cd … 上一層
cd - 返回上一次跳過來之前的目錄
cd 到相應使用者的家目錄
cd ~ 到相應使用者的家目錄
絕對路徑 從根出發
相對路徑 從當前的工作目錄出發
rm remove a files or a directorys
rm -r 刪除一個目錄
rm -f force 強制刪除
mkdir create a directory
mkdir directorys
mkdir dir1/dir2/dir3 -p 建立多級目錄
cp copy a file or a directory
cp file1 file2
cp file directory
cp directory1 directory2 -r
\cp file directory 覆蓋模式
mv
1.剪下
mv file1 directory
mv file1 …/file1
2.重新命名
mv file1 file2
許可權
7 7 7
- rwx rwx rwx
所屬使用者 所屬組 其它
r-- 4
rw- 6
chmod 0777 file 給某檔案設定許可權
chmod 0777 directory -R 所有都置成一樣的許可權
chmod a+x file 給所有位新增x
chmod a-x file 把所有位刪除x
umask 檢視當前使用者的掩碼
預設情況下是0022
建立檔案的最大許可權是666
建立資料夾最大許可權是777
maxpriority - umask = file or directory priority
資料夾 777 - 022 = 755
檔案 666 - 022 = 644
- normal file 普通檔案 黑色
d directory 目錄 藍色
c characterdevice 字元裝置 黃色
b blockdevice 塊裝置
s socketdevice 網路裝置
l link 連結檔案 淺藍色
p pipe 管道檔案
/root 超級使用者的家
/home 普通使用者的家
/bin 普通使用者的命令
/sbin 超級使用者的命令
/dev 裝置
/etc 配置檔案的目錄
/net /sys 網路相關 系統相關
/media 自動掛載外設
/mnt 手動掛載外設,網路資源
/misc 自動掛載本機硬碟資源
/proc 自動生成,裝置引數
/var 系統日誌和服務
/usr 第三軟體自動安裝目錄
/opt 手動安裝第三方軟體
/selinux SELINUX 防火牆
/lost+found ext2 ext3 ext4 磁碟格式
/boot 核心,grub引導 一盤獨立分割槽
vim 編輯器
三種模式
命令模式
末行模式
插入模式
插入模式
補全 ctrl + p
刪除整行 ctrl + u
命令模式
命令模式轉入插入模式
i 在當前游標前插入
I 在當前游標的行首插入
a 在當前游標後插入
A 在當前游標的行尾插入
o 在當前游標的下一行的開頭插入
O 在當前游標的上一行的開頭插入
yy 複製一行
4yy 複製從當前游標以下四行
dd 刪除一行
4dd 刪除從當前游標以下四行
d + 上鍵 刪除當前游標這一行以及上一行
d + 下鍵 刪除當前游標這一行以有下一行
p 貼上在當前游標所在當行的下一行
P 貼上在當前游標所在當行的上一行
r + 所替換的字元 替換掉當前游標的一個字元
可視塊
刪除
ctrl + v 把需要操作的字元拉黑 +delete 將拉黑的字元刪除
新增
ctrl + v 把需要新增的游標拉黑 + I 編輯 + esc
替換
ctrl + v 把需要替換的拉黑+ r + 所需要替換的字元比如:a
末行模式
:! 強制 相對於超級使用者
:w 儲存
:q 退出
:wq 儲存以及退出 :qw 不行
:x 儲存以及退出
:X 對一個檔案加密碼 不輸入密碼就是取消
:! 跳出vim執行命令
:sh 建立出新的一個shell儲存當前編輯狀態,操作完之後,用ctrl+d回覆當前編輯狀態
如何將一個程式掉到後臺
ctrl + z 掉到後臺停止執行
./a.out & 將一個程式掉到後臺執行
檢視後臺任務
jobs
後臺任務掉到前臺
fg
查詢
/target 查詢target物件 從當前游標向下查詢
n 向下查詢下一個
N 向上查詢上一個
?target 向上查詢target物件
取消高亮
:nohl ==> no high light
讓vim顯示行標
set number ==> set nu
讓vim不顯示行標
set nonumber ==> set nonu
修改配置檔案
設定行標
vim /etc/vimrc
在空行處寫
set number 或者 set nu
儲存退出
修改tab長度
vim /etc/vimrc
set ts=4
儲存退出
替換
% 所有行 s替換 g 一行所有 c check 檢查
:%s/this/that 把所有行的首個this替換成that
:%s/this/that/g 所所有行的所有this替換成that
:14,16s/this/that/g 從第14行到16行的this替換成that
:%s/this/that/gc 檢查訪問模式替換
檢視時間
date
date +%F 檢視當前時間
date +%F --date=“1 days ago”
date +%F --date=“1 day ago”
date +%F --date=“1 day”
date +%F --date=“1 days”
設定時間
date -s 2014-07-14 設定當前時間
//date -s 2014/07/14
date -s 11:40
clock -w write同步時間
檢視當前命令的歷史
history
history -w 儲存當前操作的歷史命令
// ~/.bash_history
history -c 清除當前操作的歷史記錄
檢視當前系統支援的語言
locale
locale -a 檢視所有
locale -a | grep zh 檢視支援中檔案格式
//管道過濾
cat txt | grep hello 檢視txt這個檔案裡面帶有hello這個單詞的行
linux系統執行級別 run level
0 關機
1 單使用者模式,沒有網路,沒有服務,主動獲得root許可權
2 多使用者模式,有服務,沒有網路
3 多使用者模式,有服務,有網路,伺服器模式
4 保留
5 圖形介面,x11
6 重啟
配置角本
/etc/inittab
id:5:initdefault
init 0
shutdown -r +10 10分鐘後重啟
shutdown -h now 現在關機
halt 也是關機
halt -p -f 強制關機,直接掉電
reboot 重啟
init 6
init + runlevel
ctrl + F2-F7 進入字元介面
ctrl + F1 回覆圖形介面
stdin stdout stderr
標準輸入 標準輸出 標準出錯
0 1 2
重定向
預設情況下是標準輸出重定向 清空該檔案
echo “hello world” > txt 如果txt不存在,將會被建立
標準出錯重定向
echo “hello world” 2> txt
(ls && fjdkslf) 2> txt 只把標準出錯重定向
把標準出錯和標準輸出都重定向
(ls && fjdksfj) &> txt
追加
echo "hello world " >> txt 不會清空該檔案
錯誤追加
(ls && fdkfjdk) 2>> txt
(ls && fdkfdjf) &>> txt
網路配置
192.168.110.254
//網段 網路ip
IP 網路IP
閘道器 路由器 --》 交換機 沒有外網轉發功能
子網掩碼 255.255.255.0 如果255固定,0可變
DNS解析 把域名轉成具體的伺服器IP
如何檢視本地有無網路卡
ping 127.0.0.1
ping得通證明有網路卡,如果ping不通,證明沒有網路卡
檢視網線有沒有連線
mii-tool eth0 (網路卡介面名字) eth0 eth1
[root@upl ~]# mii-tool eth1
eth1: negotiated 100baseTx-FD, link ok
//no link
關掉網路管理後臺程式
service NetworkManager stop // restart start
配置主機IP
1.臨時配置IP
ifconfig eth0 192.168.110.xxx
將本機配置成192.168.110.xxx
只要網路服務重啟。就會失效
service network restart
2.手動配置IP
/etc/sysconfig/network-scrpts/ifcf-eth0
應該具有:
DEVICE=eth0 裝置名字
BOOTPROTO=none 或者(靜態) static 或者是 dhcp(動態獲取IP地址)
ONBOOT=yes 開啟本網路卡工作*
IPADDR=192.168.110.xxx IP地址
// GATEWAY=192.168.110.1 閘道器
NETMASK=255.255.255.0 子網掩碼
配置儲存之後得重啟網路
service network restart
第二次打可以用簡寫
!ser
檢視閘道器
route -n
新增一個閘道器
route add default gw 192.168.110.1
刪除一個閘道器
route del default gw 192.168.110.1
檢視並配置DNS
nslookup
-> server
Default server: 192.168.2.1
Address: 192.168.2.1#53
-> exit 退出
設定DNS
/etc/resolv.conf
nameserver 192.168.2.1
// 8.8.8.8
// DNS1=8.8.8.8
配置子網 虛擬網路卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:0
vim ifcfg-eth0:0
DEVICE=eth0:0 修改網路卡名字
改成2網段的某一個IP
GATEWAY=192.168.2.1
儲存
service network restart
ping 192.168.2.1
ping 得通
DNS是否可以用
nslookup
->server
192.168.2.1 --> 8.8.8.8
-> exit
nslookup www.baidu.com
如果解析成功。將會看到解析地址
ping www.baidu.com
如果ping得通 就可以上網了
wireless
# ls usbwifi.sh
# ls wireless_tools.29/
# yum -y install zd1211*
# ifconfig -a 檢視wlan0
# ifconfig wlan0 up
# ./usbwifi.sh --> 改ESSID "AndroidAP"
# wpa --> wpa_tool
配置主機名
1.檢視自己主機名
1> echo $HOSTNAME //環境變數方式 容易改動
2> hostname //命令方式
3> cat /etc/sysconfig/network | grep HOSTNAME
2.設定主機名
/etc/sysconfig/network
HOSTNAME=xxxx.xxxx.com
//要重啟 讓主機名生效
reboot
3.將本機的IP與本機主機名建立連線
/etc/hosts
IP + 主機名 + 主機名的簡稱
192.168.110.xxx xxxx.xxxx.com xxxx
ping 192.168.110.xxxx
ping xxxx.xxxx.com
ping xxxx
都可以ping得通 OK
userID 使用者ID
useradd xxxx
useradd -c xxxx 註釋
useradd -s /bin/bash -c “hello world” xxxx
useradd -g root -G test -s /bin/bash
-c 註釋
-s 指定shell
-g 指定所屬組
-G 指定所屬的附組
-u 指定使用者ID
-d 指定使用者的家目錄
-m 如果不存在建立
userdel xxxx 刪除一個使用者
userdel -r xxxx 刪除一個使用者還有對應的家目錄
usermod -c “hello world” -s /bin/bash -g root -G test -d /home/bbbb xxxx
給一個使用者密碼
passwd xxxx
**
/etc/passwd
使用者ID
0 root超級使用者
500+ 普通使用者 有家目錄,可以登入系統
0 && < 500 普通使用者 /sbin/nologin
使用者名稱 有密碼 使用者ID 所屬組ID 註釋 家目錄 指定的shell
root: x: 0: 0: root: /root: /bin/bash
/etc/shadow
使用者名稱 MD5加密過後的密碼encrypted password
root:
6
6
6hYIUhhNP$u8JDuxPNqr3jNBelzMut5P8FWVMimifq8Ojcywii/OV/gS3iR
date of last password change
J5LJatOWQAp7DTyHzEFB6Bs59Ft7qRKnyptZ/:16246:0:99999:7:::
磁碟分割槽
1.先插入需要分割槽的磁碟
2.解掛所以自動掛載的磁碟分割槽
umount /media/*
3.D格磁碟
1> 確認磁碟裝置節點
fdisk -l 比如:/dev/sdb1 ==》最終用整個磁碟/dev/sdb
2> D格
dd if=/dev/zero of=/dev/sdb bs=1024 count=1
3> 確認D格有無成功
fdisk -l 如果檢視不到子分割槽則成功
4.寫分割槽表
1> fdisk /dev/sdb
a 設定某個分割槽為活動分割槽
n 增加一個新的分割槽
d 刪除一個分割槽
p 列印分割槽資訊
t 改變分割槽格式
L 列印磁碟格式與對應的ID號 最大0xff
q 退出但是不儲存修改
w 寫入分割槽表到磁碟並退出
2> 確認分割槽資訊是否已經寫入分割槽表
fdisk -l
如果獲得的分割槽表資訊跟你所分的資訊一致。則分割槽表寫入成功
5. 把相應的分割槽格式 格式式成相應的檔案系統格式
1> 檢視具體的分割槽格式
fdisk -l
2> partx -a /dev/sdb
如果檢視不到對應的裝置節點
ls /dev/sdb*
/dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
拔出再插入 , 直到可以看到具體的分割槽裝置節點
3> 格式化檔案系統
mkfs.vfat /dev/sdb1
mkfs.vfat /dev/sdb2
mkfs.ext2 /dev/sdb3
mkfs.ext3 /dev/sdb4
注意,在linux系統裡面,是沒有ntfs格式的
- 拔出再插入,檢視自動掛載視窗有沒有四個
程式管理
1.檢視當前系統執行的程式
ps -auxf 長 ps -xf 短
snapshot snapshot 快照模式
USER 使用者資訊
PID 程式ID號
%CPU CPU佔用率
%MEM 記憶體佔用率
VSZ 虛擬記憶體
RSS 真實記憶體
TTY 是否有控制終端
START 開始時間
TIME 執行時間
COMMAND 執行此程式所執行的命令
STAT 程式狀態
D 不可中斷的睡眠(深度睡眠)
S 可中斷的睡眠
R 真在執行的或者是準備就續的程式
T 暫停的程式
X 死掉的程式(不可見)
Z zombie或者defunct process
< 高優先順序
N 低優先順序
s session leader
L 頁鎖
l muti-thread多執行緒
- foreground前臺執行的 相對於background後臺
2.監控模式
top
可以按h來提供幫助
3.殺死一條程式
kill -9 processID
man 7 signal 檢視第9號訊號
killall
通過程式名字殺死一個或者多個程式
4.pstree
用樹的方式相看程式
只能看到父子關係
服務
yum源查尋
yum search vsftpd
安裝
yum -y install vsftpd
刪除
yum -y remove vsftpd
1.ftp服務
//-------------------------------------
//服務端
file transport proctol
檔案傳輸協議
安裝ftp服務
yum -y install vsftpd
預設開啟ftp服務的路徑
/var/ftp/pub
重啟服務
service vsftpd restart
設定開機啟動
chkconfig vsftpd on
給ftp目錄許可權
chmod 777 /var/ftp/* -R
保證
防火牆是關的
setup
-> firewall --> 去掉* --> 確定
關掉SElinux
setenforce 0
//----------------------------------------
//客戶端
1.開啟firefox --> ftp://192.168.110.xxx
2.位置–>連線到伺服器–>輸入ftp伺服器的IP–>確定
3.yum -y install lftp
lftp 192.168.110.xxx
->commad 命令
目標機 本機
-> get xxxx -o /root/xxxx
-> exit
//--------------------------------------------------
//yum 源
ls /var/ftp/pub/rhel-server-6.4-i386-dvd.iso
1.將iso裡面的安裝包掛出來
mount -o loop /var/ftp/pub/rhel-server-6.4-i386-dvd.iso /mnt
2.確認已經掛載
df -h
[root@www pub]# df -h
檔案系統 容量 已用 可用 已用%% 掛載點
/var/ftp/pub/rhel-server-6.4-i386-dvd.iso
3.0G 3.0G 0 100% /mnt
//配置yum源的角本
// /etc/yum.repos.d/xxxx.repo
// 名字 xxxx可以隨便寫,但是結尾一定要 .repo
// 最好保證裡面只有一個xxxx.repo
3.vim /etc/yum.repos.d/xxxx.repo
[xxxx] //yum源的主題
baseurl=file:///mnt/
enabled=1 //開啟yum源服務
gpgcheck=0 // 檢查金鑰
4.yum clean all // 清yum源的快取
yum list
如果成功 之前配置的主題
//-------------------------------------
//本地非掛載
1.mount -o loop /var/ftp/pub/rhel-server-6.4-i386-dvd.iso /mnt
2.echo $? 如果是零就OK 或者 df -h 看一下是否有掛載
3.mkdir /yum
4.cp /mnt/* /yum/ -r
5.vim /etc/yum.repos.d/xxxx.repo
[xxxxx]
baseurl=file:///yum/
enabled=1
gpgcheck=0
6.yum clean all
7.yum list
//做一個yum源的伺服器
//ftp
服務端
1.yum源釋出出去
/var/ftp/pub
2.mkdir /var/ftp/pub/yum
3.cp /yum/* /var/ftp/pub/yum -r
4.service vsftpd restart
客戶端
vim /etc/yum.repos.d/server.repo
[xxxx]
1.先測試服務端的yum源路徑
開啟firefox ftp://192.168.110.xxx
baseurl=ftp://192.168.110.254/pub/rhel6.4_32/
enabled=1
gpgcheck=0
2.yum clean all
3.yum list
安裝原始碼包
./configure ==> 生成Makefile
make ==> 生成可執行檔案
make install ==> 將可執行檔案拷到系統相應目錄
清包
make clean ==> 刪除已經編好生成的可執行檔案或者中間檔案
make distclean ==> 清除包的連結關係,最主要是刪除Makefile
注意:
如果包過大
make -j4
nfs 服務
怎麼檢視主機發布的nfs服務
showmount -e 192.168.110.xxx
- mkdir /test 假如/test就是我們需要釋出的目錄
- vim /etc/exports
/test *(rw) *所有IP r 可讀 w 可寫 - service nfs restart
- showmount -e 192.168.110.xxx
如果發現
Export list for 192.168.110.254:
/test *
釋出成功
客戶端連線主機nfs服務
1.showmount -e 192.168.110.xxx (主機IP)
Export list for 192.168.110.254:
/test *
2. mount -t nfs 192.168.110.xxx:/test /mnt (客戶機目錄)
3.df -h
192.168.110.254:/test
193G 33G 151G 18% /mnt
證明掛載成功
*注意:客戶端
如果處理完事情要及時解掛
umount /mnt
如果沒有及時解掛,只要伺服器意外關機,客戶端將當機(慢慢)
//cifs
mount -t cifs 192.168.2.211:/share /mnt
df -h
umount /mnt
ssh
ssh 192.168.110.xxx
禁止
service sshd stop
chkconfig sshd off
開啟
service sshd restart
chkconfig sshd on
遠端拷備
scp
從本機拷給其它機器
scp direcotry/file 192.168.110.xx:/directory/file
passpwd:
從其它機器拷到本機
scp 192.168.110.xxx:/directory/file /directory/file
注意
這些目錄不可以有一個寫錯
掛載U盤
mount /dev/sdb1 /mnt
ntfs格式
裝ntfs包
ntfs-3g /dev/sdb1 /mnt
mount -t ntfs-3g /dev/sdb1 /mnt
打包 解包
xxx.zip xxx.bz2 xxx.gz aaa.xz
xxx.tar.gz xxx.tar.bz2 xxx.tar.xz
打包
zip xxx.zip xxx
//把xxx打包成xxx.zip
gzip xxx ==> xxx.gz
bzip2 xxx ==> xxx.bz2
xz xxx ==> xxx.xz
解包
unzip xxx.zip ==> xxx
gunzip xxx.gz ==> xxx
bunzip2 xxx.bz2 ==> xxx
xz -d xxx.xz ==> xxx
或者
unxz xxx.xz ==> xxx
複合包
xxx.tar.gz xxx.tar.bz2 xxx.tar.xz
複合包打包(嚴格)
tar -cf xxx.tar xxx
或者
tar -cvf xxx.tar xxx
//將xxx打包成xxx.tar
//-c create 建立
//-f file 檔案
//-v 打包的目錄或者解壓的目錄可以看得到
//-t 檢視包的內容
//-x 解壓
tar -zcvf xxx.tar.gz xxx
直接將xxx打包成xxx.tar.gz
tar -jcvf xxx.tar.bz2 xxx
直接將xxx打包成xxx.tar.bz2
xz xxx.tar ==> xxx.tar.xz
複合包的解包
tar -xvf xxx.tar ==> xxx
tar -zxvf xxx.tar.gz ==> xxx
tar -jxvf xxx.tar.gz ==> xxx
unxz xxx.tar.xz ==> xxx.tar
tar -xvf xxx.tar ==> xxx
bin/startup.sh #啟動tomcat
bin/shutdown.sh #停止tomcat
tail -f logs/catalina.out #看tomcat的控制檯輸出
#看是否已經有tomcat在執行了
ps -ef | grep tomcat
#如果有,用kill;
kill -9 pid #pid 為相應的程式號
#直接檢視指定埠的程式pid
netstat -anp|grep 8196
遠端登入mysql
mysql -uroot -p -h192.168.9.161 -P3306
開啟防火牆:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --permanent --zone=public --add-port=8080/udp
firewall-cmd --reload
firewall-cmd --state 檢視防火牆狀態
systemctl stop firewalld.service 關閉防火牆
相關文章
- 【開發記錄】Linux常用命令記錄(一)Linux
- 專案開發 git 常用命令Git
- git的開發流程和常用命令Git
- 大資料開發之常用命令大全大資料
- 測試開發-Git常用命令總結Git
- 常用命令[Linux]Linux
- Linux 常用命令Linux
- Linux常用命令Linux
- Linux C++ 開發7 - GDB常用命令彙總(你想了解的都在這)LinuxC++
- 【Linux】Linux基本常用命令Linux
- Linux-Linux常用命令Linux
- 測試開發之網路篇-常用命令
- Linux常用命令使用Linux
- Linux裡常用命令Linux
- Linux常用命令整理Linux
- Linux 的常用命令Linux
- Linux常用命令大全Linux
- Linux的常用命令Linux
- Linux常用命令分享Linux
- linux常用命令速查Linux
- Linux——常用命令整理Linux
- Linux-常用命令Linux
- Linux常用命令全名Linux
- Linux 常用命令2Linux
- Linux GCC常用命令LinuxGC
- 轉linux常用命令Linux
- linux之常用命令Linux
- Linux 常用命令整理Linux
- linux常用命令(轉)Linux
- linux 不常用命令Linux
- Linux下常用命令Linux
- Linux 常用命令合集Linux
- linux vim 常用命令Linux
- Java開發的本質 & DOS介面的常用命令Java
- Linux 運維常用命令Linux運維
- Linux 常用命令記錄Linux
- Linux 常用命令集合Linux
- 個人用_linux常用命令Linux