03_Linux基礎-文件類型-主輔提示符-第1提示符-Linux命令-內外部命令-快捷鍵-改為英文編碼-3個時間-stat-其他基礎命令

03_Linux基礎-文件類型-主輔提示符-第1提示符-Linux命令-內外部命令-快捷鍵-改為英文編碼-3個時間-stat-{1..100}-du-cd-cp-file-mv-echo-id-shell-ln-env-set-which-rpm-/usr-/與/root-hostname-vim-cat-pwd-alias-unalias-ls-ASCII-wc-chmod

部落格🔗://blog.csdn.net/cpen_web


一. stat 與 ll

//		stat 與 ll 	stat 只能看自己。 ll能看文件夾下面的東西。
//		選項組合(不分先後順序)  如  ls  -Al  (2個功能一起顯示)
//		du  -sh	統計文件和文件夾大小
//		mkdir  -p	如果父目錄不存在,就新建
					如果文件夾存在,就不報錯
    				//	寫腳本經常用到
	  		  -v		給提醒(顯示已經創建成功)(沒什麼用)

stat 與 ll 與 ls -l -d

//		stat 與 ll 與 ls  -l  -d
			stat 只能看本身的文件資訊(文件夾本身)
			ll	能看文件夾下面的東西(文件夾裡面的)
			ls  -l  -d 只看它自己的詳細資訊 不看裡面的(文件夾本身)

image-20220310192151920

image-20220310192158823


二. 集合 {xx,xxx}

1條命令建多個文件夾

#註:關鍵點{}
//		mkdir  hunantv/{weishi,jingshi,dushi}		一條命令建多個文件夾
		在 China_voice路徑下建 hunantv文件夾下的 文件夾(hunantv在 China_voice下)
		{weishi,jingshi,dushi} 表示一個集合,有共同的上一級目錄

image-20220310191803814

		只建一個文件夾的時候,不能用 { } 括起來,{ } 會成為文件名。
//		一條命令完成(日常用的不多)	裡面有好幾級
		父目錄不存在時候  接 -p  選項

image-20220310191848767


三. {1..100}

#註:mkdir sc{1..100}
#註:rm  -rf  sc{1..100}
//		mkdir sc{1..100}	產生1到100的文件
		{1..100} 代表 1 到 100的集合 和前面的sc 組合
		mkdir  可以一次性建立多個  的功能
		//	rm  -rf  sc{1..100}
			rm  -rf  sc*  	2種都能刪
//		mandatory 命令的
		arguments 參數
//		mkdir  -p	如果父目錄不存在,就新建
					如果文件夾存在,就不報錯

image-20220310192017460

image-20220310192023763

//		mkdir  -v	給提醒

image-20220310192037604


四. du -sh

//		du  -sh  查看目錄大小
		命令  選項  參數

五. cd

//		cd  -  返回上一次所在的路徑
		cd  .  進入當前目錄
		cd  ..  返回到上一級目錄
		cd  ~  返回到當前用戶的家目錄
		cd 	   返回到當前用戶的家目錄
cd命令
用途:切換工作目錄(Change Directory)	
格式:cd  [目錄位置]
#註:特殊目錄 
.     當前目錄
..     上一級目錄
~     用戶主目錄(家目錄)
-     上一次所在的工作目錄(遙控器上的返回鍵)
//		useradd  xulilin  新建用戶
		cd  ~xulilin  進入xulilin這個用戶的家目錄
		[root@localhost xulilin]# pwd
		/home/xulilin
//		mkdir	新建目錄
		touch  qijian	新建空文件
		touch  hengshan/yilin.txt

六. cp -r

//		cp  /etc/hosts  songshan/	複製文件不接 -r
		cp  hengshan/  songsahn/  -r  複製文件夾接 -r

七. file

//		file  taishan  查看文件類型

八. 文件類型

//		經典文件類型:目錄		directory
					空文件		empty
					文本文件	text

