三、 常规命令
基本介绍
[root@localhost ~]#
~:表示当前操作位置在用户家目录
#:表示超级用户登录,普通用户登录时显示为“$”
ll -i (显示结果)
130574 drwxr-xr-x. 2 root root 4.0K 6月 6 12:17 123
inode号 权限级别 引用数 所有者 所属组 大小 时间 文件名
引用计数:
对于文件:表示文件硬链接数
对于目录:目录下一级子目录的个数
命令选项:用于调整命令功能
参数:是命令操作的对象,若省略,则代表默认。
目录命令
cd 切换目录 i显示inode h常用单位 a显示所有 d当前目录
pwd 显示当前所在目录的路径
mkdir 建立目录
rmdir 删除目录
rm 删除目录和文件 -r递归 -f强制
tree 显示目录树 -L 指定层数,-d 指定目录 如:tree -L 2 -d /
文件操作
1) touch 新建或修改时间
2) rm -rf 删除
-r 递归,删除目录
-f 强制删除
3) cat 查看内容,所有
-n 列出行号
4) more 分屏显示
空格向下翻页,b向上翻页,q退出
5) less 分行显示
6) head [] 显示文件头 默认显示前10行
-n 20 文件名 显示前20行
7) tail -n 行数 文件名 显示文件尾 默认显示前10行
-f 监听文件尾
文件目录命令
rm 删除文件或目录
cp [] 源文件 目标位置 复制
-r 复制目录
-p 带属性复制
-d 链接复制
-a相当于-rpd
mv 剪贴或改名
shell 命令解释器
内部命令:shell自带,没有明确的可执行文件
外部命令:type查看,后期开发,有执行文件
链接文件(难点)
创建链接时一定要使用绝对路径
ln (link)
ln -s 实际文件 软连接文件
ln -s /root/12 /tmp/ (软链接)
ln /root/12 /tmp/ (硬链接)
注意:删除软连接 rm -rf abc/ 有“/”会把源文件删除,所以rm -rf abc 则删除软连接文件 abc
硬链接:
源文件和硬链接文件拥有相同的inode号和blook块,可以看成是同一个文件。
修改任意一个文件,另一个内容改变,删除任意一个,另一个正常使用。
除非两个都删除,才不能访问。
不能夸分区(防止inode号重复)
不能链接目录。(目录下文件可能太多)
特征不够明显,很难判断两个是硬链接,不推荐使用。
软链接:
软链接有自己独立的inode和blook,但blook不记录实际数据,只写入源文件名和inode号
软链接大小不随源文件大小改变而改变
软连接是最大权限,但访问受源文件权限限制
修改任意一个,另一个也改变
删除软链接,源文件无影响,删除源文件,软链接无效
软链接可以夸分区,可以链接目录
软链接特征特征明显,推荐使用。
常用快捷键
Tab 自动补全
ctrl+l 清屏
ctrl+u 从光标删除到行首
ctrl+k 从光标删除到行尾
ctrl+y 在粘贴回来
ctrl+a 光标移到行头
ctrl+e 光标移到行尾
ctrl+s 暂停屏幕
ctrl+q 解除暂停屏幕
ctrl+c 强制终止
ctrl+z 放入后台
注:以“.”开头的文件,代表隐藏文件(系统文件,不要乱动)
alias 查看系统别名(别名优先级高于命令)
/root/.bashrc 环境变量设置文件
ps aux 查看任务管理器
kill 杀死进程
操作时先看一下在那个目录,尽量使用绝对路径
设置中文字体:LANG=zh_CN.UTF-8
权限
-rw-r--r--.
drwxr-xr-x.
第1位表示文件类型
其中 - 普通文件
d 目录文件
l 链接文件
b 设备块文件
c 字符设备文件
s 套接字
p 管道
第2.3.4 位表示 u(所有者)rwx(读写执行) 权限
第5.6.7 位表示 g(所属组)rwx(读写执行) 权限
第8.9.10位表示 o(其他人)rwx(读写执行) 权限
r 4 w 2 x 1
最后一位点(.)代表文件受selinux保护
chome(权限修改)
常用权限 644 标准文件权限
755 文件:执行权限
目录:标准权限
777 最大权限
用户在自己的所属组里,所有者权限生效;在其他所属组里,所属组权限生效。
chown 修改所有者
chgrn 修改所属组
-R 参数 对目录及其内所有文件都设置权限(递归设置)
chown u:g 或chown u.g (同时修改所有者和所属组)
chown :g 修改所属组
权限的意义(只限制普通用户)
对文件:r:读取内容 cat more head tail
w:编辑 vi echo
x:可执行
注:对上级目录有权限,才能操作文件数据(文件本身权限受上级目录的权限管理)
对目录:r:可以查询目录下文件名 ls
w:修改目录结构 删除、新建、更名、复制、剪贴
x:可以进入目录
最大权限: 文件x最大
目录w最大
对于目录426权限没有意义,只能是057,0最小权限,5标准权限,7最大权限
新建的文件初始权限为666(umask为0000时)
新建的目录初始权限为777(umask为0000时)
umask (系统通过umask保证默认权限)/etc/profile
超级用户:0022
普通用户:0022或0002
新建文件及目录的全选计算
UID > 199 umask 002
UID <= 199 umask 022
rwx rwx rwx 777 目录默认权限
--- -w- -w- 022 umask
----------------------
rwx r-x r-x 755 实际权限
rw- rw- rw- 666 文件默认权限
--- -w- -w- 022 umask
----------------------
rw- r-- r-- 644 实际权限
rwx rwx rwx 777 目录默认权限
--- -w- rwx 027 umask
----------------------
rwx r-x --- 750 实际权限
rw- rw- rw- 666 文件默认权限
--- -w- rwx 027 umask
----------------------
rw- r-- --- 640 实际权限
帮助文件
--help 查看命令的常见选项
man 查看帮助文件
man 5 passwd 查看passwd文件的帮助
man 1 passwd 查看passwd命令的帮助
man -f whatis 查看命令的帮助级别
man帮助级别
1 - 查看命令的帮助
2 - 查看可被内核调用的函数的帮助
3 - 查看函数和函数库的帮助
4 - 查看特殊文件的帮助(主要是/dev目录下文件)
5 - 查看配置文件帮助
6 - 查看游戏帮助
7 - 查看其他杂项帮助
8 - 查看系统管理员可用命令帮助
9 - 查看和内核相关文件的帮助
info 最详细的帮助文件(u进上层,n下一节,p上一节,q退出)
基本查找命令
which 查找命令的命令,能看到相关别名
whereis 查找命令的命令,看到帮助文档的位置
locate 按照文件名在特定数据库查找
updatedb 强制更新数据库 /var/lib/mlocate/mlocate.db 数据库文件
vim /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" 开启搜索限制
PRUNEFS = 不被搜索的文件系统
PRUNENAMES = 不被搜索的文件类型
PRUNEPATHS = 不被搜索的路径
find 搜索命令(在系统中搜索符合条件的文件名。使用通配符完全匹配)
通配符 * 任意内容
? 任意一个内容
[] 中括号内任意一个内容,[abc][0-9][A-Z][A-Za-z]
[^] 取反,除了[]内的内容
grep 查找字符串(在文件中搜索符合条件的字符串。正则表达式包含匹配)
表达式 * 前一个字符重复任意多次
? 前一个字符重复0次或一次(需要egrep命令)
[] 中括号内任意一个内容
^ 限制行首
$ 限制行尾
注:
/etc/profile(umask环境变量配置文件)
/var/lib/mlocate/mlocate.db(locate命令搜索的后台数据库)
/etc/updatedb.conf(定义locate命令的配置文件)
最大权限有安全风险,要小心赋予。
info(更详细的帮助文件)
find查找命令
find 位置 -name 文件名
-mtime 修改时间(modify)
-atime 按访问时间(access)
-ctime 状态修改时间,即权限等(天)+4 查找4天前的,-4查找4天内的,4查找第四天当天
find / -ctime -4
-uid 数字(按ID查找)
-gid 数字(按组ID查找)
-user 用户名(按属主用户名查找)
-group 组名(按属组名查找文件)
-nouser 查找没有属主的文件
-name 按文件名查找
-size 按大小,+50k:大于50k,-50k:小于50k,50k:等于50k
-type 按文件类型查找,f:普通、d目录、i:链接
find /etc/ -name rpm -type d 查找/etc下rpm目录
-perm 444 按权限查找)
+444 只要有一个大于4即可
-444 全小于4即可
-inum 节点数 (按i节点查找)
-iname (按文件名查找,不区分大小写)
在查找的结果中直接以命令操作
find /tmp/ -mtime +10 -exec rm -rf {} ;(类似于管道符号)
-ok(使用时会询问用户是否)
逻辑连接符:
-a (and 逻辑与)
-o (or 逻辑或)
例:find /etc -size +1k -a -size -10k
在etc目录下查找大于1k并且小于10k的文件
grep -i "root" /etc/passwd (按字符串root查找,i是忽略大小写)
-i (忽略大小写)
-v (反向选择,逻辑非的意思)
-o (统计关键词有多少行)
|管道符
cat install.log | grep lib (在显示文件操作中,grep搜索含有lib的行)
第一次的结果会因管道符以文本流形式做为参数传给命令2
find /etc/ -name "passwd" |xargs ls -l (在/etc目录中查找passwd文件,并以长格式显示)
第一次的结果会因管道符以任务流形式做为参数传给命令2
| 只接收正确输出文本流 |& 接收正确和错误输出的文本流
|xargs 只接收任务流
netstat 查看系统网络状态
-t 查看tcp协议端口
-u 查看udp
-l 监听
-n 以ip和端口号显示
压缩和解压缩
1) zip压缩
zip -r test.zip /test 压缩(-r是压缩目录)
unzip test.zip 解压缩
2) gz压缩,不会打包,不保留源文件
gzip 源文件 压缩
gzip -r 原目录 (只对目录内文件单独压缩)
gzip -c 源文件 > 压缩包 保留源文件压缩
gunzip压缩包 解压缩
gzip -d 压缩包 解压缩
3) bz2 不能压缩目录
bzip2 源文件 (压缩,-k保留源文件)
bzip2 -d 压缩包 (解压,-k保留压缩包)
bunzip2 压缩包 (解压,-k保留压缩包)
4) tar打包,不压缩
tar -cvf 打包名 源文件 (打包)
tar -xvf 文件包名 (解包,-c打包,-x解包,-v显示过程,-f指定打包文件名)
5) 同时压缩打包
gz tar -zcvf 压缩名 源文件 (压缩,-z,识别.gz格式)
tar -zxvf 压缩包名 (解压)
bz2 tar -jcvf压缩名 源文件 (压缩,-j,识别bz2格式)
tar -jxvf 压缩包名 (解压)
6) 查看不解包 tar -ztvf (gz格式,-t,只查看,不解压)
tar -jtvf (bz2格式)
7) 指定压缩位置
tar -jxvf root.tar.bz2 -C /tmp/
8) 指定文件到指定位置解压
tar -xzv -C /tmp -f a.tar.gz 文件名(写用t查看时显示的有路径路径文件名)
9) 压缩指定路径下的文件到当前目录
tar -zcv -C /usr/local/src/ -f 123.tar.gz 123.txt
10) tar通用解压
tar -xf[v] 文件名 (解压)-v显示过程
常用网络命令
w 查询当前登录服务器的所有用户
18:15:08 up 15 min, 1 user, load average: 0.00, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.10.10.1 18:15 0.00s 0.00s 0.00s w
开机时间 登录时间 登录用户数 平均负载 1分钟前 5分钟前 15分钟前
用户名 登陆中端 来源ip 登陆持续时间 用户闲置时间 所有进程占用CPU时间 正在进行的操作
who 查询登录用户
last 列出登录系统相关信息
lastlog 显示所有账户最后一次登录时间
write 给在线用户写消息 (ctrl+d 保存发送 weith root tty1)
wall 对所有在线用户说话
mail 邮件 mail 收信,h 列出标题,q 退出
ping 网络测试(-c指定次数,-s 指定大小 <-s 65536 死亡之ping>)
ifconfig 查询本机ip
ifconfig eth0 10.10.10.11 netmask 255.255.255.0 临时配IP
eth0:0 第一块网卡的第一模拟网卡
netstat 查看网络状态 -an -tuln
telnet ip端口 测试端口是否正常链接
ctrl+]---> quit 退出
netstat tlun (查看本机所有监听端口)
-t tcp -u udp -l 监听 -n 以ip和端口号显示
关机重启
关机
# sync 同步数据,强制把内存数据保存到硬盘
1) shutdown -h 无特殊情况使用
2) init 0 调用内核关机程序,不保存数据
3) halt 同上
4) poweroff 相当于直接断电
重启
shutdown -r now
reboot 会关闭服务
init 6 相当于强制重启
netstat -an | grep ESTABLTSHED | wc-l
查看端口并查找ESTABLTSHED关键字,然后计数
注:没有所有者的文件(只有以下两种是正常的)
1) 外来文件(优盘、光盘、硬盘、windows下的文件)
2) 内核产生的文件(/proc /sys)
/var/log/wtmp 系统登录信息
/var/run/utmp 系统登录信息
/var/spool/mail/root 邮件保存位置
不建议定时重启(风险大)
挂载
/etc/fstab 自动挂载配置文件,设置开机自动挂载
设备不可设置开机自动挂载
使用UUID对于系统来说其唯一性会更好
mount -a 测自动挂载文件(准确度不高,不建议使用)
设备文件名
光盘: redhat 5以前:/dev/hdc
redhat 6以后:/dev/sr0
U盘:和硬盘一样,需查询,用 fdisk -l
光盘挂载:mount -t iso9600 /dev/sr0 /mnt/cdrom(-t是指定文件系统,可不写)
卸载:umount /dev/sr0 或 umount /mnt/cdrom
弹出光驱:eject
U盘挂载: mount -t vfat /dev/sdb1 /mnt/usb(vfat=FAT32,fat=FAT16)
mount -o iocharset=utf8 /dev/sdb1 /mnt/usb/(指定中文编码UTF-8挂载U盘)
卸载: umount /dev/sbb1 或 umount /mnt/usb/
镜像文件挂载: mount -t iso9660 -o loop 镜像文件(*.iso) 挂载点
更改挂载类型: mount -o remount,exec 设备名/挂载点(remount针对已挂载的)
mount -o remount,rw / 重新将根挂载为读写
mount #查看所有已挂载的设备信息
mount -t fs 设备名(绝对路径) 挂载点 (fs代表文件系统)
Linux不识别NTFS文件系统,只识别FAT32及以下
终端界面识别中文:
① 安装中文编码和中文字体
② 终端要能识别中文
驱动
Linux驱动在内核里自动加载,无需手工安装,特殊的需要手工安装
1) 常用驱动直接放入内核,(必备硬件驱动)
2) 不太常用,绝大多数驱动,以模块方式放入硬盘 /lib/modules/2.6.32-642.el6.x86_64/kernel
3) 以模块方式保存在硬盘的驱动,系统认为不常用,默认不安装,若要安装需重新编译内核并加载(NTFS则如此)
4) Linux彻底不识别的驱动需要手工安装,(需要厂商提供硬件驱动)
注:
当前系统字体库 echo $LANG
修改当前系统字体库 LANG=zh_CN.UTF-8 中文
LANG=en_US 英文
ls -l 样式改变
在Linux中使用ll或者ls -l命令过程中,日期的显示总是显示英文日期,觉的很不爽,那么怎么设置显示的格式是按照我们定义的呢?
1、临时更改显示样式,当回话结束后恢复原来的样式
export TIME_STYLE='+%Y-%m-%d %H:%M:%S' # 直接在命令中执行即可
2、永久改变显示样式,更改后的效果会保存下来
修改/etc/profile文件,在文件内容末尾加入
export TIME_STYLE='+%Y-%m-%d %H:%M:%S'
执行如下命令,使你修改后的/etc/profile文件配置内容生效
source /etc/profile
3、使用ls -l --time-style=full选项
4、查看测试
[root@localhost opt]# ll
-rw-r--r-- 1 root root 204018162 2019-05-21 09:26:16 mongodb-3.2.3.tgz
-rw-r--r-- 1 root root 194869554 2019-05-21 09:26:17 zookeeper-3.4.8.tgz