cat file1,file2 一次性顯示多個文件
eg: cat /etc/hosts
cat /var/log/messages 這樣東西比較多的時候,上面的內容看不到
需要這些快捷鍵,上下翻頁 shift+pageUP/DOWN,Framebuffer
cat -n 可以顯示行號
cat -E 顯示文本文件的換行符
$ 表示一行結束的符號
more 查看文本文件 支持上下翻頁 但一次只顯示一屏 空格向下翻一屏 b鍵向上翻 enter向下翻一行
less 文件名 支持向前向後翻頁 space/b enter/k
支持特殊字符串的查找 /string 查找到最近一個 想再找一個n(next)
想回到之前一個N(next)
?string n N
q鍵表示退出
head 文件名 顯示文件的前幾行 默認顯示前10行
-n 前n行
tail 文件名 顯示文件尾部幾行 默認顯示10行
-n 尾部n行
-f
eg tail /var/log/message 顯示10行退出
tail -f /var/log/message 顯示10行不退出
直到按ctrl+c退出
tac 所有文件反過來顯示
命令 選項 參數
COMMAND [POTION] [ARGU]
命令幫助
#command --help
-help表示 -h-e-l-p,所以是不一樣的
內部命令的幫助信息
#help command
#man COMMAND
命令的(文本)手冊文件,壓縮後存儲,/usr/share/man
man less
命令手冊是分章節,8個章節
第一個章節、user commands 普通用戶命令
二 system calls 系統調用
三 library calls 庫調用
四 special files 設備文件信息
五 file formats 文件格式
六 games
七 miscellaneous 雜項
八 administrative commands 管理員命令
man passwd
man -k passwd 從whatis裏面搜索匹配passwd的字符全挑出來
eg makepasswd
man man
man -k passwd
q鍵表示退出
[]:可選
<>:必須有
file...:可以有多個
-x|y|z:從中選一
[-x|y|z] 可選一個 可不選
<-x|y|z> 必選一個
-abc 三者聯合使用
man 5 passwd 顯示第五個章節的passwd信息,命令
whatis COMMAND 告訴你命令在哪些章節有
eg whatis passwd
執行這個命令 如果遍歷一遍很麻煩,系統中用 數據庫
這個命令是 makewhatis:生成數據庫
查看man命令
man man
-M 指定路徑(path)
#man info
#info passwd 查找info,獲得補充信息
每一個外部命令:
README
INSTALL
COPYRIGHT
文檔doc,/usr/share/doc
FAQ(經常被問答的問題)
kbase。redhat。com紅帽官方 問題庫
date 顯示或設置系統日期和時間 shutdown 關機或重啓 cal 日曆 ifconfig 接口的配置信息
date如何修改當前系統時間-s或者date 時間,如何顯示當前日期date +%F或date +%D,如何顯示當前時間date +%T,如何只顯示當前的小時%H 分鐘%M 秒%S date +%H-&M-%S或date “+%H-&M-%S”
shutdown如何關機-h,如何重啓-r
shutdown -h now 或 shutdown -h +0 都表示立即關機
shutdown -h +10 十秒以後關機
cal如何顯示2012年12月
cal 2011 顯示2011年所有月份
cal 12 2011 顯示2011年12月份
ifconfig
ifconfig ethX ip/MASK
Ifconfig etn0 172.16.10.100/16
ssh協議:tcp 22號端口
putty
secureCRT
Xmanager
用戶、組、權限:
認證機制:確認用戶就是所生成的用戶
進程:是資源的分派單位
每一個進程都是在特定用戶的
用戶
用戶賬號:root,student
linux:用戶ID號,簡稱UID
十進制整數 0-65535 與賬號一一對應
用戶類別:
管理員:root,0
系統用戶:維護系統運行,1-499
普通用戶:500-60000
nobody:-1 表示來賓賬號(相當於window中的guest)
Linux支持多種shell:
GUI:可有可無,常見的流行的系統:gnome,KDE,xface
CLI:bash(默認),sh,ksh,zsh,csh,tcsh,ash
/etc/passwd 純文本文件 每一行標示一個用戶
/etc/shadow 純文本文件,影子口令(加密的,單向的),存放用戶密碼
組:分配權限的容器,簡稱GID
基本組:每一個用戶建立起來之後都有一個基本組
附加組(額外組):用戶可以屬於多個組,不常用的組
/etc/group 存放所有組的安全信息
臨時切換組到另一個組:newgrp
組的密碼放在/etc/gshadow
文件權限:
每一個文件都有權限模型mode:屬主(所有者)和屬組(所屬的組)
權限
文件類型:普通文件 用f表示 但是在ls命令的顯示結果中,用-表示
鏈接文件 l 指的是符號連接文件
目錄文件 d
塊設備 b
字符設備 c
套接字文件 s
命名管道 p
9位權限:
--- --- ---
(u)(g)(o)
r:讀 表示讀的話rrr
w:寫
x:執行
文件權限:
r:查看
w:編輯,修改
x:運行
目錄權限:
r:ls查看,不能使用ls -l,也不能cd進去
w:在目錄中創建文件
x:cd進去
這三種權限的組合:
rwx:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
640 rw-r-----
rw-rw-r-- root root a.txt
(屬主)(屬組)
jerry有寫權限
1.讓他成爲屬主
2.讓他加入root組;把文件的屬組改爲他所屬的組,mygrp
3.r--,rw-
useradd USERNAME 創建用戶
-u UID 制定用戶ID
-g GID (此組必須事先存在)
-c “COMMENT”
-d /path/to/somewhere
-s 指定用戶shell的種類
-G group(組必須事先存在,可以指多個,用逗號隔開)
groupadd GROUPNAME
-g GID 組的ID號
eg groupadd -g 100 dba
tail -1 /etc/group
useradd -g dba oracle
id oracle
冒號是分隔符,表示有幾個段落
passwd [USERNAME]
passwd -l 用戶名 鎖定
passwd -u 用戶名 解鎖
--stdin 從標準輸入讀入密碼
echo "string" 回顯字符串
echo "radhat"
echo "radhat"|passwd --stdin mysql 把mysql的密碼改爲redhat
userdel USERNAME
-r
groupdel GRPNAME
bc 是計算器
0
9999
7 離密碼還有多長時間,就要提醒用戶
倒是第三段
倒數第二天到期鎖定時間
倒數第一段預留段
usermod 修改用戶賬號的屬性
-u 用戶ID
-g 組
-G 附加組後面再加幾個組
-s 用戶shell
-c 改用戶註釋
-l 修改用戶名
-e 用戶賬號的有效期限,格式yy-mm-dd
-f 用戶賬號過期時
-d 改變用戶家目錄(創建一個新的空目錄,用戶弄過來)-m 全部挪過來
權限管理:
mode:
u,g
perm:ugo
a.txt,u:root,g:root,perm:664
jerry,write
chown USER FILE1,。。。改變屬主
-R 把目錄下所有屬主都改了
chgrp GROUP FILE1,。。。改變屬組
-R 把目錄下所有屬組都改了
chown USER:GROUP FILE,。。。
chown USER.GROUP FILE,。。。
只改屬組 chown :GROUP FILE
--reference=
chown --reference=A B 把B的屬主屬組改的和A一樣
改變權限:
chmod [option]mode,mode,... FILE,...
chmod nnn(八進制) FILE 把三個權限全改了
chmod u|g|o|a=mode FILE,。。。
chmod u|g|o|a +|- mode FILE,。。。
shell:
1、命令行編輯
Ctrl+a 光標到行首
Ctrl+e 光標到行尾
Ctrl+u 光標到行首刪除
Ctrl+k 光標到行尾刪除
Ctrl+arrow
2、globbing:文件名通配
*:任意長度的任意字符
a*b,aab
?:任意單個字符
a?b,aab,ayb
[]:指定範圍內的任意字符,[abc][0-9][a-z][A-Z]
[:lower:][:upper:][[:digit:]]
[^a-z]
a[a-z]b
/etc/pass
3、命令行展開
~
cd ~redhat
{}
x/y x/z x/y/a1 x/z/b1 m/n
mkdir -p {x/{y/a1,z/b1},m/n}
x_y,x_z,m_y,m_z
mkdir -v (x,m)_(y,z)
$(),``
4、如何避免字符展開
a*b
ls a*b
\ 避免一個字符表示通配的意義
使用命令別名
ll=ls -l
alias lis=clear 定義別名
unalias 撤銷別名
\+別名 表示原來的命令
bat,批處理
shell
nano 文件名
bash
user1
user2
user3
顯示創建完成,並顯示時間
1、使用一個命令顯示/etc目錄中所有以一個小寫字母開頭而後緊跟一個數字後再跟任意字符的文件的文件類型
ls -l [a-z][0-9]* /etc
2、以一個命令在/tmp目錄創建以下目錄:
myroot, myroot/etc, myroot/etc/rc.d, myroot/etc/init.d, myroot/usr, myroot/usr/local, myroot/var, myroot/var/log, myroot/proc, myroot/sys, myroot/mnt, myroot/media, myroot/lib, myroot/boot, myroot/boot/grub
mkdir -pv /tmp/{myroot/{etc/{rc.d,init.d},usr/local,var/log,proc,sys,mnt,media,lib,boot/grub}}
3、以一個命令顯示當前系統上所有可用shell對應的可執行文件的文件內容類型;
4、創建各一個名字爲"a*b","a b", "$ab", "a?b"的文件(文件名爲引號內的內容);
touch a*b "a b" '$ab' 'a?b'
寫一個腳本:
1、創建目錄/tmp/scripts
mkdir -pv /tmp/scripts
2、切換工作目錄至此目錄中
cd /tmp/scripts
3、複製/etc/pam.d目錄至當前目錄,並重命令爲test
cp -r /etc/pam.d /tmp/scripts/test
4、將當前目錄中的test及其裏面的文件和子目錄的屬主改爲redhat
chown -R redhat test
5、將test及其子目錄中的文件的其它用戶的權限改爲沒有任何權限
chmod -R o=--- test
寫一個腳本:
1、顯示當前系統日期和時間,而後創建目錄/tmp/lstest
date +%F-%H-%M-%S
mkdir -pv /tmp/lstest
2、切換工作目錄至/tmp/lstest
cd /tmp/lstest
3、創建目錄a1d, b56e, 6test
mkdir a1d b56e 6test
4、創建空文件xy, x2y, 732
touch xy x2y 732
5、列出當前目錄下以a、x或者6開頭的文件或目錄;
ls [ax6]*
6、列出當前目錄下以字母開頭,後跟一個任意數字,而後跟任意長度字符的文件或目錄;
ls [a-zA-Z][0-9]*
執行 bash !$