03_Linux 基础 - 文件类型 - 主辅提示符 - 第 1 提示符 -Linux 命令 - 内外部命令 - 快捷键 - 改为英文编码 -3 个时间 -stat- 其他基础命令
作者:mycpen
- 2022 年 9 月 02 日 江苏
本文字数:9089 字
阅读完需:约 30 分钟
title: 03_Linux 基础-文件类型-主辅提示符-第 1 提示符-3 个时间-stat-其他基础命令 date: 2022-08-28 02:01:00updated: 2022-08-28 02:03:01thumbnail: /images/logo/linux-logo.pngtags: - Linuxcategory: - Linuxmathjax: truetoc: true
摘要:博客迁移 https://blog.csdn.net/cpen_web → 本站
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
博客🔗:https://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 只看它自己的详细信息 不看里面的(文件夹本身)
复制代码
二. 集合 {xx,xxx}
1 条命令建多个文件夹
#注:关键点{}// mkdir hunantv/{weishi,jingshi,dushi} 一条命令建多个文件夹 在 China_voice路径下建 hunantv文件夹下的 文件夹(hunantv在 China_voice下)
复制代码
{weishi,jingshi,dushi} 表示一个集合,有共同的上一级目录
复制代码
只建一个文件夹的时候,不能用 { } 括起来,{ } 会成为文件名。// 一条命令完成(日常用的不多) 里面有好几级 父目录不存在时候 接 -p 选项
复制代码
三. {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 如果父目录不存在,就新建 如果文件夹存在,就不报错
复制代码
// mkdir -v 给提醒
复制代码
四. 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
复制代码
// 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
复制代码
人——BASH——kernel
复制代码
(大概了解)
复制代码
十七. 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)
复制代码
// 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 fileDevice: fd00h/64768d Inode: 17162314 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Context: unconfined_u:object_r:default_t:s0Access: 2020-09-17 16:57:57.748799777 +0800Modify: 2020-09-17 16:57:57.748799777 +0800Change: 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
复制代码
chown 修改属主和属组 change owner
复制代码
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 再次复制 覆盖不给提醒
复制代码
划线
评论
复制
发布于: 刚刚阅读数: 3
版权声明: 本文为 InfoQ 作者【mycpen】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb0a0742b8f6bbf885411e03f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
mycpen
关注
还未添加个人签名 2020.12.08 加入
还未添加个人简介









评论