linux基礎命令1

內容包含:文件管理、重定向和管道、用戶組和權限管理、文本處理工具

文件管理

mkdir ??? 創建目錄

-p #創建子目錄,若父目錄不存在,則創建父目錄

例: mkdir -p /app/dir1/dir2

rmdir ??? 刪除空目錄

-p #刪除空目錄,若父目錄為空則同時刪除

 

ln ????????? 創建硬鏈接 (不能跨分區創建)

-s 創建軟鏈接 (可以跨分區)

重點:源文件相對路徑是相對于目標文件的路徑(不是相對于當前工作目錄的路徑)

 

file????????? 判斷文件類型

-b 只顯示結果不顯示文件名

-f 批量判斷文件列表中的文件類型

-F 用指定符號替代:(默認輸出格式 文件名:文件類型)

-L 判斷軟連接指向的真實文件的類型

##額外知識點##????

df -i? #查看分區支持的節點編號數

watch -n 1 命令?? 1秒執行一次命令

目錄里存的是文件名和節點號inode

readlink 顯示軟連接的原始文件路徑

重定向和管道

標準輸入0??? 標準輸出1??? 標準錯誤 2

> ? 標準輸出重定向

2>?? 標準錯誤重定向

&>? 所有輸出重定向 等同于 2>&1

 

tr ?? 替換或刪除字符

-t 字符對應替換

-d 刪除字符

-s 去重(連續重復)

-c 取反 相當于非

 

cat > f1 單行重定向

cat > f1 <<EOF?? 多行重定向? EOF是結束語(可以是任意字符)

 

| ??? 管道(默認傳輸標準輸出)

|&?? 傳輸標準輸出和標準錯誤

|tee 屏幕輸出同時存入文件

 

##額外知識點##

set -C 文件存在禁止覆蓋 (單獨執行)

set +C 取消禁止

/dev/null? 輸出信息重定向到此文件 相當于垃圾箱

mail -s 主題 用戶 <

郵件正文加命令或變量必須是多行重定向

tar -cvf – /home | tar -xvf –

seq -s + 1 10 | bc

seq 1 2 100

用戶組和權限管理

用戶的組:主組、附加組

/etc/passwd 用戶及屬性信息

/etc/group? 組及屬性信息

/etc/shadow 用戶密碼及相關屬性

/etc/gshadow 組密碼及相關屬性

/etc/skel? #創建用戶家目錄模板

/etc/login.defs #創建用戶相關配置

 

getent ? 查看文件內容(passwd、shadow、gpasswd、gshadow)

+用戶名 ?#查看文件內指定用戶信息

例: getent passwd root

 

chsh ???? -s ?#更改用戶的shell??????? 例:chsh -s /sbin/nologin zhang

-l??? 列出所有的shell

 

id 不加用戶名 #顯示當前用戶登陸后的信息(不顯示登陸后更改的信息)

id 用戶名? #從文件中讀取用戶的信息

 

newgrp 組名 #臨時更換主組,不改文件

 

vipw? ??? #單獨執行,相當于vi /etc/passwd

vigr ?????? #單獨執行,相當于vi /etc/group

pwck? ?? #檢查passwd文件錯誤

grpck ??? #檢查gshadow文件錯誤

 

useradd #添加用戶(默認鎖定不能登陸)

-c #添加描述信息

-g #指定主組

-d #指定家目錄

-s #指定shell

-G #指定輔助組

-D 查看創建用戶默認配置文件內容 等同于cat /etc/default/useradd

-s 指定shell

示例:useradd -r -m -d /app/zabbix -s /sbin/nologin zabbix

 

usermod -d 指定新家目錄路徑

-m 移動家目錄

-s? 更改shell

-L ?#鎖定用戶

-U 取消用戶鎖定 ?。。ㄐ陆ㄓ脩羧∠i定只有centos5可以)

-G 添加輔助組(默認覆蓋)? -aG #追加輔助組

-l ?修改用戶名

-g 修改主組

#刪除附加組??????? usermod -G ” 用戶名? 或者 usermod -G 主組名 用戶名

userdel?? 刪除用戶(只刪除賬號,不刪除其他文件)

-r 刪除用戶及相關文件

passwd? 更改用戶密碼(默認更改當前登陸用戶,加用戶名則更改指定用戶)

groupadd #創建組

 

su ???????? #切換用戶(非登陸式切換,環境沒變)

su – ????? #登陸式切換

su -root -c ‘命令’? 切換為root執行命令,然后退出root

 

passwd -e? ? #用戶密碼即時失效(密碼更改時間為0)

chage ????????? #更改用戶口令相關時間

chfn????????????? 添加用戶的描述信息(部門、電話等)

