在linux中,絕大多數命令都參照 命令 選項 參數node
選項:適用於調整命令的功能的python
參數:指的是命令的操做對象,若是省略參數,是因爲有默認參數的linux
ls 顯示目錄下的內容git
# ls [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog # ls --color=never 不顯示顏色的顯示目錄下的文件名 [root@localhost ~]# ls --color=never anaconda-ks.cfg install.log install.log.syslog # ls -a 顯示全部文件(包含隱藏文件) [root@localhost ~]# ls -a . .. anaconda-ks.cfg .bash_logout .bash_profile .bashrc .cshrc install.log install.log.syslog .pki .tcshrc # ls -l 以長格式顯示文件 [root@localhost ~]# ls -l 總用量 16 -rw-------. 1 root root 1098 6月 8 19:38 anaconda-ks.cfg -rw-r--r--. 1 root root 8025 6月 8 19:38 install.log -rw-r--r--. 1 root root 3384 6月 8 19:38 install.log.syslog # ls -d 只顯示目錄 [root@localhost ~]# ls -l 總用量 16 -rw-------. 1 root root 1098 6月 8 19:38 anaconda-ks.cfg -rw-r--r--. 1 root root 8025 6月 8 19:38 install.log -rw-r--r--. 1 root root 3384 6月 8 19:38 install.log.syslog # ls -i 查看inode節點號 [root@localhost ~]# ls -i 260965 anaconda-ks.cfg 260611 install.log 260612 install.log.syslog
cd 切換所在目錄正則表達式
# cd [root@localhost ~]# cd /tmp/ [root@localhost tmp]# # 進入相對路徑 [root@localhost /]# cd /tmp/ [root@localhost tmp]# cd ../etc/yum.repos.d/ # 進入絕對路徑 [root@localhost yum.repos.d]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ll 總用量 36 drwxr-xr-x. 2 root root 4096 6月 8 19:58 backup -rw-r--r--. 1 root root 1991 3月 28 2017 CentOS-Base.repo -rw-r--r--. 1 root root 647 3月 28 2017 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 289 3月 28 2017 CentOS-fasttrack.repo -rw-r--r--. 1 root root 630 3月 28 2017 CentOS-Media.repo -rw-r--r--. 1 root root 7989 3月 28 2017 CentOS-Vault.repo -rw-r--r--. 1 root root 957 11月 5 2012 epel.repo -rw-r--r--. 1 root root 1056 11月 5 2012 epel-testing.repo # cd - 返回上次所在目錄 [root@localhost yum.repos.d]# pwd /etc/yum.repos.d [root@localhost yum.repos.d]# cd / [root@localhost /]# cd - /etc/yum.repos.d [root@localhost yum.repos.d]# # cd ~ 進入當前用戶的家目錄 [root@localhost yum.repos.d]# cd ~ [root@localhost ~]# # cd .. 進入上一級目錄 [root@localhost ~]# cd /tmp/ [root@localhost tmp]# pwd /tmp [root@localhost tmp]# cd .. [root@localhost /]# pwd /
pwd 顯示當前所在目錄shell
# pwd [root@localhost yum.repos.d]# pwd /etc/yum.repos.d
mkdir 建立目錄數據庫
# mkdir [root@localhost ~]# mkdir tmp [root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog tmp # mkdir -p 遞歸建立目錄 [root@localhost ~]# mkdir -p a/b/c/d [root@localhost ~]# tree a a └── b └── c └── d 3 directories, 0 files
rmdir 刪除目錄,只能刪除空目錄apache
# rmdir [root@localhost ~]# rmdir d
rm -rf 刪除文件和目錄vim
# -r 遞歸,刪除目錄 # -f 強制 [root@localhost ~]# ls a anaconda-ks.cfg install.log install.log.syslog [root@localhost ~]# rm -rf a [root@localhost ~]# ll 總用量 16 -rw-------. 1 root root 1098 6月 8 19:38 anaconda-ks.cfg -rw-r--r--. 1 root root 8025 6月 8 19:38 install.log -rw-r--r--. 1 root root 3384 6月 8 19:38 install.log.syslog
tree 目錄名顯示指定目錄下全部內容的目錄樹centos
# tree [root@localhost ~]# tree /etc/yum.repos.d/ /etc/yum.repos.d/ ├── backup ├── CentOS-Base.repo ├── CentOS-Debuginfo.repo ├── CentOS-fasttrack.repo ├── CentOS-Media.repo ├── CentOS-Vault.repo ├── epel.repo └── epel-testing.repo
touch 建立空文件或者修改文件最後一次訪問時間
# touch [root@localhost tmp]# touch replaceContent.py [root@localhost tmp]# ls replaceContent.py yum.log # 這裏須要注意的是:任何操做系統都不容許建立同名的文件和目錄
cat 查看文件
# cat [root@localhost ~]# cat install.log 安裝 libgcc-4.4.7-18.el6.x86_64 warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 安裝 setup-2.8.14-23.el6.noarch 安裝 filesystem-2.4.30-3.el6.x86_64 ...... # cat -n 顯示行號 [root@localhost ~]# cat -n install.log 1 安裝 libgcc-4.4.7-18.el6.x86_64 2 warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 3 安裝 setup-2.8.14-23.el6.noarch ......
more 分屏顯示文件內容
# more b返回上一頁,空格進入下一頁 [root@localhost ~]# more install.log 安裝 libgcc-4.4.7-18.el6.x86_64 warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 安裝 setup-2.8.14-23.el6.noarch 安裝 filesystem-2.4.30-3.el6.x86_64
less 分行顯示文件內容
# less 上下箭頭分頁 [root@localhost ~]# less install.log 安裝 libgcc-4.4.7-18.el6.x86_64 warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 安裝 setup-2.8.14-23.el6.noarch
head 顯示文件頭,默認是10行
# head [root@localhost ~]# head install.log 安裝 libgcc-4.4.7-18.el6.x86_64 warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 安裝 setup-2.8.14-23.el6.noarch 安裝 filesystem-2.4.30-3.el6.x86_64 安裝 basesystem-10.0-4.el6.noarch 安裝 ncurses-base-5.7-4.20090207.el6.x86_64 安裝 kernel-firmware-2.6.32-696.el6.noarch 安裝 tzdata-2016j-1.el6.noarch 安裝 glibc-common-2.12-1.209.el6.x86_64 安裝 nss-softokn-freebl-3.14.3-23.3.el6_8.x86_64 # head -n number 只顯示Number行 [root@localhost ~]# head -n 5 install.log 安裝 libgcc-4.4.7-18.el6.x86_64 warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 安裝 setup-2.8.14-23.el6.noarch 安裝 filesystem-2.4.30-3.el6.x86_64 安裝 basesystem-10.0-4.el6.noarch
tail 顯示文件尾
# tail 默認是文件的最後10行 [root@localhost ~]# tail install.log 安裝 efibootmgr-0.5.4-15.el6.x86_64 安裝 sudo-1.8.6p3-27.el6.x86_64 安裝 audit-2.4.5-6.el6.x86_64 安裝 e2fsprogs-1.41.12-23.el6.x86_64 安裝 xfsprogs-3.1.1-20.el6.x86_64 安裝 acl-2.2.49-7.el6.x86_64 安裝 attr-2.4.44-7.el6.x86_64 安裝 bridge-utils-1.2-10.el6.x86_64 安裝 rootfiles-8.1-6.1.el6.noarch *** FINISHED INSTALLING PACKAGES ***[root@localhost ~]# # tail -n number 只顯示文件尾部number行 [root@localhost ~]# tail -n 3 install.log 安裝 bridge-utils-1.2-10.el6.x86_64 安裝 rootfiles-8.1-6.1.el6.noarch *** FINISHED INSTALLING PACKAGES ***[root@localhost ~]# # tailf 監聽文件,用於監聽實時日誌 [root@localhost ~]# touch 1.txt [root@localhost ~]# tailf 1.txt 11111
cp 拷貝文件
cp -r 複製目錄 cp -p 連帶文件屬性複製 cp -d 若源文件是連接文件,那麼複製連接屬性 cp -a 至關於cp -rpd
mv 移動文件或者重命名文件
mv 源文件 目標地址 mv 源文件 目標文件
ln 連接文件
在linux文件中分爲硬連接文件和軟鏈接文件 硬連接文件: 1.擁有相同的i節點和存儲block塊,能夠看作是同一個文件。修改一個文件,另外一個文件也會發生改變,刪除其中一個,另外一個文件還能打開 2.能夠經過i節點識別 3.不能跨分區 4.不能針對目錄使用 a.硬連接不能鏈接目錄 b.硬連接不能跨分區 軟鏈接文件: 1.相似Windows快捷方式 2.軟鏈接擁有本身的i節點和block塊,可是數據中只保存原文件名和i節點號,並無實際的文件數據,軟鏈接目錄大小不變 3.lrwxrwxrwx是軟鏈接 a.軟鏈接文件都是777 b.軟鏈接的最大權限是假的,不影響實際訪問,源文件受限制權限 4.刪除任意文件,另外一個都改變 5.刪除源文件,軟鏈接不能使用會報錯,紅點閃爍 ln -s 源文件 目標文件 文件名必需要寫絕對路徑 軟鏈接須要絕對路徑,不容許使用相對路徑 建立軟鏈接的緣由,照顧管理員的使用習慣,照顧版本升級須要
權限位
[root@localhost ~]# ll /etc 總用量 1208 -rw-r--r--. 1 root root 16 6月 8 19:38 adjtime -rw-r--r--. 1 root root 1512 1月 12 2010 aliases -rw-r--r--. 1 root root 12288 6月 8 19:40 aliases.db drwxr-xr-x. 2 root root 4096 6月 8 20:11 alternatives 從redhat6更新的,第11位表明這個文件被SELinux所保護,權限位是10位,第1位表明文件類型: - 普通文件 d 目錄文件 l 連接文件 b 塊設備文件 c 字符設備文件 s 套接字文件 p 管道
chmod 修改權限
權限 644 標準的讀寫權限 755 標準的執行權限 777 最大權限 在服務器禁止出現777權限,除了系統自帶的目錄,不能手工更改apache權限,只須要把網頁目錄的全部者改爲apache的管理員身份就能夠了
權限的意義
1.權限對文件的意義 r:讀取文件的內容 more/cat/less/tail w:編輯、如今、修改文件內容,不包括刪除文件 vi/echo r:可執行 對於文件來講:執行權限是最高權限 2.權限對目錄的意義 r:能夠查詢目錄下的文件名 ls w:具備修改目錄結構的權限。如新增文件和目錄,刪除此目錄下的文件,重命名等操做 touch rm mv cp x:能夠進入目錄 對於目錄來講:寫權限纔是最高權限,寫權限要當心賦予
chown 改變全部者和所屬組
# chown [root@host-10-200-137-195 ~]# ll total 8 -rw-r--r-- 1 root root 856 Jun 2 19:33 client.py drwxr-xr-x 2 root root 6 Jun 6 11:16 root -rw-r--r-- 1 root root 1024 Jun 2 19:26 server.py [root@host-10-200-137-195 ~]# useradd xiao useradd: user 'xiao' already exists [root@host-10-200-137-195 ~]# chown xiao:xiao server.py [root@host-10-200-137-195 ~]# ll total 8 -rw-r--r-- 1 root root 856 Jun 2 19:33 client.py drwxr-xr-x 2 root root 6 Jun 6 11:16 root -rw-r--r-- 1 xiao xiao 1024 Jun 2 19:26 server.py
chrgp 所屬組 文件名
which 查找命令的命令,能看到相關別名
# which [root@localhost ~]# which vi alias vi='vim' /usr/bin/vim # 實際上也至關因而查詢別名的操做
whereis 查詢命令的命令,以及幫助文檔的路徑
# whereis [root@localhost ~]# whereis vi vi: /bin/vi /usr/share/man/man1/vi.1.gz 和which相同點: 能夠查找出命令的絕對路徑 和which不一樣點: whereis能夠列出幫助文檔的存放位置,而which能夠查詢命令的別名
locate 按照文件名查找 按照數據庫查找
# locate # 這個命令在centos6中有,在centos7中須要安裝mlocate,而後初始化數據庫updatedb [root@localhost ~]# locate inittab /etc/inittab /usr/share/man/man5/inittab.5.gz /usr/share/vim/vim74/syntax/inittab.vim 優勢: 在後臺創建數據庫/var/lib/mlocate,記錄當前系統的文件名,按數據庫查找 耗費資源最小,速度快 第一次更新數據量比較慢 更新數據庫命令:updatedb 配置文件所在位置:/etc/updatedb.conf # locate -i 不區分大小寫查找 [root@localhost ~]# touch ABC.CONF [root@localhost ~]# touch abc.conf [root@localhost ~]# updatedb [root@localhost ~]# locate abc.conf -i /root/ABC.CONF /root/abc.conf # 配置文件內容 [root@localhost ~]# more /etc/updatedb.conf PRUNE_BIND_MOUNTS = "yes" PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpf s hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpf s ubifs udf usbfs" PRUNENAMES = ".git .hg .svn" PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp" PRUNE_BIND_MOUNTS 配置文件生效
man 查看命令的幫助
find
# find 文件搜索命令(掃描整個根,文件越多,硬盤越大,速度越慢) 按照文件名去查找 [root@localhost ~]# find /etc -name init # 在/etc目錄下搜索init的文件(多一個字符都不行) /etc/sysconfig/init /etc/init [root@localhost ~]# find /etc -name *init* # 在/etc的目錄下搜索包含init的文件,*是通配符 /etc/init.conf /etc/sysconfig/network-scripts/init.ipv6-global /etc/sysconfig/init /etc/inittab /etc/rc.sysinit /etc/rc.d/rc.sysinit /etc/rc.d/init.d /etc/pam.d/run_init /etc/init.d /etc/init /etc/init/init-system-dbus.conf /etc/iscsi/initiatorname.iscsi /etc/selinux/targeted/contexts/initrc_context /etc/security/namespace.init [root@localhost ~]# find /etc -name init? # ?表明單個字符 -iname是不去扥大小寫的 [root@localhost ~]# find /etc -name init??? /etc/inittab 按照時間查找 [root@localhost ~]# find /etc -cmin -5 # 在/etc下查找5分鐘被修改過屬性的文件和目錄 超過5分鐘用+ /etc /etc/cron.daily /etc/cron.daily/makewhatis.cron /etc/man.config 按照大小查找 find / -size +27k 按照全部者和所屬組查找 [root@localhost ~]# find / -user xiao [root@localhost ~]# find / -group xiao 根據i節點查找 [root@localhost ~]# ll -i 總用量 20 260617 -rw-r--r--. 1 root root 6 6月 10 23:05 1.txt 260971 -rw-r--r--. 1 root root 0 6月 11 01:53 abc.conf 260970 -rw-r--r--. 1 root root 0 6月 11 01:53 ABC.CONF 260965 -rw-------. 1 root root 1098 6月 8 19:38 anaconda-ks.cfg 260611 -rw-r--r--. 1 root root 8025 6月 8 19:38 install.log 260612 -rw-r--r--. 1 root root 3384 6月 8 19:38 install.log.syslog [root@localhost ~]# find . -inum 260617 ./1.txt find /etc –size +80M –a –size -100M # 在/etc的目錄下查找大於80MB小於100MB的文件 -a表示邏輯與and 兩個條件都成立 -o表示邏輯或or 兩個條件成立一個都執行
grep 在文件內容中搜索字符串匹配的行並輸出
# grep -i[指定字符串] 文件名 輸出包含指定字符串的行 [root@localhost ~]# grep -i 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin # grep -v [指定字符串] 文件名 輸出不包含指定字符串的行 [root@localhost ~]# cat 1.txt 1 2 3 4 5 [root@localhost ~]# grep -v 2 1.txt 1 3 4 5 find和grep的區別: find:在系統中搜索符合條件的文件名,若是須要匹配,使用通配符匹配,通配符是徹底匹配的,find不支持文本劉操做,不支持管道符。 grep:在文件內容中搜索負責條件的字符串的行並輸出,若是須要匹配,使用正則表達式,正則表達式是包含匹配。管道符是文本流。
netstat 查看系統網絡狀態
netstat [選項] -t tcp端口 -u udp端口 -l 監聽 -n 以IP和端口號顯示,而不是主機名和協議名 # netstat -tln [root@localhost ~]# netstat -tl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN [root@localhost ~]# netstat -tln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN
w 查詢當前登陸服務器的全部用戶
# w [root@localhost ~]# w 02:16:55 up 3:47, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 22:30 3:44m 0.09s 0.09s -bash root pts/0 192.168.190.1 22:32 0.00s 0.50s 0.04s w 其中第一行: 02:16:55 up 表明開機時間 3:47 表明登陸時間 2 users 表明當前有幾個用戶登陸 load average: 0.00, 0.00, 0.00 表明1/5/12分鐘前的平均壓力值 第二行: USER 表明用戶名 TTY 登陸終端 IP 登陸的IP LOGIN@ 登陸的持續時間 IDLE idle用戶的閒置時間 JCPU 全部進程佔用CPU時間 PCPU 當前進程佔用CPU時間 WHAT 正在執行什麼操做
登陸終端: tty1-tty6 字符終端 tty7 圖形終端 pts/0-255 遠程終端
who 查詢登陸用戶
# who [root@localhost ~]# who root tty1 2018-06-10 22:30 root pts/0 2018-06-10 22:32 (192.168.190.1) 登陸用戶名 登陸終端 登陸時間 登陸的主機IP地址
last 列出登陸系統的相關信息
# last [root@localhost ~]# last root pts/1 192.168.190.1 Sun Jun 10 23:05 - 01:39 (02:33) root pts/0 192.168.190.1 Sun Jun 10 22:32 still logged in root tty1 Sun Jun 10 22:30 still logged in reboot system boot 2.6.32-696.el6.x Sun Jun 10 22:29 - 02:22 (03:52) root pts/0 192.168.190.1 Fri Jun 8 20:01 - crash (2+02:28) root tty1 Fri Jun 8 19:41 - crash (2+02:48) reboot system boot 2.6.32-696.el6.x Fri Jun 8 19:40 - 02:22 (2+06:42) wtmp begins Fri Jun 8 19:40:12 2018 # 全部登陸信息都在/var/run/utmp下,可是是不能修改的
ifconfig 查看本機網絡信息
全部系統常見服務都在/etc/services下
關機重啓命令
# sync 數據同步,把內存中數據強制保存到硬盤裏 # 關機命令 1.shutdown -h now 2.init 0 3.halt 3.poweroff # 重啓命令 1.shutdown -r now 2.reboot 3.init 6
linux中系統運行級別
0 關機 1 單用戶 2 不徹底多用戶,不含NFS服務 3 徹底多用戶 4 未分配 5 圖形界面 6 重啓
掛載命令
# mount linux中全部存儲設備都必須掛載使用,包括硬盤 # mount -l 查詢系統中已經掛載的設備,-l會顯示卷標名稱 [root@localhost ~]# mount -l /dev/mapper/VolGroup-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) # mount -a 檢測/etc/fstab的內容,自動掛載 在這裏,若是掛載的是U盤或者光盤,若是下次開機沒有放入,那麼系統就不會啓動 因此須要mount -a 檢查下文件內容是否出錯 # mount [-t 文件系統] [-l 卷標名] [-o 特殊選項] 設備文件名掛載 選項: -t 文件系統 ext3/ext4/iso9660 -l 卷標名 掛載指定卷標的分區,而不是安裝設備文件名掛載 -o 特殊選項,能夠指定掛載的額外選項,好比讀寫權限、同步異步等,如不制定默認值生效 # dumpe2fs 查看分區的詳細信息 [root@localhost ~]# dumpe2fs -h /dev/sda1