LIUNX笔记

命令格式与目录处理命令
命令格式: 命令 [- 选项] [参数]
说明:
1. 个别命令使用不遵循此格式
2. 当有多个选项时,可以写在一起
3. 简化选项与完整选项
如:-a 等于 -all

ls
原意:list
ls -a 显示所有文件
ls -l 长格式显示 详细信息的所有非隐藏文件
ls -lh 人性化显示,文件大小使用对应单位表示
ls -d 查看目录属性
ls -i 查看文件的 inode 号 (inode 存储文件的详细信息)
-rw-r- -r- -
- 二进制文件 d 目录 l 软连接文件
rw- r- - r- -
U G O
表示 ugo 权限 u 为所有者,g 为所属组 o 为其他
r 为读,可以查看文件内容,列出目录中的内容
w 为写,可以修改文件内容,可以在目录中创建删除文件
x 为执行,可以执行文件,可以进入目录
有 r 权限必有 x 权限

1 目录处理命令
mkdir 创建目录
原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
语法: mkdir -p[目录名]
cd 切换目录
原意:change directory
命令所在路径:shell 内置命令
执行权限:所有用户
语法:cd 目录
cd .. 返回上一级

pwd 显示当前目录
原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
语法:pwd

rmdir [目录] 删除空目录
原意:remove empty directories
命令所在路径:/bin/rmdir
执行权限:所有用户

cp 复制文件或目录
copy
语法:cp -rp [原目录或目录][目标目录]
-r 复制目录
-p 保留文件或目录

mv 剪切和改名
move
语法:mv[原目录或文件][目标目录]

rm 删除文件或目录
remove
语法: rm -rf[文件或目录]
-r 删除目录
-f 强制执行
touch 创建空文件
语法:touch [文件名]
所创建文件的所有者的组为其默认的缺省组

cat 显示文件内容 -n 显示行号
语法:cat [文件名]

tac 显示文件内容(反向列示)

more 分页显示文件内容
空格或 f 翻页
回车 换行
q 退出


less 分页显示文件内容(可向上翻页)
按 pageup 键或上箭头进行向上翻页
其余操作与 more 相同
/ 关键词 进行搜索

head 显示文件前几行
head -n 行号 文件路径
不加 -n 默认显示前 10 行

tail 显示文件后几行
tail -n 行数 文件路径
-f 动态显示文件末尾内容
不加 -n 默认显示后 10 行


ln 生成链接文件
link
ln -s[源文件][目标文件]
-s 创建软连接
例:$ln -s /etc/issue /tmp/issue.soft
创建文件 /etc/issue 的软链接 /tmp/issue.soft
$ln -s /etc/issue /tmp/issue.hard
创建文件 etc/issue 的硬链接 /tmp/issue.hard
软链接:类似快捷方式 权限皆为 rwxrwxrwx
硬链接:1. 拷贝 cp -p + 同步更新
2. 源文件丢失仍可访问,通过 i 节点识别是否为硬链接,源文件与硬链接节点相同,软链接不同
3. 不能跨分区
4. 不能针对目录使用


2. 权限管理命令
chmod 改变文件或目录权限
change the permissions mode of a file
语法: chmod [{ugoa}{+-=}{rwx}][文件或目录]
chmod [mode=421][文件或目录] r=4 w=2 x =1
如 chmod 572 文件
572 即表示 r-xrwx-w-
chmod -R 递归修改 修改某目录与其下属所有文件权限

chown 改变文件或目录的所有者
change file ownership
change [用户][文件或目录]
只有文件所有者或 Root 用户可以修改

chgrp 改变文件或目录的所属组
change file group ownership
chgrp [用户组][文件或目录]

umask 显示,设置文件的缺省权限
the user file-creation mask
umask [-S]
-S 以 rwx 形式显示新建文件的缺省权限
缺省创建的文件不具有可执行权限,因此使用 umask 指令显示 touch 指令创建的新文件时,rgo 都没有 x 权限
直接在命令行输入 umask 显示 0022 第一个 0 表示特殊权限 022 表示 --- -w- -w-
这时 umask 默认设置目录的权限为 777 与其不重叠的部分
默认创建新目录的权限为 rwx r-x r-x
默认创建新文件的权限为 rw- r-- r--

3. 文件搜索命令

find 文件搜索
find [搜索范围][匹配条件]
$find /etc -name init
在 etc 目录下查找文件 init
$find /etc -name *init*
* 通配符 匹配任意含有 init 的字符
?通配符 匹配单个字符
-name 区分大小写,-iname 不区分大小写
$find / -size +204800 +n 大于 - n 小于 n 等于
linux 中一个数据块为 512 b 即 0.5k 因此 204800 数据块 =100MB
在根目录下查找大于 100Mb 的文件
$find /home -user shenchao
在 home 目录下查找所有者为 shenchao 的文件
-group 根据所属组查找
$find /etc -cmin -5
在 /etc 下查找 5 分钟内被修改过属性的文件和目录
-amin 访问时间 access
-cmin 文件属性 change
-mmin 文件内容 modify

$find /etc -size +163840 -a -size -204800
在 /etc 下查找大于 80Mb 小于 100Mb 的文件
-a 两个条件同时满足
-o 两个条件满足其中一个即可

-exec 或 -ok 命令 {}\; 对搜索结果执行操作
-ok 带有确认环节
$find /etc -name inittab -exec ls -l{}\;
在 /etc 下查找 inittab 文件并显示其详细信息

-type 按文件类型查找
-inum 根据 i 节点查找

其他搜索命令
locate 在文件资料库中查找文件
在 centOS7 以上的系统中使用“locate”文件查找命令,发现该命令不可用。

检查了下,原来是 centos7 默认没有安装该命令,在联网状态运行“yum install mlocate”命令即可安装 "locate" 命令。

