整理一下幕课网的Linux达人养成计划I和II笔记
http://www.imooc.com/learn/175
http://www.imooc.com/learn/111
提示符
[root@iZ282buk0npZ ~]#
[当前用户@主机名 当前未知(家目录)]超级用户提示符(普通用户$)
ls命令
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-rw-r--r-- 1 root root 14995 Apr 13 17:36 master.zip
(-文件 d目录 l软链接)
-h 人性化显示
-d 目录属性
-i 文件id号
显示所有文件大小,并以普通人能看懂的方式呈现 ls -AsSh
mkdir命令
-p 递归创建目录
cd(change directory)
cd ~
家目录
cd
家目录
cd -
上次目录
cd..
上一级
pwd
显示当前位置
rm -rf
删除只读属性的文件时会有提示,使用-f强制删除,-r删除目录
非图形界面没有回收站,删除不可恢复
复制剪切
cp from_dir to_dir
mv from_dir to_dir
-r 复制目录
-a 复制文件属性
常见目录
/boot
启动目录
/dev
设备文件
/etc
配置文件
/home
普通用户家目录
/lib
系统库保存目录
/mnt
挂载目录
/tmp
临时目录
/usr
系统软件资源目录
/bin
普通用户命令
/sbin
超级用户命令
/var
系统文档
/proc
/sys
系统内存
链接命令
硬连接,指向相同的索引,有相同的i节点和block块,可以看做同一个文件,不能跨分区,不能对目录执行。
ln -s 原文件 链接文件
软链接,类似win中的快捷方式,指向不同的索引,不同的i节点和block块,新的block中存着原文件的i节点。
文件搜索find
最强大的搜索命令find:
find <指定目录> <指定条件> <指定动作>
避免大范围搜索,非常消耗系统资源。
根据文件名搜索:find /root -name install.log
(只匹配名字相同的)
根据文件名搜索:find /root -name "install.log*"
(使用通配符要用引号)
通配符:*匹配任何内容 ?任意一个单独字符 []任意一个中括号内的内容
根据文件名搜索不区分大小写:find /root -iname install.log
(linux严格区分大小写)
根据所有者:find /root -user root
搜索没有所有者:find /root -nouser
(垃圾文件、内核产生、外来文件)
搜索当前目录(含子目录)中,所有文件名以my开头的文件:find . -name 'my*'
搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信:find . -name 'my*' -ls
按照时间搜索:find /var/log -mtime +10
-10:10天前
10:第10天当天
+10:10天内
时间轴辅助理解:
过去_____第十天当天_____现在
atime文件访问时间
ctime改变文件属性
mtime修改文件内容
根据文件大小:find . -size 25k
根据文件大小:find . -size 25M
(-25M小于25,+25M大于25)
根据i节点:find . -inum 666666
搜索/etc下大于9k小于100m的,然后执行ls -lh:
find /etc -size +9k -a -size -100M -exec ls -lh {} \;
注释:-a逻辑与,-o逻辑或。-exec ls -lh {} \ 标准格式,对结果进行操作
其他文件搜索
locate 在数据库中按文件名搜索,速度快,阿里云服务器最小化安装的,输入locate提示可以-bash: locate: command not found
可以运行yum -y install mlocate
安装locate,安装后又提示locate: unexpected EOF reading /var/lib/mlocate/mlocate.db'
输入updatedb
更新一下数据库
whereis 查找命令位置和帮助文档
which
通常用来确定是否安装某个软件,因为他只从环境变量指定的路径搜索命令
在文件中搜索符合条件的行:
grep [选项] 字符串 文件名
(可使用正则表达式)
-v:取反(不包含字符串的行)
-i:忽略大小写
df 查看磁盘分区使用状况
-a 显示所有文件系统
-h 以1024进制计算
-H 以1000进制计算
-T 显示磁盘分区类型
-t 显示指定分区类型
-x 不显示指定分区类型
du统计磁盘上文件的大小
-b 以byte为单位
-k 以KB为单位
-m 以M为单位
-h 以1024为单位
-H 以1000为单位
-s 指定统计目标
添加新硬盘
分区、格式化、挂载
帮助命令
type
查看命令类型
man
系统帮助手册
info
GUI超文本帮助系统,比man显示信息更全
ls --help
查看命令选项
whereis cd
确定是否为shell内部命令
help cd
查看shell内部命令
压缩解压命令
zip file.zip file
压缩文件
zip -r file.zip file
压缩目录(压缩包用红颜色显示)
unzip -O GBK 中文压缩文件.zip
指定编码类型
unzip -l shiyanlou.zip
查看压缩包的内容
unzip -q shiyanlou.zip -d ziptest
使用安静模式解压到指定目录
gzip file
压缩file变成file.gz,原文件消失
gzip -c file > file.gz
把压缩a的结果输出到file.gz
gzip -r dir
压缩目录下的文件,但不能压缩目录,不方便
gzip -d file.gz
解压
bzip2 file
压缩file,不保留原文件
bzip -k file
保留原文件
不能压缩目录
tar -zcvf file.tar file
-c:打包
-C
指定路径
-v:显示过程
-f:指定打包后的文件名
-z:压缩为tar.gz格式
-j:压缩为tar.bz2格式
-x:解压tar.gz或tar.bz2(后面跟-c 指定解压缩路径)
-t:查看压缩包内容
关机与重启
root:shutdown -h now
和shutdown -r now
非root:halt
(立刻关机)和reboot
(立刻重启)
挂载命令
pass
用户和用户组的配置文件
早期Linux的账号和密码是在同一个文件中的,后来因为系统要频繁地读取用户和用户组文件,因此两个文件的权限不能太苛刻,而密码的隐私性比较高,就另外拿出两个文件保存用户密码和组的密码。
用户:/etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:用户编号:用户组编号:注释信息:主目录:shell类型
用户密码:/etc/shadow
用户组:/etc/group
root:x:0:
组名:密码占位符:组编号:组中用户列表
用户组密码:/etc/gshadow
用户和用户组基本命令
添加一个用户 adduser uname
为新添加的用户设置密码 passwd uname
添加一个组:groupadd gname
重命名组名:groupmod -n newgname gname
更改组编号:groupmod -g 888 gname
创建组并指定编号:groupadd -g 888 gname
添加组密码:gpasswd gname
删除组:groupdel gname
添加用户并指定组:useradd -g gname username
添加用户并指定组和附属组:useradd -g gname -G ogname username
添加用户并指定目录:useradd -d dir username
添加备注:usermod -c comment username
更改用户名:usermod -l newuname username
修改用户的组:usermod -g gname username
删除用户:userdel username
禁止普通用户登录:touch /etc/nologin
锁定用户:passwd -l uname
解锁用户:passwd -u uname
删除用户密码:passwd -d uname
添加附属组:gpasswd -a uname ogname
切换用户到附属组:newgrp ogname
删除附属组:gpasswd -d uname ogname
切换用户:su uname
显示当前用户:whoami
用户信息:id uname
显示用户所在组:groups umane
设置用户详细资料:chfn uname
显示用户详细资料:finger uname
xshell快捷键
清屏:Ctrl + l
透明:alt + r
全屏:Alt + Enter
复制:Ctrl + Insert
粘贴:Shift + Insert
光标移到开头:ctrl + a
光标移到结尾:ctrl + e
顶部:Shift + Home
底部:Shift + End
增加移到粒度:ctrl+方向键
删除光标所在字符:ctrl + d
输入单词搜索历史命令:ctrl + r
锁定终端:ctrl + s
解锁终端:ctrl + q
将终端向上滚动 Shift+Pgup
Tab 命令补全文件补全
快速点击三次选中当前行
其他
head
和tail
查看头几行和尾几行,-f参数可以实时查看
PATH=$PATH:/home/shiyanlou/mybin
把某目录添加到系统环境变量
>>
将标准输出以追加的方式重定向到文件,>
以覆盖的方式
.bashrc
每次启动默认执行的配置脚本以初始化环境,在每个用户目录下和 /etc
目录下
source
把一个文件的内容当做shell执行、重新执行刚刚修改的初始化文件,使之立即生效,别名是.