finger??????????? 查看用戶的描述信息

 

groupadd ??? 創建組

-r 創建系統組

-g 指定組id號

groupdel?????? 刪除組

groupmod ?? 更改組相關屬性

-n 指定新名字

-g 指定新的gid

gpasswd ?????? -a 用戶名 組名? #把用戶加入組(組管理員操作)

-d 用戶名 組名? #把用戶從組里移除

-A 用戶名 組名? #把用戶設置為組管理員

groupmems -l -g 組名 ????????? #查看組內成員

-a 用戶 -g 組???? #把用戶添加到組

-d 用戶 -g 組???? #從組中刪除用戶

-p ????????????????????? #把組內的成員清空

groups ? #查看當前用戶的組

 

文件權限? r w x (和文件系統有關)

r,w權限對root無效,x有效

acl 訪問控制列表(對多個用戶或組單獨設置權限

 

小x:所有文件都可以加執行權限

大X:只對目錄和有執行權限的文件加執行權限

chmod ? ? who ? ? ? ? ? ?opt ? ? ? ? ? ? ? ? 文件名

u,g,o,a ? +,-,=?? r,w,x

例:chmod u=rw,g=r,o= 文件名

 

chown 更改文件所屬組

例: chown bin.ftp f1? 把f1所有者改為bin,所屬組改為ftp

其他:chown –reference f1 f2? 按照f1權限設置f2

chgrp 更改文件所屬組

 

目錄權限

x:可以進入目錄,基礎權限

r:列出目錄文件列表(需要x)

w:可以在目錄中建或刪除文件(需要x)

 

umask 影響用戶創建的文件或目錄的權限

目錄:777-umask

文件權限:666-umask=結果奇數位+1??? 或 666-(umask-1)

umask 266 設置umask為266

.bashrc 在文件中更改umask值

umask ?? -p輸出可被調用

-S模式方式顯示

文件中更改umask值:全局 /etc/bashrc 單用戶 ~/.bashrc

 

suid? 4(u s)? 覆蓋x權限? 權限號4????? #4777

只能作用在二進制程序,不能作用在腳本

用戶執行s權限的程序將繼承所有者的權限

sgid? 2(g s)

二進制程序:用戶執行s權限的程序將繼承所屬組的權限

作用在目錄:目錄下生成的新文件自動繼承目錄所屬組

對于目錄的suid和sgid,只能用 u-s,g-s 去掉

 

*sticky 1(o t)? #只作用在目錄才有意義

作用在目錄:不能刪除別人的文件

 

chattr +i/-i 文件名/目錄??? #文件/目錄將不可被更改、刪除、防止誤操作

+a/-a????????????? #只可以追加內容

+A/-A? ???????? #不更新讀時間

lsattr 文件/目錄 顯示特定屬性

 

ACL 系統中有沒有這個功能取決于文件系統

設置acl之后,g權限位置顯示的是mask權限

setfacl ?? -m u:用戶名:權限 文件名??? #u用戶 g組

group::權限????????? ? #更改文件所屬組權限

mask::權限

-x 同上??????????????? ? #刪除權限

-X 批量文件 文件名?? ? #批量刪除權限

-b 文件名??????????? ? #清空acl

-R

-M 權限文件 文件名? ? #文件中按照格式

-d #默認包含指定權限(新生成文件和舊)等同于d:

-k 目錄名 #刪除默認權限

getfacl 文件名? #查看文件權限

 

例子:備份恢復acl權限

getfacl -R html > html.acl

setfacl -R -b html

setfacl –restore html.acl

 

ACL權限生效順序

所有者,自定義用戶,所屬組|自定義組,其他

{???? 權限不能超過mask????? }

 

例:getfacl f1 | setfacl –set-file=- f2????????????? #f2按照f1的acl權限設置

setfacl -R –set-file=文件名 f2? ?????? #從文件中恢復權限

setfacl –set u::r,u:lqd:rw,g::r,o::- f2??? #對f2文件重新設置權限

 

mask 限定了自定義用戶和組的最高權限

##額外知識點##

pwunconv??? pwconv ??????????????????? #密碼存放轉換

auth –passalgo=sha256 –update???? #更改加密算法

echo 密碼 | passwd –stdin wang? ?#設置用戶密碼

批量創建賬號和修改密碼

newusers 文件名 #,文件內容格式按照passwd

cat 文件名 | chpasswd? 文件內容格式 用戶名:密碼

 

文本處理工具

cat -n 加行號

-b 加行號,空行不加? 等價于 nl

-A 顯示所有控制符

-s 壓縮連續空行為一行

-E 顯示結束符

-V win文本能看到^M

tac 反向顯示行

rev 反向顯示列

 

more 分頁顯示 到底退出 空格下翻 b上翻(管道不起作用)

less 分頁顯示 到底不退出

/文本 搜索文本

 

head 文件?? #默認讀取前十行

-n 3? 或者 -3???? #顯示前3行

-c3 取前3個字節

 

tail ???#默認讀取后十行

-f 跟蹤文件后10行 (常做觀察日志文件使用)

-f 文件 &? 在后臺監控文件后10行

-f 文件 -n0 &? #只顯示新增加的行并在后臺運行

-F 跟蹤文件后10行并監控文件名

tailf 等同于 tail -f #性能更好,文件不增長時不訪問文件

 

cut 剪切內容-以列為單位,默認tab作為分隔符

-d 指定分隔符

-f 指定列

例:? cut -d: -f1-3,7??? –output-delimiter=”分隔符” 文件

#以:作為分隔符取第1和3列?? ??? 更改顯示分隔符

例子:df | cut -c44-46? #取第44到46個字符

 

paste 將多個指定文件按行合并 默認分隔符為tab

-d’分隔符’? 指定合并后的分隔符

-s 把單個文件合并為一行,并把多個文件追加合并

 

wc?? 統計? 顯示格式: 行 單詞 字節

-l 行數

-w 單詞數

-L 最長行的字符數

 

sort 排序 默認第一列

-n 按數字從小到大排序

-r 倒序

-u 去重(去掉重復內容的行)

例子:sort -nr -t: -k1 /etc/passwd

 

uniq ????? -u 只顯示不重復的行

-c 顯示每行重復出現的次數

-d 只顯示重復的行

##額外知識點##

dd if=/dev/zero of=/boot/bigfile bs=1M count=500???? #創建指定大小的文件

inputfile ? ? ? ? ? outputfile ? ?blocksize ? ?大小

 

~tab鍵? 查看所有用戶

 

openssl rand -bash64 100 #生成100位隨機數

(超過100)

lsof | grep deleted ?#查看進程占用的已經刪除的文件(哪些文件被刪除 還沒有釋放空間)

批量創建文件

touch 參數有數量限制

echo f{1..500000}|xargs touch

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88615

(0)
oranixoranix
上一篇 2017-11-18
下一篇 2017-11-19

相關推薦

  • 文件管理

    一、文件系統     單根架構,根文件系統rootfs     不是linux大小寫敏感,而是文件系統支不支持大小寫。     路徑分割 /     FHS:目錄結構,文件分層標準  &nb…

    Linux干貨 2016-08-02
  • 練習正則表達式

        正則表達式可以通過元字符(規則)來匹配查找相關的的字符集合。他與通配符是有區別的。而且相關的使用工具對正則表示的元字符的是有區別的。     首先我們先來了解下常用的元字符及含義(并不是所有的元字符) 字符匹配       &nbs…

    Linux干貨 2015-04-15
  • 8-10 bash變量淺談

    8-10 作業 一、腳本 1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中 3、編寫腳本/root/bin/disk.…

    Linux干貨 2016-08-15
  • N28-第四周:正則表達式練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。
    2、編輯/etc/group文件,添加組hadoop。
    3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。
    4、復制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問權限。
    5、修改/home/hadoop目錄及其內部所有文件的屬主為hadoop,屬組為hadoop。
    6、顯示/proc/meminfo文件中以大寫或小寫S開頭的行;用兩種方式;
    7、顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶;
    8、顯示/etc/passwd文件中其默認shell為/bin/bash的用戶;
    9、找出/etc/passwd文件中的一位數或兩位數;
    10、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;
    11、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行;
    12、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行;
    13、添加用戶bash, testbash, basher, nologin (此一個用戶的shell為/sbin/nologin),而后找出當前系統上其用戶名和默認shell相同的用戶的信息;

    2017-12-24
  • 第一周的學習總結

       本人是Linux 小白,0基礎。加入馬幫開始Linux之旅。由于完全不懂Linux,所以在學習的過程中,每課都要看上2遍。接下來說說我第一周所學的內容。 首先是了解到了計算機基礎知識,計算機的組成部分、CPU架構類型、其他外圍設備。 操作系統基礎知識進程管理、內存管理、網絡管理、驅動管理、安全管理等。 Linux的起源、發行版以及構…

    Linux干貨 2016-02-28
  • Shell腳本編程 流程控制—循環

    循環:重復執行所指定的代碼片段,直到循環條件不滿足,則退出循環 一、for循環     語法格式:     for 變量名 in 列表     do         循環體     done &nbs…

    Linux干貨 2016-08-24
欧美性久久久久