which ls
设置alias 放在~/.bashrc
修改path vi /etc/profile,source /etc/profile
ctrl u 向前删除
ctrl k 向后删除
ctrl d 退出 logout exit
ctrl z 暂停 fg 恢复
ctrl c 取消,中断
ctrl s 屏幕静止、锁定,后台继续运作,只是屏幕不显示
ctrl q 屏幕恢复、解锁
ctrl l 清屏
ctrl a 行首
ctrl e 行尾
mkdir -p
rmdir -p
cp -r 复制目录
cat -A 查看txt
mv 没有r
less j k 、ctrl+b f、g G、/ n N、?
chmod -R 权限继承
chmod u= g= o= 其中不要带有-,系统认为减号
chown user:group :或 .
!ls 最近的一条ls命令
!301 history的id
chown -R 权限继承
chattr + - a不能删除rm和更改vi,mv 只能追加echo "11">>1.txt
chattr + - i保护,什么都不能
lsattr -R
lsattr -d
chmod u+s S 对普通用户有限制,有root无效,注意o权限
!$ 上一条命令最后一个
G 扩展组usermod useradd 该组有用户的话,也可以删除
gid最大一个往后排
usermod -L 锁定用户无法登录,-U解锁,可用useradd所有参数 u g G s d
mkpasswd yum install -y expect -l 12 -s 0 -c 4 -C 4 -d 4
echo "[email protected]" | passwd --sdtin aming 明文
echo -e "123456\n123456" | passwd aming -e识别\n为换行,不加-e不识别,新密码123456
su - -c "mkdir /tmp/dir123" aming
visudo
root ALL=(ALL) ALL
aming 192.168.1.0/24=(root) NOPASSWD: /bin/ls,command
用户名&组名 来源 角色 命令,绝对路径,逗号分隔,设置不需要密码
sudo ls /root/ 需密码,也可以不输入密码
sudo -l 查看拥有哪些权限
inode 属性(大小,路径,权限),inode分配完就算分区有空间,也无法创建文件
du -sh文件占用磁盘空间的大小、块的大小和ls -lh文件本身大小,显示大小不同,因分区块4K
du -sb和ls -lb显示大小相同
cat /etc/filesystems
mke2fs -t/T ext4 -b 2048 -m 1 -L aming /dev/sdb1 比mkfs.ext4参数多
块大小 保留 标签
df -T 查看分区类型
umount -l 强制卸载
/etc/rc.local 自动挂载命令
blkid uuid label ext4
defaults= rw,suid,dev,exec,auto,nouser,async
0 备份log
1 不备份log,意外断电可恢复资料
1 修复,只能根分区
2 修复,优先级低一点
0 不修复,不重要或者分区太大,否则会影响启动速度
mount -a 加载fstab中所有挂载
yum install -y vim-enhanced
vim +10 !$ 光标在第10行
一般模式
j k 下上 h k左右 2j下2行
ctrl f 下翻页 crtl b上翻页 pageup pagedown
gg 首行 G行尾 100G
$行尾 0 行首(含行首的空白字符) ^行首(非空白)
x 先后删除 X 向前删除 4x 剪切
dd 删除整行,剪切 3dd
p 向下粘贴 P 向上粘贴
u 撤销,最多撤销50次 ctrl r 反撤销
yy 复制整行 3yy
v 可视模式 左右 上下 选择 与x p合用
编辑模式
i 插入
esc 退出
I 光标在行首
a 光标在后面
A 光标在行尾
o 光标下一行
O 光标上一行
命令模式
:wq!
:set nu 显示行号
:set nonu 取消行号
/keyword 查找,高亮,n下找 N上找
?keyword 查找,高亮,n上找 N下找
:1,$s/A/B/g 没有g,只替换每行的第一个,$所有行
:%s/A/B/g %=1,$ 整个文件
///脱义符号\,识别/
#///#///# @///@///@ 不会产生歧义
:nohl 取消高亮
gzip file 压缩后源文件删除,只能压缩文件,只留下file.gz 红色 -1 -9 级别越高,速度越慢,比率越大,默认6
gzip file.gz 解压后源文件删除
bzip2 file 压缩后源文件消失,只留下file.bz2 红色,默认9
bzip2 -d file.bz2 解压后源文件删除
bzcat和zcat xzcat查看压缩内容
gzip和bzip 都不能压缩目录
xz gzip bzip用法差不多
yum install -y xz gzip bzip2 zip unzip
zip file.zip file 源文件存在,可以压缩文件和目录
zip -r file.zip file1 file2 同时压缩多个目录
unzip file.zip
tar --exclude file3 --exclude file4 -cvf file.tar file1 file2 dir1 源文件存在
tar -tf file.tar 查看
tar -xvf file.tar 解包
tar -C -xvf file.tar 指定解包路径
tar支持gzip bzip2 xz
tar -zcvf 1.tar.gz 111 22 源文件存在
tar -C /tmp/ -zxvf 1.tar.gz 源文件存在,直接覆盖
tar -tf 1.tar.gz
tar -jcvf 1.tar.bz2 111 222
tar -tf
tar -jxvf
tar -Jcvf 1.tar.xz 111 222
tar -tJf 查看
tar -Jxvf
rpm -ivh 全名
rpm -ivh --nodeps 全名,不依赖,少用
rpm -ivh --force 全名,强制安装
rpm -e 包名
依赖的时候,同时安装或卸载
rpm -Uvh 全名,升级
rpm -q 包名
rpm -qa 查询所有已安装
rpm -qa 包名 查询包的全名
rpm -qa | grep vim 例外,可以查keyword
rpm -qa | grep ‘vim*‘
rpm -qi 包名,详细信息
rpm -ql 包名,安装了哪些文件
rpm -qf 绝对路径,文件属于哪个包
rpm -qf `which vim`
yum list yum源 /etc/yum.repos.d/CentOS-Base.repo
yum list | grep vim @符号属于已安装过的
yum search ‘vim‘
yum remove 包名 不推荐加y,防止依赖删除
yum update 包名 不推荐升级
yum upgrade 包名
yum groupinstall "包名" 安装套件
yum grouplist | grep -i chinese
yum groupremove "包名"
yum install -y yum-plugin-downloadonly 下载插件
yum install vte --downloadonly --downloaddir=/tmp/ 下载rpm未安装过的rpm包
yum reinstall vte --downloadonly --downloaddir=/tmp/ 下载已安装的rpm包
源码包安装
yum install -y wget
/usr/local/src
wget http
tar
cd
cat install
cat readme
./configure --help 参看配置参数,模块
./configure --prefix=/usr/local/apache2 指定安装路径
echo $? 返回码 0代表OK
make 编译,把源码变成语言
make install 翻译成系统识别的文件
ls /usr/local/apache2 查看生成目录
rm -rf /usr/local/apache2 卸载,重新安装,最好删除压缩目录,重新解压
history
cat ~/.bash_history 用户操作命令历史,用户不同,历史不同,默认1000条
echo $HISTSIZE
!! 上一条命令
!$ 上一条命令最后一个参数
!n 运行第n条命令
!c 最近一次以c开头的命令
? 任意一个字符
jobs 查看ctrl z的命令
fg 优先调用+号,前台
bg 后台
env 查看系统变量
set 查看系统变量,包含自定义变量,更详细
自定义变量 a=1;b=2,只在当前shell生效
变量名不能数字开头,可以含有_,可以开头_,不推荐大写,避免用命令,关键字,系统变量大写
c=‘ls /tmp/‘,*#也需要用单引号
d=`which vim` 命令使用反引号,引用命令的结果
e="$a"8 变量用双引号
export a=1 全局申明,在其他bash,shell中生效
unset e 取消变量
vim /etc/profile 全局配置
source /etc/profile 申明,会加载/etc/profile.d/下的所有*.sh,自定义环境变量不推荐直接修改profile
vim /etc/bashrc PS1 UMASK 全局配置
echo $PS1 w:绝对路径
vim ~/.bash_profile 用户配置文件 会调用.bashrc
vim ~/.bashrc 用户配置文件alias 用户登录、打开新shell时执行
[0-9a-zA-Z]
cut -d: -f 3,4 /etc/passwd 分割,显示第三、四段
cut -c 1-10 /etc/passwd 显示第一个到十个字符
sort 默认asic排序
sort -t: -k3 -nr /etc/passwd n按数字 3,5 3到5,r倒序,字母比数字小,-u 去重
wc -l 行数
wc -w word数量,空白分隔
wc -m 字符数量,含换行符,空格
uniq 必须相邻的行才能去重
uniq -c 重复次数
sor file | unqic -c
tee 重定向
echo "123456" | tee 1.txt 会显示结果 与 > 的区别
tr 替换
echo "abcd" | tr ‘a-z‘ ‘A-Z‘ 一一对应 ‘ab’ ‘AB‘
split 切割
split -b 50m 1.txt 按大小 默认单位b,可以省略 (x)aa xab
split -l 100 1.txt 按行
&& 并且 成功-执行 不成功-不执行
|| 或者 成功-不执行 不成功-执行
; (不)成功-执行
grep --color ‘root‘ /etc/passwd 高亮
echo "alias cg=‘grep --clort‘" >> ~/.bashrc
-n 显示行数
-c 计数几行
-v 不包含keyword
-A 2 多显示下两行
-B 2 多显示上两行
-C 2 多显示上下两行
-r ‘root‘ /etc/* 目录下搜索关键字,含文件目录名字,内容
-rh 不显示最前面目录路径
cg ‘[0-9]‘ 1.txt
cg ‘[a-zA-Z]‘ 1.txt
cg -v ‘[a-zA-Z]‘ 1.txt 不包含
cg ‘^[a-z]‘ 1.txt 以字母开头
cg ‘[^0-9]‘ 1.txt 不包含纯的数字,不包含空行
cg ‘^[^0-9]‘ 1.txt 不以数字开头的行,不包含空行
cg ‘^$‘ 1.txt 显示空行
cg ‘r.o‘ 1.txt 任意一个字符,包含空格,特殊符号
cg ‘r*o‘ 1.txt 0个或多个前面的字符 o也符合
cg ‘r.*o‘ 1.txt r开头o结果都算,中间不管什么,任意个字符
cg ‘r\?o‘ 1.txt 脱义字符 ==cg -E ‘r?o‘ 0个或1个前面的字符
grep -E ==egrep
egrep ‘r+o‘ 1.txt 1个或多个前面的字符