参考:https://www.cnblogs.com/ysocean/tag/Linux%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B/
帮助手册
//查看帮助
man ls
ls --help
文件目录
ls -lht //t时间排序,h显示size
ls 权限后的数字含义:
目录则表示里面的子目录个数
文件则表示硬链接个数
文件是软连接则表示节点数
ls xx* //列出【匹配的文件】或者【匹配目录下的文件】
mdkir -p //递归
cp -rp 【原】 【目】 // r是目录,p是保持原属性
less 文件
head -n 20 文件
tail -n 20 -f 文件 动态显示
//链接命令
ln -s 源文件 目标文件 //-s为软连接,不加-s为硬链接
ln -s /etc/issue /tmp/issue.soft
ls -lh /tmp //显示为 issue.soft -> /etc/issue
查找搜索
//根据名字查找文件或目录
find /etc -name init //精准搜索,名字必须为init
find /etc -iname init //同上,但是可大小写
find /etc -name *init //模糊搜索以init结尾的
find /etc -name init??? //模糊搜索,?为单个字符
//根据大小查询
find / -size +204800 //100MB == 102400KB==204800数据块
//根据所有者和所属组
find /home -group root
find /home -user root
//根据时间属性
//-amin访问时间 -cmin文件属性被更改 -mmin文件内容被更改
//+5 -5 5 超过5分钟,5分钟以内,5分钟
find /etc -cmin -5 //查找5分钟内被修改过属性的文件
//组合 -a and -o or
find /etc -size +163840 -a -size -204800
//搜索文件中的字符串
grep xxxx /root/file.log
压缩解压
//.gz 只能压缩文件,不保留原文件
gzip /xxx.txt //压缩
gunzip /xxx.gz //解压缩
//.tar.gz 目录打包后压缩,保留原文件
//-c打包,-v显示 详情,-f指定文件名,-z打包同时压缩
tar -zcvf [打包后名字] [打包目录]
//-x解包
tar -zxvf a.tar.gz
//.zip -r 表示目录,保留原文件
zip -r [压缩后名字] [文件或目录]
unzip [.zip文件]
包的管理
//rpm -i安装,-v显示详情,-h显示进度,
//-U 升级,-e卸载,-q查询是否安装
rpm -ivh xxx包
rpm -Uvh xxx包
rpm -e xxx包
rpm -qi httpd //-i软件信息
rpm -ql httpd //-l显示位置
------------------------------------------------
//yum 管理rpm工具,主要解决网络+依赖
yum search 关键字
yum -y install 包名 //-y自动回答是
装好后可以查
rpm -q 包名
yum -y update 包名
yum -y remove 包名
//源码包安装,需要编译的安装
//软件存放路径自己指定,一般为/usr/local/src
//安装目录为 /usr/local
//1、下载
//2、解压
//3、进入目录,查看安装说明,一般文件名为INSTALL
//4、根据安装说明进行安装
//示例
./configure --prefix=/usr/local/apache2 //安装到apache2
make
make install
apachectl start
//卸载直接删除文件
rm -rf /usr/local/apachd2/
//脚本安装包,人为的写了安装脚本安装源码包
./setup.sh
//安装后,rpm和源码包都可以用如下启动 : /绝对路径/启动脚本名字 start
/etc/rc.d/init.d/httpd start
//如下启动方式是上面的简化形式,是红帽的专有命令,会自动去安装目录下找
service httpd start
权限管理
//acl权限 给指定用户配置权限 显示+ drwxrwx---+
//先查看是否支持 default mout option 有acl就支持
df -h
dumpe2fs -h 分区路径
//设置 -m为加,-x为删 -R为递归
setfacl -m u:用户名:权限 指定文件名
setfacl -m g:组名:权限 指定文件名
//查看
getfacl 文件名字
------------------------------------------------
//文件属性 attr
lsattr 文件或目录 //查看文件属性
chattr +i 文件或目录 //添加只能改
chattr +a 文件或目录 //添加只能增减
------------------------------------------------
文件系统
//文件系统
df -h 挂载点 //显示文件系统情况
du -sh 目录或文件 //统计大小
dumpe2fs 分区名 //显示分区更详细信息
mount -l //显示挂载设备
//挂载u盘
fdisk -l //显示设备
//挂载到目录/mnt/usb,fat格式,要支持ntfs要装ntfs-3g插件
mount -t vfat /dev/sdb1 /mnt/usb
//挂载光盘
mount -t iso9660 /dev/cdrom /mnt/cdrom
//卸载
umout /mnt/usb
输出重定向 >
//正确的输出
命令 > 文件 //覆盖的方式,把正确输出到文件
命令 >> 文件 //追加的方式,把正确输出到文件
//错误的输出
错误命令 2>文件 //覆盖的方式,把错误输出到文件
错误命令 2>>文件 //追加的方式,把错误输出到文件
//正确+错误一起输出
命令 &> 文件 //覆盖的方式,把正确和错误的输出一起保存到文件
命令 &>> 文件 //追加的方式,把正确和错误的输出一起保存到文件
输入重定向 <
命令 < 文件 //把文件作为命令的输入
命令 << 标识符 //把标识符之间的内容作为命令的输入(这个要尝试一下才好理解!)
命令组合
命令1 ; 命令2 //顺序执行,没有关联
命令1 && 命令2 //命令1正确才会进行2
命令1 || 命令2 //命令1不正确,才会执行2
//管道
命令1 | 命令2 //命令1的输出作为命令2的操作对象
bash常用快捷键
ctrl+A 或 HOME //光标移动到开头
ctrl+E 或 END //光标移动到结尾
ctrl+L //清屏
ctrl+U //剪切光标之前
ctrl+K //剪切光标之后
ctrl+Y //粘贴剪切内容
ctrl+R //搜索历史命令
变量
//本地变量,当前shell有效
set //查看变量
变量名=变量值 //设置变量
echo $变量
unset 变量名 //变量删除
//环境变量,当前shell和子shell有效,放文件中则所有shell有效
env //查看所有环境变量
echo $PATH //系统命令查找路径的环境变量
export 变量名=变量值 //设置环境变量
//$PS1 系统提示符变量,即登入显示的 root@主机名
// \u 用户名, \ w 显示完整路径 ,\W 显示最后目录, \h 显示主机名, \t 24小时, \T 12小时
echo $PS1
PS1='[当前时间\u@\t \w]\$'
//环境变量加载顺序,越往下优先级越高
/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc
其他命令及注意
//查看当前登入用户信息
w
//配置sudo
visudo
//统计: 行数 单词 字符
wc 文件
//单引号里面原样输出
//双引号里面会进行转义
name=vae
echo '$name' // $name
echo "$name" // vae
//#开头为注释
// \ 转义,特殊字符变为普通字符
//查看系统健康状态
top //ctrl+z 暂停
//后台运行 &
tar -zcf etc.tar.gz /etc &
//查看硬件信息
dmesg | grep CPU
//查看系统与内核
uname