// stat 与 ll stat 只能看本人。ll 能看文件夹上面的货色。// 选项组合(不分先后顺序)如 ls -Al(2 个性能一起显示)// du -sh 统计文件和文件夹大小
// mkdir -p 如果父目录不存在,就新建
如果文件夹存在,就不报错
// 写脚本常常用到
-v 给揭示(显示曾经创立胜利)(没什么用)
// stat 与 ll 与 ls -l -d
stat 只能看自身的文件信息(文件夹自身)ll 能看文件夹上面的货色(文件夹外面的)ls -l -d 只看它本人的详细信息 不看外面的(文件夹自身)
# 注:关键点 {}
// mkdir hunantv/{weishi,jingshi,dushi} 一条命令建多个文件夹
在 China_voice 门路下建 hunantv 文件夹下的 文件夹(hunantv 在 China_voice 下)
{weishi,jingshi,dushi} 示意一个汇合,有独特的上一级目录
只建一个文件夹的时候,不能用 {} 括起来,{} 会成为文件名。// 一条命令实现(日常用的不多)外面有好几级
父目录不存在时候 接 -p 选项
# 注: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 查看目录大小
命令 选项 参数
// 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 /etc/hosts songshan/ 复制文件不接 -r
cp hengshan/ songsahn/ -r 复制文件夹接 -r
// file taishan 查看文件类型
// 经典文件类型:目录 directory
空文件 empty
文本文件 text
// du -sh taishan/ 查看文件大小
// rm -rf tianshan/ 删除
// 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 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 输入 相当于 print
PS1 是 linux 零碎里内置的一个变量,不须要咱们定义
第 1 提示符变量 PS1 prompt symbol 提醒 符号 variable 变量
// # echo $PS1 # 注:第一提示符
[\u@\h \W]\$
解释:\u 援用以后的用户 user
\u the username of the current user
\h 援用以后的主机名 hostname
\W 援用当前工作的目录的名字 working
\$ 当用户为 root 的时候,就输入 #, 如果不是 root 就是 $ 符号
\t 以后的工夫
// # 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]$ // # 也能够
// # 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 命令
[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 命令
用于实现某一类性能的指令或程序
命令的执行依赖于解释器程序(例如:/bin/bash)// 人 <——> bash <——> 内核 <——> 硬件
bash 就是解释器 相当于翻译 C 语言写的 程序 工具
Linux 命令的分类
外部命令:属于 Shell 解释器的一部分
外部命令:独立于 Shell 解释器之外的程序文件
// shell:是一类程序,用来解释用户输出的命令,而后通知内核去执行这些命令
bsh
sh
csh
bash
ksh
bash 是最风行的 shell--》简直所有的 linux 零碎默认的 shell 都是 bash
人——BASH——kernel
(大略理解)
// 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 创立链接文件(快捷方式)不要去删除原文件,不然会导致链接文件不可用 (一闪一闪 冒红)
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 查看 linux 零碎里默认的 shell
/bin/bash
// # env 查看以后用户的环境变量(linux 零碎里事后定义的变量)environment
以后用户的很多过程都能够应用的变量
环境变量 --》全局变量
# set 查看所有的变量(自定义变量和环境变量)
// bash - GNU Bourne-Again SHell
BASH_BUILTINS builtin 内置(外部)built in
额定装置的命令 --》外部命令
通过装置 bash 这个程序就能够失去的命令 --》bash 的外部命令
yum install tree -y tree 命令是外部命令,须要额定装置
mkdir ip 外部命令 cd echo exit 外部命令
// which bash 查看 bash 命令寄存在哪里
/usr/bin/bash
# 注:rpm -qf 查问命令通过那个软件包装置过去的
#注:先用 which 查看命令的绝对路径
// rpm -qf /usr/bin/bash 查问 /usr/bin/bash 是通过哪个软件包装置过去的
bash-4.4.19-10.el8.x86_64
// rpm 是 linux 里的软件治理的命令,例如装置,卸载软件
-qf 查问文件是通过那个软件装置过去的
// # which ip
/usr/sbin/ip
# rpm -qf /usr/sbin/ip
iproute-5.3.0-1.el8.x86_64
// bin 二进制 binary
# 注:/usr 寄存装置软件的目录 unix system resource
// /usr 是 linux 里寄存装置软件的目录 unix system resource unix 系统资源
相当于 windows 里的 Program Files
// 链接文件 浅蓝色
失常文件 深蓝色
// / 根目录
/root root 用户的家目录
/home/ 用户名同名的目录 普通用户的家目录
// 根目录和 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 查看主机名
localhost.localdomain
// # hostname sanchuang-linux 长期批改主机名(不能用下划线_)接着从新登录 su - root(以后终端登录)/ 或者从新建设一个连贯(开一个终端登录)重启后生效
// 为什么要批改主机名?不便辨认,区别不同的服务器
//* 永恒批改主机名
# vim /etc/hostname 改这个文件,打个新名字。# cat /etc/hostname
sanchuang-linux
重启后失效
// reboot 重启
// 不肯定非得 虚拟机 登录后 xshell 能力登录
// 提示符
PS1 第一提示符
PS2 第二提示符
// 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 sc.txt 查看文本文件里的内容
// 快捷键
// ctrl + l
// ctrl + c 强行终止命令 # ^ C
比方 ping www.baidu.com ctrl + c
// tab 补齐命令 # mkd(之后按 2 下 tab 键)mkd 结尾的命令都列出来了
补齐门路 # mkdir wang 唯一性就间接补齐 否则敲两下 列出 wang…
能辨认唯一性的时候,按一次 tab 键
不能辨认唯一性的时候,须要按 2 次,而后本人输出
// 高低方向键,能够调用以前应用过的命令
// 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 命令
用处:列表(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|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 码值 小——》大
// 一个字节 = 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
// [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 是一个统计命令,能够统计文件里有多少行,多少单词,多少字节
-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 统计目录及文件的空间占用状况 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 /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
# 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 批改权限 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 的时候覆盖文件,不给与揭示的办法
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 再次复制 笼罩不给揭示