安装完之后运行“locate inittab”, 发现结果如下:

  locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

并没有查询出相关文件,此时需要线运行下“updatedb”命令初始化一下文件库,运行“locate inittab”, 发现结果如下:

  /etc/inittab

  /usr/share/vim/vim74/syntax/inittab.vim

这时“locate”命令就可以正确使用了。

updatedb 升级文件资料库
每次新建文件后都需要升级一下才可以被搜索到
且 locate 无法搜索到 tmp 临时文件夹下的文件
locate -i 不区分大小写

which 命令 搜索命令所在目录及别名信息

whereis 命令 搜索命令所在目录及其帮助文档路径

grep 命令 在文件中搜寻字串匹配的行并进行输出
grep -iv[指定字串][文件]
-i 不区分大小写
-v 排除指定字串

4. 帮助命令
man 获得帮助信息
manual
man [命令或配置文件]
/-l 可以在文档中查找对应详细指令的意思

whatis 查看简易的命令介绍
apropos 查看简易的配置文件信息

命令 --help
列出该命令常见选项

help 获得 Shell 内置命令的帮助信息

5. 用户管理命令
useradd 添加新用户
useradd 用户名

passwd 设置用户密码
passwd 密码

who 查看登录用户信息
横行显示登录用户名 登录终端 登录时间 IP 地址

w 显示更加详细的用户信息

6 压缩解压命令


gzip 压缩文件
gzip [文件]

gunzip/gzip -d 解压缩.gz 文件
gunzip/gzip -d[压缩文件]

gzip 只能压缩文件,不能压缩目录,且压缩完后不保留源文件

tar 打包目录
tar 选项 [-zcf][压缩后文件名][目录]
$tar -zcf Japan.tar.gz tmp
-c 打包
-v 显示详细信息
-f 指定文件名
-z 打包同时进行压缩
$tar -zvxf Japan.tar.gz
-x 解包
-z 解压缩

zip 压缩文件或目录
zip 选项 [-r][压缩后文件名][文件或目录]
-r 压缩目录
保留原文件

unzip 解压缩 zip 文件

bzip2 压缩文件
bzip2 选项 [-k][文件]
-k 产生压缩文件后保留源文件
压缩后文件格式为.bz2(压缩比最大)
-jcf 打包压缩成.tar.bz2 的压缩目录
-xjf 解压缩
bunzip 解压 bz2 文件

7 网络命令


write 给用户发信息
write 用户名
进入输入状态后,使用 ctrl+D 保存结束

wall 发广播信息
原意:write all
进入输入状态后,使用 ctrl+D 保存结束

ping 测试网络连通性
-c 指定发送次数

ifconfig 查看和设置网络信息
语法 if config 网卡名称 IP 地址
mail 查看发送电子邮件
进入输入状态后,使用 ctrl+D 保存结束

last 列出所有用户登录退出时间与 IP 地址等详细信息
lastlog 列出所有用户上次登录详细信息
-u 指定特殊用户,后加用户 UID,检查某特定用户上次登录信息

traceroute 显示数据包到主机间的路径

netstat 显示网络相关信息
-t TCP 协议
-u UDP 协议
-l 监听
-r 路由
-n 显示 IP 地址和端口号
如:
#netstat -tlun 查看本机监听的端口
#netstat -an 查看本机所有的网络连接
#netstat -rn 查看本机路由表

setup 配置网络
RedHat 特有命令

mount 挂载命令
mount [-t 文件系统] 设备文件名 挂载点
如:
#mount -t iso9660 /dev/sr0 /mnt/cdrom

unmount 卸载命令 不能在挂载点进行卸载
unmount 设备文件名

8. 关机重启命令


shutdown {选项}+ 时间
-c 取消前一个关机命令
-h 关机
-r 重启

其他关机命令 halt poweroff init 0
其他重启命令 reboot init 6

系统运行级别 init
0 关机
1 单用户(类似 Windows 安全模式,只启动最基本的服务)
2 不完全多用户,不含 NFS 服务
3 完全多用户
4 未分配
5 图形界面
6 重启

inittab 配置文件储存在 etc 文件下

runlevel 查询当前系统运行级别(默认为 3)

logout 退出当前用户

二. 文件管理器 vim
vim 常用命令
vi+ 文件名 进入文件命令模式
wq 退出
i/a/o 进入插入模式 esc 键 退出插入模式
输入冒号进入编辑模式 按回车退出
插入模式
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行

定位命令
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第 n 行
:n 到第 n 行
$ 到行尾
0 到行首

删除命令
x 删除光标所在处字符
nx 删除光标所在处后 n 个字符
dd 删除光标所在行,ndd 删除 n 行
dG 删除光标所在行到文件末尾内容
D 删除光标所在处到行尾内容
:n1,n2 d 删除 n1 至 n2 范围的行

复制粘贴命令
yy 复制当前行
nyy 复制当前行以下 n 行
dd 剪切当前行
ndd 剪切当前行以下 n 行
p,P 粘贴在当前光标所在行下或行上

替换和取消命令
r 取代光标所在处字符
R 从光标所在处开始替换字符,按 esc 结束
u 取消上一步操作


搜索和搜索替换命令
/string 搜索指定字符串 string(严格区分大小写)
n 搜索指定字符串的下一个出现位置
:set ic 切换为不区分大小写模式
:set noic 切换为区分大小写模式
:%s/ 要替换的 / 替换后的 /g 全文替换指定字符串
:起始行,终止行 / 要替换的 / 替换后的 /g 在一定范围内替换指定字符串

保存和退出命令
:w 保存修改
:w new_ 文件名 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改并退出
:q!不保存修改退出
:wq!保存修改并退出(文件所有者与 root 用户可以使用)