第二周命令总结
A
alias别名,可以用type查看取得别名是否存在,然后输入alias 别名=原命令,别名也是临时性,可用enable还原,可以写进nano文本里面保存,输入nano .bashrc,在.bashrc里面修改保存,然后执行source或.➕执行文件.bashrc,执行保存)
别名优先于内部命令优先外部命令优先不属于两者的命令
unalias -a #取消所有别名 如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
B
Bc(二进制转换,输入bc回车,输入obase=2回车,输入转换数字,这是2进制转换,ibase=8,是8进制转换)
Basename 基名:basename,只取文件名而不要路径
Dirname 只取路径 不要文件名
[root@centos8 bin]#basename /etc/sysconfig/network
network
[root@centos8 bin]#dirname /etc/sysconfig/network
/etc/sysconfig
C
Cd 切换文件夹 回到家目录
Cat cat /etc/ 查看文本文件 /etc/motd(登录后提示) /etc/issue(看文本文件)
cat /etc/redhat-release(查询红帽系列发行版本,ubuntu输入cat /etc/os-release查询)
cat /proc/cpuinfo(跟lscpu一样查询当前设备CPU,不过显示更加详细)
cat /proc/meminfo(跟free指令一样,查看内存 proc文件夹对应的是内存中的数据,都是保存在内存中的,不占磁盘空间)
cat /proc/partitions(跟lsblk功能一眼查看内存中的分区和大小)
CTRL➕C Cntrl➕D(取消/中断)
Cal -y 显示日历
Clear 清除
Cat >cat.log单行重定向:
Line1
Line2 用ctrl+d结束编辑
多行重定向:cat >cat.log <<@ (注明 @是终止符 输出@时停止)
Line1
Line2
@
结束 在输出设置的停止符之前 文件内容是没有生成的
chown 可以修改文件的属主 也可以修改文件的属组
chgrp 只可以修改文件的属组
chmod 修改文件权限
chattr 用来限制root 防止root误删除
+i 不能删除以及更改
+a 只能追加内容
chpasswd
chage 修改用户密码
chsh 指定shell chsh /bin/csh yang
Chfn 指定个人信息 如 chfn root
Cp 利用 cp 命令可以实现文件或目录的复制
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE
-i 覆盖前提示
-n 不覆盖,注意两者顺序
-r, -R 递归复制目录及内部的所有内容
-a 归档复制保留文件原有属性相当于-dR --preserv=all
cp -a /data/ /backup_`date +%F_%H-%M-%S`备份保存即时文件
-d --no-dereference --preserv=links 不复制原文件,只复制链接名
-p 等同--preserv=mode,ownership,timestamp 保留权限主组时间戳
-u --update 只复制源比目标更新文件或目标不存在的文件
-v --verbose
-b 目标存在,覆盖前先备份,形式为 fifilename~ 如果之前使用过--backup 则是数字形式
--backup=numbered 目标存在,覆盖前先备份加数字后缀
范例:
[16:21:08 root@centos8 ~]#cp ~wang/issue /data/issue_wang.bak
-rw-r--r--. 1 root root 86 Dec 13 16:21 /data/issue_wang.bak
-rw-r--r--. 1 wang wang 86 Dec 13 16:18 /home/wang/issue
[16:21:44 root@centos8 ~]#cp -p ~wang/issue /data/issue_wang2.bak
[16:22:07 root@centos8 ~]#ll ~wang/issue /data/issue_wang2.bak
-rw-r--r--. 1 wang wang 86 Dec 13 16:18 /data/issue_wang2.bak
-rw-r--r--. 1 wang wang 86 Dec 13 16:18 /home/wang/issue
[16:23:19 root@centos8 ~]#cp /etc/sysconfig/ /data/
cp: -r not specified; omitting directory '/etc/sysconfig/'
[16:23:40 root@centos8 ~]#cp -r /etc/sysconfig/ /data/
[16:23:45 root@centos8 ~]#ll /data
total 12
-rw-r--r--. 1 root root 0 Dec 13 16:11 2019-12-12_16:11:48.log
-rw-r--r--. 1 root root 0 Dec 13 16:13 2020-12-13_16:13:11.log
-rw-r--r--. 1 wang wang 86 Dec 13 16:18 issue_wang2.bak
-rw-r--r--. 1 root root 86 Dec 13 16:21 issue_wang.bak
drwxr-xr-x. 7 root root 4096 Dec 13 16:23 sysconfig
[16:24:03 root@centos8 ~]#cp -r /etc/sysconfig/ /data/sysconfig_bak
[16:24:34 root@centos8 ~]#ll /data
total 16
-rw-r--r--. 1 root root 0 Dec 13 16:11 2019-12-12_16:11:48.log
-rw-r--r--. 1 root root 0 Dec 13 16:13 2020-12-13_16:13:11.log
-rw-r--r--. 1 wang wang 86 Dec 13 16:18 issue_wang2.bak
-rw-r--r--. 1 root root 86 Dec 13 16:21 issue_wang.bak
drwxr-xr-x. 7 root root 4096 Dec 13 16:23 sysconfig
drwxr-xr-x. 7 root root 4096 Dec 13 16:24 sysconfig_bak
[16:32:43 root@centos8 ~]#cp -b /etc/motd /data/issue
cp: overwrite '/data/issue'? y
[16:33:09 root@centos8 ~]#ll /data
total 8
-rw-r--r--. 1 root root 1 Dec 13 16:33 issue练习
1、每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY
[16:40:19 root@centos8 ~]#cp -av /etc/ /data/backup`date +%F`
mm-dd,备份过程可见
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
2.10 移动和重命名文件
mv 命令可以实现文件或目录的移动和改名
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
格式:
常用选项:
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
利用rename 可以批量修改文件名
-rw-r--r--. 1 root root 2610 Dec 13 16:32 issue~
[16:33:11 root@centos8 ~]#cp -b /etc/fstab /data/issue
cp: overwrite '/data/issue'? y
[16:33:55 root@centos8 ~]#ll /data
total 8
-rw-r--r--. 1 root root 709 Dec 13 16:33 issue
-rw-r--r--. 1 root root 1 Dec 13 16:33 issue~
[16:33:56 root@centos8 ~]#cp --backup=numbered /etc/fstab /data/issue
cp: overwrite '/data/issue'? y
[16:34:32 root@centos8 ~]#cp --backup=numbered /etc/shadow /data/issue
cp: overwrite '/data/issue'? y
[16:34:41 root@centos8 ~]#cp --backup=numbered /etc/os-release /data/issue
cp: overwrite '/data/issue'? y
[16:34:48 root@centos8 ~]#ll /data
total 20
-rw-r--r--. 1 root root 420 Dec 13 16:34 issue
-rw-r--r--. 1 root root 1 Dec 13 16:33 issue~
-rw-r--r--. 1 root root 709 Dec 13 16:33 issue.~1~
-rw-r--r--. 1 root root 709 Dec 13 16:34 issue.~2~
----------. 1 root root 1349 Dec 13 16:34 issue.~3~
[16:40:19 root@centos8 ~]#cp -av /etc/ /data/backup`date +%F`
[16:40:19 root@centos8 ~]#cp -a /root /data/rootdir
利用rename 可以批量修改文件名
rename [options] <expression> <replacement> <file>...
范例: #为所有的conf文件加上.bak后缀:
rename 'conf' 'conf.bak' f*
#去掉所有的bak后缀:
rename '.bak' '' *.bak
2.11 删除文件
使用 rm 命令可以删除文件
格式:
常用选项:
-i 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
范例:
范例:删除特殊文件
rename [options] <expression> <replacement> <file>...
#为所有的conf文件加上.bak后缀:
rename 'conf' 'conf.bak' f*
#去掉所有的bak后缀:
rename '.bak' '' *.bak
- D date 时间 date系统时间 date +%F今天年月日 touch ` date+%F`.txt创建日志
clock硬件时间 时区 clock-s, --hctosys 以硬件时钟为准,校正系统时钟
Clock-w, --systohc 以系统时钟为准,校正硬件时钟
/etc/localtime
Date +%s 得出从1970年到现在过了多少秒
Echo `Date +%s`/86400|bc得出过了多少天
df查看字节 df -h查看更具体
dnf -y install 命令名称((安装软件,,dnf只适用于centos 8,yum适用于centos 6/7)
Dirname 目录名 只取目录不取文件
dd if=/dev/zero of=/data/bigfile bs=1M count=100 创立一个700M的大文件
E
exit退出当前界面
enable 管理内部命令
enable cmd 启用内部命令
enable –n cmd 禁用内部命令
enable –n 查看所有禁用的内部命令
echo 命令是一个 shell 的内部命令,使用 echo 命令可以将指定字符串回显输出
echo 在输出内容后会自动补充一个换行符,使用 -n 选项取消默认添加的换行符
echo $PATH(查看外部命令存储次序,$表示变量,后面跟的是变量名
echo 使用 -e 选项可以输出转义信息
echo $LANG(通过LANG来转换中文提示)
echo -e ‘\e[31mwelcom\e[0m’(打印welcom字符颜色,31m色号为红色)或者echo -e ‘\x1B[31mwelcom\x1b[0m’ 效果是一样的。 [0m后缀是颜色终止,防止把后续的颜色都影响了 临时使用改变颜色PS1='\[\e[0m\][\[\e[32;40;1m\]\u\[\e[39;40;1m\]@\e[31;40;1m\]\h \e[35;40;1m\]\W\[\e[0m\]]\$ '
保存到文件里 nano bashrc 进去编辑保存 出来source即可
export可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
Echo $$查看当前进程编号
Echo默认增加空行 echo -n不增加空行
修改口令 echo 口令| passwd stdin test
F
file 判断文件类型
Free 以及free -h查看内存使用情况
Finger 查看用户个人信息 如finger root
G
grep 过滤
Gedit 图形化文本编辑工具
Getent passwd wang =getent shawod wang =cat /etc/shawod wang查看单个用户账号相关信息
Cat /etc /showod =getent passwd = getent shadow 查看所有账户相关信息
groupadd
groupmod
groupdel
getfacl 查看设置的acl权限
gpasswd
Groups 查看用户所属组列表
Groupmems 管理组成员关系
H
hash 显示hash缓存 缓存的是外部命令
hash -l 显示hash缓存,可作为输入使用
hash -p path name 将命令全路径path起别名为name
hash -t name 打印缓存中name的路径
hash -d name 清除name缓存 仅清理某个指令
Hash -r清除缓存
halt 关机
Hostname 查看主机名 hostnamectl 设置主机名
获取主机名Hostname uname -n echo $HOSTNAME cat /PROC/SYS/KERNEL/HOSTNAME小写
保存写进文件 写进etc 要想永久修改命令
行提示符为指定格式,可以在系统环境变量初始化时加上 PS1 变量赋值语句,比如 ~/.bashrc ~/.bash_profile /etc/profile 等文件中修改主机名直接修改 /proc/sys/kernel/hostname
hostnamectl set-hostname centos7
Hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。
History history -c 清除命令历史 rm -f.bash history 删除磁盘文件历史 想完全清除痕迹应该先删除磁盘文件历史 再进行history -c
History
-d offffset: 删除历史中指定的第offffset个命令
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT="%F %T `whoami`" 显示时间和用户
HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
HISTCONTROL:控制命令历史的记录方式
持久保存变量
以上变量可以 export 变量名="值" 形式存放在 /etc/profifile 或 ~/.bash_profifile
保存成文件进入Nano .bash_ profile 编辑export HISTTIMEFORMAT="%F %T `whoami`" whoami里面是反引号
Source .bash profile 文件生效
1.help+命令等同man bash(显示内部命令的帮助,也自动把内部命令显示出来,包括内部命令的状态,更加直观和详细,help后面也可以跟内部命令,它会列出这个内部命令的用法说明)内部命令 help command或者man bash 执行之前用type command查看是内部还是外部命令
2外部命令 --help 如ls --help 大部分命令优先使用--help
或者 -h 如cal -h(help= -h)date不支持- h仅能使用--help
Shutdown不能用-h会把机器关机
I
Init 切换模式 常用init3 5
Init 0终止用户强制关机 shutdown是正常关机
Init1单用户模式 等系统出问题的时候维修他的程序 一般不使用
Init2多用户模式
Init 3完全多用户模式 字符界面
Init4安全模式 一般不使用
Init 5图形化界面
Init6重启动
Info man常用于命令参考 ,GNU工具 info 适合通用文档参考
没有参数,列出所有的页面
ip a(查询当前终端IP地址)
id -u(IP地址参数)
Iconv
K
L
ls cpu(查看缓存。一级缓存,二级缓存)
logout(退出或表示注销当前身份)
lsblk(显示当前硬盘和分区列表
Lsof
Lsattr 显示文件特殊属性
M
mv 移动文件
Mask
man 帮助手册
Mkdir
man命令 查之前需要先看在第几章节 whatis 命令
Man passwd 等于中间省略1 直接查找第一章节 如果要查第五章节需要输man 5 passwd
Mail -s test 加上发给谁 可以发邮件
Mail -s test yang < mail .txt (建立出输入好内容的文件) 做到群发
N
Nano编辑修改文件 生成文本文件 nano `date +%F`.txt
Newgrp
O
P
Poweroff 关机
$PATH是个环境变量 路径 shell 中使用 PATH 环境变量来存储命令程序的查找路径,路径可以有多个并使用 ':' 号做分隔,PATH 变量的内容可以根据需要进行修改和添加
Ps 进程 ps -a查看所有进程
Ps au a=all u=用户
Ps aux可以看到正在执行的程序及编号 找到程序运行的编码 进入cd/proc cd对应编码 接着ll看到文件所对应的路径 再看编码所对应exe的路径就可以找到运行程序所在的地方
Pstree 以树状图说明进程之间的关系
PS1是变量 变量前面一般加$
PS1 变量的定义格式可以在 bash 的帮助信息中的 PROMPTING 内容部分查看到,常用的格式含义如下:
\u 当前用户
\h 主机名简称
\H 主机名
\w 当前工作目录
\W 当前工作目录基名
\t 24小时时间格式
\T 12小时时间格式
\! 命令历史数
\# 开机后命令历史
PS2是影响多行重定向里面内容的一个变量
Q
R
Rm删除文件
runlevel(查看当前在哪种模式下)
reboot(重启
Rmdir 删除空目录
Rew
S
sudo -i 切换身份 在ubuntu中切换成root
set -C | +C
shred
su 切换用户 su root不登录的情况下使用 su - root 完全切换
Su -c cmd 临时执行命令
systemctl start autofs
Stat 查看文件
Setfacl 可以设置ACL权限
Screen 利用screen 可以实现会话管理,如:新建会话,共享会话
安装 screen
screen命令常见用法:
创建新screen会话 screen -s
加入screen会话 screen -x
剥离当前screen crtl+a,d
显示已经打开的screen会话 screen -ls
恢复某screen会话 -r
安装screen
[OPTION]... [TIME] [MESSAGE]
[root@centos7 ~]#yum -y install screen
shutdown 关机
sleep 休眠
systemctl start autofs
source = . 再不用推出界面的情况下让文件生效
sosreport
Seq 1 100 生成1-100数字
Seq -s+ 1 100生成1+2+...+100
Seq -s+1 100>bc.log bc < bc.log生成结果5050
Seq -s+1 100 | bc 两步合成一步 管道符之前的标准输出作为后面的标准输入
Shadow 阴影 用来存放口令密码
随机生成口令放大 tr -dc ‘[:alnum:]’< /dev/uranom | head -c 12(前12个字母数字)
或者openssl rand -base64 12
T
Tr 可以转换和删除字符‘’
tee 可以重定向到多个目标
tar 打包
tty 显示当前所在终端
tmux 类似于screen 可以实现多个窗口同时运行
安装tmux yum -y install tmux
type 可以用来查看命令是否是内部命令
Tab 补全命令 双击出现跟字母命令相关的所有命令 也可以补全子命令 需要安装bash -competition
touch `date +%F`.txt 创建每天的文件 即日志文件
U
uptime 显示服务器运行时间
Unalias 取消临时别名
Uname -r 查看内核版本
usermod
userdel 可删除lunix用户
umask 用来创建保留文件权限 持久保持umask值 全局设置/etc/bashrc 局部设置 ~ /.bashrc
新建文件默认权限是666 如果存在奇数则分别加1
新建文件夹默认权限是777
普通用户的umask值是002
Root的umask值是022
Umask -s是其显示方式
Useradd id创建新普通用户
Useradd -u uid
-o 配合uid不检查uid的唯一性
-r 创建系统用户 在默认home列表里面没有
-u 指定 id
-G指定附加组但是组需要事先存在
-S 指定shell
v
vi vim的前身 三种模式:命令,插入,扩展命令
vim 编辑工具之神
W
Whoami 查看我是谁
Which 寻找文件路径
Whereis 显示文件具体路径
whatis 显示命令的简短功能介绍
X
Y yum install XXXX(后缀要装的命令,但是必须要连互联网,yum仅支持centos6/7,centos8可以用yum或者dnf)
Z
设备名第二个分区mount挂载 到 c:\part2 挂载点mount point
设备 ----> mount ----> mount point
分区表示法:
/dev/sda1 mount /boot
swap 2G 4G 1G 2G
200G 2G
/ 100G
/boot 1G
/data 50G
swap 4G
特殊符号
`` 反向单引号 里面变量和命令都识别 反向单引号里面一定是命令,然后将里面内容当成命令识别执行再交给调用反向单引号的命令继续 常用于一个命令的输出打印给另一个命令的参数 $(command)=`cmd` ``不支持太复杂的 $()支持 也可以``跟$()混用.
''强引用 只能单纯识别输出字符
""可以识别变量,不能识别命令
\转义符 也可以表示一个命令一行没打完
Echo\\打印出\ echo\\\\打印出两个\\或则echo‘\\’加单引号
{} 花括号 相当于``{}对重复意义东西进行打印 echo user{1,3,5} 输出为user1 user3 user5
Echo file{1,3,5}txt输出为 file1.txt file 3txt file5txt
Echo{1..10}输出为1,2,3,4,5,6,7,8,9,10
Echo{20..10..2} 20 18 16 14 12 10
Echo{000..10..2} 000 002 004....010
文件
1.source=.让文件及时生效 文件前加.表示隐藏文件
蓝色是目录文件夹 绿色是可执行文件 黄色特殊其他类型文件 浅蓝色是软链接
2.文件有两种数据 元数据即属性 数据data即文件内容
把数据按照规则放到相应的文件
3.-表示一般文件
C character字符文件 一个一个字符abcd 典型的字符设备zero(真正的二进制0)
D directory目录文件 文件夹
B block块设备文件 以块的方式来进行设备的读写 有大小容量、如磁盘空间 随机访问到这个设备的空间
I link符号链接文件 快捷方式
P pipe管道文件 和网络通讯有关 两个程序互联互通基于单向传输 A向B发文件 b接受 之后b才能向a发文件 不能同时
S socket套接字文件 和网络通讯相关 双向
4.目录下文件对应 lunix里面对大小写敏感
bin binary 存放的是二进制程序
Boot放启动文件比如内核
Data 是我们自己分盘创建
dev放硬件设备 分区硬盘之类的
Etc放配置文件
Home用户的家目录
Lib 库 有64写64位 没61就是lib 是32位的
Opt 第三方软件
Proc 虚拟文件夹
Root root文件夹的家目录
Run正在运行中的相关文件
Sys和硬件相关
Tmb 临时
Sbin是给系统管理员运行的可执行程序
Srv放一些服务器数据
Usr 相当于windows里面的profile 帮助命令就放在usr下面
Var 可变的意思 可存放日志