Linux系统的优势基因还是快速,批量,自动化,智能化管理系统和处理业务。
# 超级管理员命令提示符
$ 普通用户命令提示符
[root@cent65 ~]# @前面为用户 @后面为主机名称 ~为当前所在目录
Linux命令提示符由环境变量PS1控制
[root@cent65 ~]# set | grep PS1
PS1='[\u@\h \W]\$ '
可以通过全局配置文件 /etc/profile 或 /etc/bashrc 进行按需调整
常用的Linux远程管理工具:secure CRT Xshell putty Xmanager
常用快捷键:
tab 命令或路径快速补全
Ctrl+a 光标回到命令行首
Ctrl+e 光标回到命令行尾
Ctrl+insert 复制命令行内容
shift+insert 粘贴命令行内容
Ctrl+k 删除光标处到行尾的字符
Ctrl+u 删除光标处到行首的字符
Ctrl+c 中断终端正在执行的任务或删除整行
Ctrl+d 退出当前shell
Ctrl+r 搜索命令行使用过的历史命令记录
Ctrl+l 清屏
Ctrl+s 锁定终端
Ctrl+q 解锁终端
Ctrl+z 暂停执行在终端运行的任务
!! 执行上一条命令
!pw 执行最近以pw开头的命令
!num 执行历史命令列表的第num条命令
Linux命令下查询帮助
man cp
ls --help
echo $LANG
cat /etc/sysconfig/i18n
Linux的关机 重启 注销
shutdown -r -h -c
shutdown -r 23:30
shutdown -h +5
shutdown -h now
reboot poweroff init halt
logout exit
基础命令用法要牢记!!!
文件和目录操作命令
pwd 显示当前路径
PS1='[\t \u@\h \w]\$'
如果想彻底改变PS1的显示,可以编辑/etc/bashrc文件的第36行,然后source /etc/bashrc 重新加载这个文件就生效了
cd 切换目录
cd ~ - . .. 注意这几个特殊的目录就可以了
绝对路径 和 相对路径
tree 以树形结构显示目录下的内容
tree -d 只显示目录 -L level 遍历目录的最大层数
rpm -qa tree
yum -y intall tree
LANG=en_US.UTF-8 调整字符集,避免乱码
使用tree命令区分目录和文件, -F选项会在目录后面有个/ ,使用grep把他过滤出来。
tree -L 1 -F /boot/ | grep /$
mkdir 创建目录
mkdir -p /dir1/dir2/dir3 递归创建目录 -v 显示创建过程 -m 设置目录权限
目录默认权限为755
这个有个关于花括号扩展的用法需要注意 {},花括号用来匹配一组用逗号分隔的字符串中的任一个
[root@cent65 dir]#echo {B,C}
B C
[root@cent65 dir]#echo A{B,C}
AB AC
[root@cent65 dir]#echo A{,C}
A AC
touch命令 创建空文件或改变文件的时间戳属性
touch user{1..5},txt
stat 命令可以查看文件的时间戳属性
文件的时间戳属性分为:访问时间access 修改时间modify 状态改变时间change
touch -a 更改最后访问时间 -m更改最后修改时间
ls -lt -lm -lu
ls 显示目录下的内容及相关属性
ls -l -a -t -r -F -i -d -h -A
查看最近更新过的文件 ls -lrt -t按时间排序 -r倒序 合在一起就是按时间倒序排序
cp 复制文件或目录
cp -a
快速备份文件案例
cp /etc/ssh/sshd_config{,.bak}
mv 移动或重命名文件
rm 删除文件或目录
rm -rf 强制递归删除
find . -type f -name "*.txt" -mtime +7 | xargs rm -f
rmdir 删除空目录
ln 硬链接和软链接
硬链接是通过索引节点来进行链接,在Linux文件系统中,所有文件都有一个独有的inode编号。
在Linux文件系统中,多个文件名指向同一个索引节点是正常且允许的。
硬链接文件相当于文件的另一个入口,他的作用之一就是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止误删除数据。
ln dir.txt hard_link
[root@cent65 tmp]# ls -i hard_link dir.txt
941981 dir.txt 941981 hard_link
我们可以看到硬链接的inode号是一样的
现在我们删除源文件dir.txt
[root@cent65 tmp]# rm -f dir.txt
[root@cent65 tmp]# cat dir.txt
cat: dir.txt: 没有那个文件或目录
[root@cent65 tmp]# ln hard_link dir.txt
重新再做一次硬链接就可以还原了,找回了源文件。
[root@cent65 tmp]# cat dir.txt
具有相同inode节点号的多个文件互为硬链接文件
删除硬链接文件或删除源文件任意一个,文件实体并未被删除
只有删除了源文件以及源文件所对应的硬链接文件,文件实体才会被删除
可以通过给文件设置硬链接文件,来防止重要文件被误删
软链接有点像Windows中的快递方式
[root@cent65 tmp]# ls -i dir.txt hard_link soft_link
941981 dir.txt 941981 hard_link 942046 soft_link
软链接文件的inode值和源文件,硬链接文件都不同
软链接文件的文件类型是l
软链接类似于一个文本文件,里面存放是源文件的路径,指向源文件实体
即使删除了源文件,软链接文件还是会存在,但是无法访问指向的源文件路径内容了
全局结论:删除软链接文件对源文件和硬链接文件无任何影响,删除硬链接文件对源文件和软链接文件无任何影响,删除源文件,对硬链接文件没有影响,但会导致软链接文件失效,显示红底白字闪烁。只有同时删除源文件和硬链接文件,才会真正删除整个文件。很多硬件设备中的快照功能,就是利用了硬链接的原理。
readlink 查看符号链接文件的内容
[root@cent65 tmp]# readlink soft_link
dir.txt
find 查看目录下的文件
find . -atime -2 查看当前目录下,两天内受到访问的文件
find /data/ -mtime -5 使用绝对路径/data/, 查找修改时间在5天以内的文件
-2 表示更改时间距离现在在2天之内
+2 表示更改时间距离现在在2天之前
2 表示距离现在第2天
find /var/log/ -mtime +5 -name '*.log' 在指定目录下查找修改时间在5天前以.log结尾的文件
find . -type d 查找当前路径下的所有目录文件
find . ! -type d !表示取反,查看当前路径下不是目录的文件,注意!的位置
find /data/ -perm 755 按照文件权限查找文件
find /tmp -size +1000c 查找tmp目录下文件大小大于1000字节的文件
find . -type f -exec ls -l {} \;
{}的作用指代前面find命令查找到的内容,{}前后要有空格,考虑到各个系统中分号有不同的意义,所以前面要加\转义
find . -type f -mtime +14 -exec rm {} \; 查找更改时间在14天之前的文件并删除
find /var/log/ -name "*.log" -mtime +5 -ok rm {} \;
-ok 和 -exec 的作用是一样的,-ok多了一项执行命令前提示的功能
find . -type f | xargs ls -l
find . -name "*.txt" | xargs -i mv {} dir2/
find dir2 -name "file*" | xargs -p rm -f
xargs 命令 将标准输入转换成命令行参数
xargs是向其他命令传递命令行参数的一个过滤器,能够将管道或标准输入传递的数据转换成xargs命令后跟随的命令的参数。
xargs -n -i
rename 重命名文件
basename 显示文件名或目录名,用于显示去除路径和文件后缀部分的文件名或目录名
dirname 显示文件或目录路径
chattr 改变文件的扩展属性
chattr -a 只能想文件中添加数据,而不能删除,多用于服务器日志文件安全
-i 设定文件不能被删除,改名,写入或新增内容
lsattr 命令用于查看文件的扩展属性
chmod只是改变文件的读写执行权限,更底层的属性控制由chattr来改变的
[root@cent65 tmp]# lsattr dir.txt
-------------e- dir.txt
[root@cent65 tmp]# chattr +a dir.txt
[root@cent65 tmp]# lsattr dir.txt
-----a-------e- dir.txt
[root@cent65 tmp]# rm -f dir.txt
rm: 无法删除"dir.txt": 不允许的操作
[root@cent65 tmp]# echo 111>>dir.txt
可以追加内容
给文件加锁,使其只能只读
chattr +i dir.txt
为了避免恶意删除.bash_history历史记录文件或被重定向到/dev/null,但系统又需要现向这个文件中写入历史记录,因此采用追加模式,只增不减。
chattr +a .bash_history
file 显示文件的类型
md5sum 计算和校验文件的MD5值
生成一个文件的MD5值
[root@cent65 tmp]# md5sum dir.txt
05824989484946c3a6aa81ac8a00d53e dir.txt
[root@cent65 tmp]# md5sum -c md5.log
dir.txt: 确定
[root@cent65 tmp]# echo 222 >> dir.txt
[root@cent65 tmp]# md5sum -c md5.log
dir.txt: 失败
md5sum: 警告:1/1 生成的校验和不匹配
利用md5sum命令检查备份文件是否遭到损坏
chown 改变文件或目录的用户和用户组
chmod 改变文件和目录权限 -R递归
r w x - 4 2 1 0 u g o a + - =
注意普通文件和目录的读写执行权限
删除文件的权限是受父目录的权限控制,和文件本身的权限无关
chgrp 更改文件用户组
umask 显示或设置权限掩码
文件过滤和内容编辑处理命令
cat 合并文件和查看文件内容
查看文件内容 cat dir.txt
把多个文件合并为一个 cat file1.txt file2.txt > file.txt
创建编辑新文件 cat > file.txt
非交互式的编辑或追加内容到文件尾部 cat>>file.txt <<EOF
hello world!
EOF
清空文件内容 cat /dev/null >file.txt
cat -n 按行编号 -b 按行编号,但会忽略空白行
grep -v “^$” test.txt
ctrl + 退格键 删除输入错误的
利用cat在脚步中显示帮助菜单
#!/bin/bash
Usage()
{
Cat <<EOF
USAGE:$0{start|stop|restart}
EOF
}
Usage
Tac 反向显示文件内容
More 分页显示文件内容
Less
Head 显示文件头部 默认显示前10行
Tail
Tailf 跟踪日志文件
Cut 从文本中提取一段文字并输出
[root@cent65 tmp]# cat > 1.txt
hello,world!welcome
[root@cent65 tmp]# cat 1.txt
hello,world!welcome
[root@cent65 tmp]# cut -b -5 1.txt
hello
[root@cent65 tmp]# cut -b 4- 1.txt
lo,world!welcome
[root@cent65 tmp]# cut -b 3-8,10 1.txt
llo,wol
cut -d : -f 1 /etc/passwd -d指定:作为分隔符,-f 指定显示第一个区域
Split 分割文件
Paste 合并文件
Sort文本排序