linux整理
來自專欄 隨手記事
#
ifconfig(查看ip地址){
eth0 表示第一個網卡 ifconfig eth0 down/up 啟動or關閉
lo(lockback) 表示虛擬網卡,內循環
}
#ls
{
ls -l 顯示文件詳細信息
ls -a 顯示所有文件包含隱藏文件
ls -d 顯示目錄自身屬性
ls -root 顯示root信息
ls -ld ./test 查看文件
}
#cd{
cd 切換目錄
cd - 可進入上次所在的目錄
}
#cp {
cp -R /etc /test (-R遞歸所有子文件)
}
#mv{
mv 文件1 文件2 (移動並且改名)
}
#type{
type cd 顯示cd的類型,命令的腳本由誰提供
}
#rm{
rm -f testfile 刪除文件
rm -r test 刪除目錄
rm -rf etc 強制遞歸刪除所有
}
#pwd 顯示當前目錄
#passwd{
passwd Helen 改密碼
/etc/passwd 存放用戶密碼
}
# printenv 顯示普通用戶信息
#date {
顯示系統時間
hwclock 顯示硬體時間
date -s 20:03:55 06/10/96
hwclock --hctosys 硬體改成和軟體時間相同
hwclock --systohc
手動設date然後讓hw和date一樣
}
#mkdir dir1 創建目錄
#rmdir dir1 刪除目錄
#useradd user1 創建用戶
#userdel user1 刪除用戶
#find{
find / -user user1 查詢用戶user1的所有文件
find /etc -name catalina.out 按名稱查找
find /etc -name catalina* 通配符
find /etc -name catalina???? 通配符一個?號代表一個字元
find /etc -size +204800 文件大小 大於 單位位元組
find /etc -size -204800 文件大小 小於
find /etc -size +16800 -a -size -204800 (查找大於16800並且小於 204800的文件 -a=and -o=-or )
find /etc -type
按時間查找{
1.天 ctime atime mtime
2.分鐘 cmin amin mmin
c= change 文件屬性被改過(所屬組,所有者)
a=access 文件被訪問
m=modify 文件內容被修改過
find /etc -mmin -120 120分鐘之內被修改過
find /etc -mmin +120 超過120分鐘被修改過
}
}
secureCRT客戶端亂碼 選項-->會話選項-->外觀{
快捷鍵: ctrl + L 清屏
ctrl + u 刪除前面敲的代碼
}
#cat{
cat /etc/sysconfig/network-scripts/ifcfg-eth0 查看網卡1的信息
}
#more {
more /etc
空格或f 下一頁,enter下一行 q退出
}
#grep{
按文本內容查找
grep -v "^#" /etc/init.bak | more 去掉以#好開頭的行,並查看
}
#head{
head 20 /etc/services 顯示文件前幾行
}
#tail{
tail -fn 200 catalina.out 顯示文件最後幾行
}
#gzip{
文件壓縮,可以實現與window的共享 .zip
1.只能壓縮文件不能壓縮目錄
2.不保留源文件
3.zip壓縮 會保留源文件
4.解壓縮 gunzip newfile,gz
5.gzip -d
6.gzip newfile ==> newfile.gz
7.gunzip dir1.tar.gz ==>dir1.tar
8.tar -xf dir1.tar
}
#tar{
tar -zcvf dir1.tar.gz dir1 將文件dir1壓縮成fir1.tar.gz
tar. -zvxf dir1.tar.gz
}
#zip{
zip newfile.zip newfile 解壓
zip -r newfir.zip new fir (壓縮目錄)
unzip newfir.zip 解壓
}
#bz2{
bzip2 -k newfile
bunzip2 newfile bz2
}
# ln{ 建立軟鏈接,硬鏈接相當於copy
ln -s /etc/issue /issue.soft
ls -l /etc/issue /issue.soft
}
#echo{
echo "this is addtion" >> /etc/issue
cat /etc/issue /issue.soft /issue.hard 查看穩健內容
}
#su{ 切換用戶
su - helen(用戶名)
su 切換管理員
}
# service network restart 重啟網路
#man 查看命令手冊
#whereis man 查看命令的位置,一般在(/usr/bin
下)#which touch (顯示touch的路徑)
#whatis 表是命令的簡單用法
#ls --help 只列出相應的選項
#chmod{
修改文件許可權
chmod 777 ./etc
許可權管理:drwx:rwx: rwx(d表示文件類型,x表示執行的許可權即可進入目錄,w表示寫 和刪除許可權 r=4 w=2 x=1 記憶:可讀可寫可執行。所有者許可權:所屬組許可權:其他人許可權 )
}
#chown{ 改變文件所有者
chown helen /etc
}
用戶管理{
查詢用戶總數 wc -l /etc/passwd
/etc/passwd中
root:x:0:0:root:/root:/bin/bash(1:2:3:4:5:6:7)1表示用戶
2表示密碼位(非密碼本生)
3表示uid uid=0表示超級用戶 uid=1~499 系統安裝時自動生成的偽用戶
uid=500~6000 手工添加的普通用戶
4表示GID 組ID 添加的用戶必定會有一個組,比如預設組
5表示描述信息
6宿主目錄:存儲基本信息,不設置會自動放在/home下
7 用戶使的命令解釋器shell 默認為bash
保存的密碼文件 /etc/shadow
}
# umask -s 查看文件默認許可權
linux安裝:{
典型->安裝鏡像(iso ->根據喜好->mycentos
->root 2012 用戶名 ->自己定義 ->next -> finish->改CD /DVD(移動硬碟) ->使用自己的ios 最好不換選第一個->skip ->中文next ->english next ->next ->基本的存儲設備 ->忽略->主機名 不變 ->建立自己的分區結構->如果sd硬碟則順序為sda sdb sdc或者 hda hdb hdc
-> 點擊空閑創建 ->標準分區(第一個文件:掛載點"/" 類型ext3 大小1000M,固定大小)【swap(虛擬區),文件類型 swap使用其餘空間】 ->下一步 ->BasicService ->重啟 ->此時把CD/DVD選擇使用物理 ->}
linux 目錄級別{
/(root)
--home
-- etc
--tmp
}
關於聯網{
編輯 -->必須有一個NAT -->第二步反鍵設置 -->網路適配器 -->橋接模式 -->
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.31.197.209
NETMASK=255.255.240.0
)
- -> ifup eth0 激活網卡
}
linux快捷安裝{
快捷建立虛擬機:典型 ->稍後安裝 -> centos64位->下一步 ->下一步(單個文件)->完成 ->再將ios導入DCD即可
}
window 安裝{
裝系統->自己的U盤 window7 -> 系統安裝 ->CD驅動器 ->載入光碟->source ->install.tool
}
輸入重定向{
> 清空文件添加內容
>> 最佳內容
cp -R /usr /backup/use.bak >> /bak.error (備份/usr 到use.bak 如果報錯日誌寫到 bak.error)
}
輸出重定向{
wall < /etc/http://issue.net 廣播http://issue.net的內容
}
管道{
ls -l /etc/ss.out | more 將輸出作為下一個命令的輸入
ps -ef | grep tomcat | wc -l 輸出文字中包含tomcat的總行數(wc-l 統計總行數)
}
多命令組合執行{
pwd : ls : date (:表示順序執行)
&& 第一個執行成功後第二個才會執行
|| 第一個失敗第二個也執行
}
命令替換{
#ls -l `
which touch` 將wiich的輸出結果作為ls -l的參數}
#wirte{
send a message to another user
write helen < /etc/ss.txt || mail henlen < /etc/ss.txt
}
#wall{
向所有的用戶廣播信息
}
網路通信{
ping -c 3 192.168.1.1 只發三個簡訊包
ping -t 192.168.1.1 查看可操作的選項
ifconfig eth0 192.168.1.108 修改網卡eth0的ip
shutdown -h now 立刻關閉伺服器
reboot 重啟
init 6 重啟
arp -a 查看近期鏈接到主機的電腦ip和mac
arp -d 192.168.2.2 刪除記錄
arp -s ip mac 添加arp靜態記錄 永久有效,知道自己的mac 去詢問自己的ip地址
}
#history{
查看歷史命令
}
定義別名 alias{
alias copy=cp
}
#vi{
vi cata.out
輸入i 開始編輯模式
wq保存退出 wq!強制退出
ESC退出編輯模式
輸入冒號進入命令模式
命令以回車鍵結束
gg 首行 G末行 :set nu 設置行號 set nonu 取消行號
:888 調到888行 hjkl 上下左右
命令模式下游標+x 刪除字元 ,『dd』刪除行 ,『D』刪除游標到行尾,『u』 恢復之前的刪除操作
「/ftp」 查找ftp 按n/N 上下查找
}
#ps{
查詢進程
ps -le | more
ps -ef | grep tomcat
ps -anp | grep 8080
ps -aux | grep 8080
ps -l 或ps -u 顯示所有進程信息
ps -le or ps -aux 查看所有用戶執行的進程的詳細信息
/etc/rc.d/init.d/httpd status 也可以查看進程信息
ps -aux | grep root 按用戶查看進程信息
ps -all yu 查看用戶yu的所有進程信息
}
kill{
關閉進程
/etc/rc.d/init.d/httpd start/stop 啟動或關閉進程
kill 3567(kill pid)
kill -9 3567 強行關閉進程
kill -l 3567 重啟進程
kill all httpd 關閉進程樹
pgrep httpd 查看所有的pid
pkill httpd 關閉所有進程
kill -l `pgrep httpd`
}
#runlevel{
系統運行級別 N3表示未做修改,s3表示修改過
}
init{
切換系統運行級別
init 6 重啟
init 1 切換級別
ls /etc/rc.d/rc3.d/ 查詢運行級別為3的進程
ls /etc/rc.d/init.d/ 查看可以啟動的所有服務
/etc/rc.d/init.d/sshd start/stop/restart/status
}
程序自動執行{
vi /etc/rc.d/init.d/msg.script (msg.script不存在會自動創建)
修改許可權:chmod u+x
/etc/rc.d/init.d/msg.script (u+x 給所有者添加執行的許可權)生成軟鏈接 ln -s
/etc/rc.d/init.d/msg.script /etc/rc.d/rc3.d/s100msg.script (和級別為3的服務一起執行)chkconfig 查看每個級別可以運行的服務
}
linux啟動流程{
firmware(硬體監測)->bootloader(自舉程序) ->kernel(查內核版本) ->init(初始化) ->/etc/inittab(確定運行級別) ->init
default(初始化默認的運行級別)->/etc/rc.d/rc.sysinit ->/etc/rc/d/rc ->/etc/rd.d/rc3.d ->用戶登陸}
掛在光碟{
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
}
#rpm{
安裝 rpm -ivh 文件名
查詢已安裝的軟體: rpm -q sudo(查詢是否安裝命令)
rpm -qa | grep sudo 查詢已安裝的命令
rpm -ivh --replacefiles sudo 覆蓋安裝
rpm -ivh -- nodeps sudo 強制安裝
rpm -e sudo 卸載
rpm -e --nodeps sudo 強制卸載
rpm -urh sudo-1.8.0 升級
rpm -qf sudo 求父包
rpm -qi sudo 查找軟體包
rpm -qiq sudo查找軟體包
rpm -qlq sudo
rpm -ql sudo 未安裝信息
}
#yum{
好處:自動解決依賴並可以自動更新
yum install -y sudo (所有的過程都yes)
yum groupinstall -y "sudo" 安裝群組
yum check-update sudo 監測升級
yum remove httpd 卸載
yum list | grep sudo 查詢
yum info sudo 軟體包信息
yum grouplist | more udesk 查看是否安裝了桌面環境組件
./configure
--prefix=/usr/local/proftpd 指定安裝位置}
#make{
make 編譯可執行文件
make install 安裝
}
#jobs{
jobs 查看被掛起的進程
fg 1 進程恢復到前台
bg 1 進程恢復到後台
}
#top{
top 每5s刷新一次進程狀態
top 進去之後再直接按(d:指定間隔,h:獲取幫助信息)
}
#at{
計劃任務,安排一個或多個命令在指定時間運行一次
at now +5
}
crontab{
分鐘 小時 天 月 星期
51 21 19 9 5 /usr/bin/wall <
/test/newfileps -le | grep crond
/etc/rc.d/init.d/crond
crontab -e 51 21 19
9 5 /usr/bin/wall < /test/newfile}
文件管理系統{
1.文件系統構成
/usr/bin 存放所有用戶可執行的命令 比如yum
/usr/sbin 存放系統管理員可以執行的命令
/home 用戶預設宿主目錄
/proc 存放當前所有進程信息
/dev 存放設備文件
/lib 存放系統程序運行所需的共享庫
/lost+found 存放檢查錯誤結果
/temp 存放臨時文件
/etc 系統配置文件
/var 包含經常變動的文件入日誌和郵件
/usr 存放所有的命令庫手冊
/mnt 臨時文件系統安裝點
/boot 啟動信息目錄 當前內核
/usr/local 安裝第三方軟體
}
#df{
df -h 查看分區磁碟佔用比
}
#du{
du -h /etc/ss.txt 查看文件大小
}
#file{
file /etc/ss.txt 文件信息
}
#mount{
mount /dev/sr0 /mnt/cdrom 掛在光碟
umount /mnt/cdrom 卸載光碟
}
添加硬碟{
vm設置中點擊硬碟-->點擊add -->next -->scsj -->創建新的 -->io單個文件
dmesg | grep sdb 查看是否安裝成功
}
shell編程{
1.touch ./start.sh 穿件文件
2. chmod u+x start.sh 賦予許可權
3.sh ./start.sh 或者
./start.sh 執行文件4.variable(變數) type{
臨時變數temporay 用戶自定義變數
永久變數 permanent 環境變數
聲明臨時變數 #num=100 (等號兩邊沒有空格)
輸出 #echo
$num#TIME=`date` 將date命令的結果賦值給TIME
#A=$num
#ABC="M H"
#time=$(date +%F)
單引號和雙引號區別{
#ABC="time is $time" (time is 2014-03-23)
#ABC=time is $time (time is $time)
#unset ABC 刪除變數ABC
}
如果ss.sh中的腳本為 ls -l file1 file2 file3
位置變數和特殊變數:sh ./ss.sh /etc 則/etc 對應於/file1
在shell文本中用$n表示(n=1~9)此處n=1
/bin/tar -cf /etc/$1 $date.tar $1>/dev/nul
cp /back $1.$date.tar
}
$# 所有參數的個數
#? 上一方法的返回值
$0 此方法名
$* 這個方法的所有參數
$$ 這個方法的pid
$? 執行上一個方法的返回值
}
sh -x read 顯示過程
變數的運算 expr 3 + 5
expr 5 - 5 100 / 3 3 * 10
賦值 value=`expr $a +$b +$c`
if for select
while [ ]
do
ls -l /etc
break
done
關於shift.sh 中 主要是將第二個參數向前進以為
檢查語法錯誤 sh -x script(斷點調試)
sh -n script 返回所有語法錯誤
}
推薦閱讀:
※您最喜歡使用哪個 Linux 發行版作為桌面使用?為什麼?
※如何學會使用 Linux 操作系統?
※System V 共享內存 原理 疑惑求解?
※如何正確為 Noto Sans CJK 配置 fontconfig 使中文不會被顯示為日文字型?
※Mir 和 Wayland 等 X11 替代品,相比 X11 有哪些具體的優點?
TAG:Linux |