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: