mycpen

Mycpen

记录学习历程与受益知识
github
telegram
bilibili

03_Linux基础-文件类型-主辅提示符-第1提示符-3个时间-stat-其他基础命令

一. 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  再次复制 覆盖不给提醒

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。