image-20220310192555585

//		du  -sh  taishan/  查看文件大小
//		rm  -rf  tianshan/	  刪除

九. cp

//		cp	複製的時候:
		複製,粘貼,重命名一步到位(重命名要後面不存在)
		cp  a.txt  abc.txt (目錄下有2個文件 a.txt  abc.txt)
		cp  a.txt  songshan/feng.txt (複製到songshan下改名叫feng.txt)
		cp  hengshan/  songshan/nanyue_hs  -r(複製文件夾接-r)
			複製hengshan到songshan下 改名nanyue_hs

十. mv

//		mv	剪切,粘貼,重命名一步到位(重命名要後面不存在)
		mv  a.txt  hengshan/aaa.txt (剪切粘貼,重命名為aaa.txt)
		mv  songshan/  hengshan/shaolinshi (移動粘貼重命名為shaolinshi)
			移動重命名不需要接-r選項(與 cp 的不同點)

十一. 主輔提示符

//		主提示符
		[登錄用戶@主機名 工作目錄]
		輔助提示符
		#  $
 		[root@localhost xuxia]#
		[root@localhost wuxia]# 
		[xulilin@localhost ~]$ 
//		linux是一個多用戶多任務的作業系統
		root用戶家目錄  /root
		普通用戶家目錄	/home下面跟用戶名同名

十二. echo

//		echo  輸出  相當於print
		PS1 是linux系統里內置的一個變數,不需要我們定義

十三. 第1提示符

		第1提示符變數 PS1   prompt symbol 提示 符號 variable 變數

[\u@\h \W]$解釋

//		# echo $PS1		# 註:第一提示符
		[\u@\h \W]\$
		解釋:
		\u  引用當前的用戶  user
   		\u  the username of the current user
		\h  引用當前的主機名   hostname
		\W 引用當前工作的目錄的名字  working
		\$  當用戶為root的時候,就輸出#,如果不是root就是$符號
		\t  當前的時間

臨時修改PS1變數

//		# PS1='[\h@\u \t@\W]\$'  臨時修改PS1變數(沒必要改知道就行)	\t 當前的時間
[localhost@root 11:01:07@~]#
[localhost@xulilin 11:03:08@boot]$PS1='[\h#\u \t@\W]\$'
[localhost#xulilin 11:03:32@boot]$  // # 也可以

第1、2提示符

//		# echo  $PS1
		[\u@\h \W]\$
		# echo  $PS2   第2提示符
		>
//		一行沒輸完  會顯示第2提示符>(只是提醒的作用)

十四. $+變數名

		$PS1  $+變數名  引用某個變數
//		# echo  $PS1
		[\u@\h \W]\$
//		sg="tangliangfei"  定義一個變數sg 賦值tangliangfei 右邊賦值左邊
		echo $sg  輸出sg這個變數的值
		shell編程里引用變數需要接$+變數名
		Shell編程  linux里的命令編程
//		mv="liangly"
		echo $sg  $mv
		tangliangfei liangly  (都顯示)

十五. id

//		id  命令
		[root@localhost china_voice]# id  
		uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
		root用戶 uid 為0
		user id 用戶的編號 uid
		group id 組的編號  gid

十六. Linux命令

//		Linux命令
			用於實現某一類功能的指令或程式 
			命令的執行依賴於解釋器程式(例如:/bin/bash)
//		人 <——> bash <——> 內核 <——> 硬體
		bash  就是解釋器  相當於翻譯 C語言寫的 程式 工具
		Linux命令的分類
			內部命令:屬於Shell解釋器的一部分
			外部命令:獨立於Shell解釋器之外的程式文件
//		shell:是一類程式,用來解釋用戶輸入的命令,然後告訴內核去執行這些命令
			bsh
			sh
			csh
			bash
			ksh
		bash是最流行的shell--》幾乎所有的linux系統默認的shell都是bash

image-20220310194610950

人——BASH——kernel

image-20220310194628296

(大概了解)

十七. cat /etc/shells

//		cat /etc/shells  查看本機里有哪些shell
		/bin/sh   比較老的shell
		/bin/bash  
		/usr/bin/sh
		/usr/bin/bash
//		sh  敲sh,使用sh,沒有提示符,退出去 敲bash 或者 exit (父子進程)
//		切換shell  sh  和  bash  命令  exit

十八. ln -s

#註:鏈接文件 天藍色
//		ln  -s
		ln  創建鏈接文件(快捷方式)
		不要去刪除原文件,不然會導致鏈接文件不可用 (一閃一閃 冒紅)
		ln  -s  源文件  鏈接文件		ln  -s  xulilin  xll
		-s  symbol link 符號鏈接(軟鏈接 soft)
		# mkdir changsha
		# ln -s  changsha cs  
		# ll
		lrwxrwxrwx. 1 root root  8 9月  17 11:19 cs -> changsha 

十九. echo $SHELL

//		# echo $SHELL 查看linux系統里默認的shell
		/bin/bash

二十. env

//		# env  查看當前用戶的環境變數(linux系統里預先定義的變數)  environment
		當前用戶的很多進程都可以使用的變數
		環境變數--》全局變數

二一. set

		# set  查看所有的變數(自定義變數和環境變數)

二二. 內部外部命令

//		bash - GNU Bourne-Again SHell
		BASH_BUILTINS  builtin 內置(內部)  built in
		額外安裝的命令--》外部命令
		通過安裝bash這個程式就可以得到的命令--》bash的內部命令
		yum  install tree -y	tree命令是外部命令,需要額外安裝
		mkdir ip 外部命令  cd echo exit 內部命令

二三. which

//		which bash  			查看bash命令存放在哪裡
		/usr/bin/bash

二四. rpm

rpm -qf

#註:rpm -qf	查詢命令通過那個軟體包安裝過來的
#註:先用which 查看命令的絕對路徑
//		rpm -qf /usr/bin/bash  查詢/usr/bin/bash是通過哪個軟體包安裝過來的
		bash-4.4.19-10.el8.x86_64

rpm

//		rpm 是linux里的軟體管理的命令,例如安裝,卸載軟體
		-qf 	查詢文件是通過那個軟體安裝過來的
//		# which ip
		/usr/sbin/ip
		# rpm -qf /usr/sbin/ip
		iproute-5.3.0-1.el8.x86_64
//		bin  二進位 binary  

二五. /usr

#註:/usr	存放安裝軟體的目錄	unix system resource
//		/usr   是linux里存放安裝軟體的目錄   unix system resource  unix 系統資源
		相當於windows里的Program Files
//		鏈接文件 淺藍色
		正常文件 深藍色
//		/  根目錄
		/root   	 root用戶的家目錄
		/home/用戶名同名的目錄   普通用戶的家目錄

二六. / 與 /root關係

//		根目錄和root用戶的家目錄的關係?
		/root  在/目錄下,是包含關係
//		~ 代表家目錄,當你所在的文件夾的路徑是家目錄,就會顯示 ~
		普通用戶只能進自己家目錄,root用戶能進任何家目錄↓↓↓

進入其他用戶家目錄

[xulilin@localhost /]$ cd ~xulilin	# 註:普通用戶只能進自己家目錄
[xulilin@localhost ~]$ cd ~cali
-bash: cd: /home/cali: 許可權不夠
[xulilin@localhost ~]$ exit
註銷
[root@localhost ~]# cd  ~cali
[root@localhost cali]# pwd
/home/cali
[root@localhost cali]# 

二七. hostname

//		# hostname 查看主機名
		localhost.localdomain

臨時、永久修改主機名

臨時修改

//		# hostname  sanchuang-linux  臨時修改主機名(不能用下劃線_)
		接著重新登錄 su - root	(當前終端登錄)/ 或者重新建立一個連接(開一個終端登錄) 重啟後失效
//		為什麼要修改主機名?
			方便識別,區別不同的伺服器

永久修改

//*		永久修改主機名
		# vim  /etc/hostname  改這個文件,打個新名字。
		# cat  /etc/hostname 
		sanchuang-linux
		重啟後生效
//		reboot  重啟
//		不一定非得 虛擬機 登錄後 xshell才能登錄
//		提示符
			PS1	第一提示符
			PS2	第二提示符

二八. vim

//		vim編輯器的使用
		vim 是linux里的字元介面的文本編輯器 ——》記事本  只能寫文字
		安裝vim		yum   install  vim  -y
//		vim  sc.txt
		1.按字母鍵i進入輸入模式  insert
		2.輸入內容,可以是中文或者英文
		3.按ESC鍵,返回到命令模式  escape 離開,逃離
		4.輸入:wq  退出並且保存  write  quit
			  :q!  退出不保存
			  :q  退出(沒有修改可以退出)

二九. cat

//		# cat  sc.txt   查看文本文件里的內容

三十. 快捷鍵

//		快捷鍵
		//	ctrl + l
		//	ctrl + c	強行終止命令  # ^ C
				比如 ping  www.baidu.com  ctrl + c
		//	tab	補齊命令  # mkd (之後按2下tab鍵)mkd開頭的命令都列出來了
				補齊路徑  # mkdir wang 唯一性就直接補齊  否則敲兩下 列出wang…
				能識別唯一性的時候,按一次tab鍵
				不能識別唯一性的時候,需要按2次,然後自己輸入
		// 上下方向鍵,可以調用以前使用過的命令

三一. pwd

//		pwd  查看工作目錄
		cd    切換工作目錄
		cd  ~ (cd) 進入用戶家目錄
		cd  -	返回上一次目錄
		cd  ~  liangluyao  進入liangluyao家目錄
		cd  ..  返回上一級目錄

三二. 別名

//		ll  是 ls  -l  --color=auto的別名
//		# alias  查看linux里有哪些定義好的別名
//		# alias  c=clear  臨時定義c是clear的別名
		clear 是linux系統里的命令  命令有選項的 要同』 』 (單引號)引起來 
		再開啟一個終端 就沒效了 臨時定義
		c是自定義的名字,定義別名的時候,不要和系統里已經存在的命令衝突

取消別名

//		unalias	取消別名
		# alias mkdir=ls
		# unalias  mkdir  取消別名

永久修改別名

//		# vim  /root/.bashrc  永久修改別名,需要重新登陸,或者su切換用戶到root
		.bashrc 是一個隱藏文件  按i進去 進行別名定義——》ESC  :wq

三三. ls

//		ls命令
		用途:列表(List)顯示目錄內容 
		格式:ls  [選項]...  [目錄或文件名]
        常用命令選項
        -l :以長格式顯示
        -d:顯示目錄本身的屬性
        -t: 按文件修改時間進行排序
        -r :將目錄的內容清單以英文字母順序的逆序顯示
        -a:顯示所有子目錄和文件的資訊,包括隱藏文件
        -A:類似於「-a」,但不顯示「.」和「..」目錄的資訊
        -h:以更易讀的位元組單位(K、M等)顯示資訊
        	//  必須和 -l 一起用
        	-h, --human-readable
    			with -l and -s, print sizes like 1K 234M 2G etc.
        -R:遞歸顯示內容
        	一層一層顯示,作用遠遠不及 tree好,很繁瑣
//		ls	查看當前 目錄
        ls  /boot  查看/boot 下目錄
        ls  -l  -d  /boot  只顯示本身的文件夾資訊 ls -ld / ls -dl
        ls  -t  時間  文件修改時間排序
        ls  -r  英文字母 逆序顯示
        ls  -l  -h  /boot  顯示/boot的各個文件的大小
        		-h  必須和  -l  一起用  顯示大小 K M G

\ls -l

//		\ls  -l  不顯示列出的文件類型顏色

ls -l |grep “^d”

//		# ls  -l|grep  "^d"  
		解釋如下
//		| 管道符號: 進程和進程之間通訊的一種方式
		作用:將前面一個命令的輸出送給後面一個命令作為輸入
			中間商,借花獻佛,提籃子
//		grep :文本過濾的命令
			會根據匹配的字元串去過濾,顯示出匹配內容的行

//		^d  表示以d開頭的行
//		# ll|grep "txt"
        -rw-r--r--. 1 root root  0 9月  17 15:58 a.txt
        -rw-r--r--. 1 root root  0 9月  17 16:02 sc10.txt
        # ll|grep "^d"
        drwxr-xr-x. 5 root root 48 9月  17 09:51 hunantv
        drwxr-xr-x. 4 root root 42 9月  17 09:54 jiangsutv
        # ll|grep "^-"
        -rw-r--r--. 1 root root  0 9月  17 15:58 a.txt
        -rw-r--r--. 1 root root  0 9月  17 16:02 sc10.txt
        # ll|grep "^-"|wc -l
        11

三四. ASCII

//		ASCII  美國資訊交換標準程式碼
		數字、大寫字母、小寫字母 ASCII碼值 小——》大
//		一個位元組=8位
		101010101
//		man  ls  ——》/-h  查找 -h
//		# man ls
            回車:一行一行的往下走
            /-h  查找包含-h的行
            n   查找下一個 next
            N   查找上一個   next
            q   退出	

三五. 文件類型

//		文件類型		縮寫		應用
        常規文件	    -		 保存數據
        目錄 	    	  d		  存放文件  directory
        符號鏈接文件 	   l		指向其它文件  link
        字元設備文件	   c		character  --》與字元顯示相關的文件
        塊設備文件		b		 block -->存放數據的塊文件
        s 	socket文件
        p 	管道文件 pipe

三六. 「drwxr-xr-x. 5 root root 48 9月 17 09:51 hunantv」解釋

//		[root@sanchuang-linux china_voice]# ls  -l
		總用量 0
		drwxr-xr-x. 5 root root 48 9月  17 09:51 hunantv
            d 代表文件類型  directory 目錄
            rwxr-xr-x 許可權  r 讀 read   w寫 write   x 執行 execute
            . 和selinux許可權相關
            5 文件的鏈接數
            root  用戶 
            root  組
            48  文件大小
            9月  17 09:51  文件的創建時間

三七. wc

//		wc 是一個統計命令,可以統計文件里有多少行,多少單詞,多少位元組
			-l 統計行數  lines
		wc  -l  統計行數

不顯示文件名

//# wc -l  a.txt  (wc  -l 也可以統計文件的行數) 直接統計會顯示文件名
	3 a.txt
//# cat a.txt |wc -l (cat管道傳給wc 不會顯示文件名)
	3
		//# cat /etc/passwd|wc -l
			27
//# cat /etc/passwd|grep "liang"
    liangluyao:x:1001:1001::/home/liangluyao:/bin/bash
    liangluyao2:x:1002:1002::/home/liangluyao2:/bin/bash
    # cat /etc/passwd|grep "root"
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

練習

//		1.統計出/dev目錄下有多少字元設備文件
		 ll  /dev|grep 「^c」|wc  -l
		2.統計出/dev目錄下有多少塊設備文件
		 ll  /dev|grep 「^b」|wc  -l
        3.統計/etc/目錄下有多少文件夾和普通的文件
         ll  /dev|grep 「^-」|wc  -l  文件
         ll  /dev|grep 「^d」|wc  -l	文件夾
         ll  -R  /etc|grep 「^-」|wc  -l	統計/etc和子文件夾下的所有普通文件 更徹底(包含子目錄下)
         ll  -R  /etc|grep 「^d」|wc  -l	統計/etc和子文件夾下的所有文件夾  更徹底(包含子目錄下)
        4.統計/etc/ssh/sshd_config文件有多少行
		     cat  /etc/ssh/sshd_config  |wc  -l
//		統計文件夾里有多少文件
    	ll  |  grep  wc 
//		統計文件有多少行
	    cat   |  wc

三八. du

//		du  統計目錄及文件的空間佔用情況  disk  usage(估算值,並不是很準確)
        *du  -sh  統計匯總的大小(常用)黃金組合
            -s
              -s, --summarize 匯總的大小
                      display only a total for each argument
            -h  
             -h, --human-readable
                      print sizes in human readable format (e.g., 1K 234M 2G)
            -a 統計文件和文件夾
                 -a, --all
              write counts for all files, not just directories

du -sh 與 ll -h 區別

        du  -sh  /boot
        ll  -h  /boot
//		# ll  -h  /boot  只能統計文件的大小,文件夾里的所有的文件不會匯總
        總用量 134M
        du  -sh	可以匯總
        ll  -h 就是你文件裡面有多少個單詞 多少個字元
        # du -sh /boot
        140M	/boot
        # ll -h  -d /boot
        dr-xr-xr-x. 6 root root 4.0K 9月  13 14:38 /boot
//		英文字母,數字 佔1個位元組
        中文字母:utf8編碼   3個位元組
        ll  -h 統計的是一個文件里有多少字元
			 統計文件裡面文字的位元組數
		du  統計佔用多少塊
			統計文件存放在磁碟上消耗了多少個塊
//		1個塊的大小就是4096 (4K)

image-20220311071612898

//		touch	新建空文件
				更新時間
//		stat  host  查看三個時間
        最近訪問
        最近更改
        最近改動

三九. 改為英文編碼

//		改為英文編碼
        # LANG=en_US.UTF8
        # ll hosts 
        -rw-r--r--. 1 root root 158 Sep 17 16:57 hosts

四十. 3個時間

# stat hosts 
  File: hosts
  Size: 158       	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 17162314    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-09-17 16:57:57.748799777 +0800
Modify: 2020-09-17 16:57:57.748799777 +0800
Change: 2020-09-17 16:57:57.748799777 +0800
 Birth: -
	時間:	
		訪問時間  access time  --》atime     打開這個文件  cat
		修改時間  modify time  --》mtime    修改裡面的內容,增加,刪除內容等  vim
		更改時間  change time  --》ctime    更改了文件的屬性(名字,許可權,大小,時間,用戶,組)
		精確到納秒
		touch  hosts	三個時間都更新(都改了)

四一. chmod

//		chmod 修改許可權  change  mode 
			chmod  a+w  hosts

image-20220311072045096

		chown 修改屬主和屬組  change  owner

image-20220311072106068

		vim  hosts  輸入  :wq  修改數據
//		+0800 表示東八區  中國的上海,北京 
		烏魯木齊  東六區
//		# cp /etc/passwd  .  將/etc/passwd複製到當前目錄
		現在我們敲的cp,都是 cp  -i ,cp是別名
        # alias
        alias c='clear'
        alias cp='cp -i'
 		 -i, --interactive 互動式
              prompt before overwrite (overrides a previous -n option)

四二. cp的時候覆蓋文件,不給予提醒的方法

//		cp的時候覆蓋文件,不給與提醒的方法
		1.取消別名  --》不推薦
			# unalias cp
		2.使用cp命令的絕對路徑  --》推薦
		  # which  cp
			alias cp='cp -i'
			  /usr/bin/cp
			# /usr/bin/cp  feng  changsha/ -r
			# /usr/bin/cp  feng  changsha/ -r  再次複製 覆蓋不給提醒

Tags: