01、Linux基础命令
linux 一些主要目录的认识:
/bin 二进制可执行命令 /boot 存放系统引导文件,如 内核、grub 等 /dev 设备文件 /etc 系统配置目录 /home 普通用户家目录 /lib 系统库文件 /lib64 64位库 /proc 进程目录,了解系统的一个窗口,在此可以查看很多内核信息 /root root用户的家目录 /sbin 管理员使用命令的存放目录 /selinx selinux 工作目录 如果该目录为空表示禁用了 selinux 如果不为空,则表示启用了 selinux /src 系统、用户源文件工作目录 有时用户在编译源代码时,会把代码放到该目录 /var 存放比较大的,经常变化的文件 比如系统经常把日志放在该目录
linux 命令:
命令分类:
linux 把命令分为内部命令和外部命令.
内部命令:
shell 自带的命令,常驻内存
外部命令:
不常驻内存,以文件的形式放在磁盘上
判断方法:
能执行,却找不到文件就是内部命令
或者
type cd
获取命令帮助的方法:
1) man 格式:man 命令名 如: man fdisk --获得fdisk的帮助信息 2) help 格式: help 命令名 命令名 --help 如: help cd useradd -help 3) info 侧重介绍信息 如: info fdisk info mount
使用命令前,了解命令特征:
1、命令、参数等区分大小写
2、程序能否执行与扩展名没有关系,与文件能否执行,是否有执行权限有关
3、命令名和路径可以使用 tab 来补齐
文件、目录管理命令
ls 列文件目录清单
格式: ls [option] 查看目标
如: ls /soft
ls /boot
ls /var
ls --如果省掉目标的话,查看当前目录
option:
-l 长格式显示
-a 显示全部(包括隐含文件)
隐含文件方法:文件名以 . 开头
-t 按修改时间排序
-r 反向排序
-S 按大小排序
ls -l
-rw-------. 1 root root 1638 10月 29 23:24 anaconda-ks.cfg
-rw-r--r--. 1 root root 55504 10月 29 23:24 install.log
第一列的第一位:文件类型
- 普通文件
d 目录
b 块设备文件
c 字符设备文件
l 软链接
p 管道文件
第一列2-10 表权限
linux 权限用三个字母表示 r(读) w(写) x(执行)
4 2 1
9位分成三组:每三位一组,每组对应一类用户:属主(自己)、
开放组、其它用户
第二列:硬链接数
第三列:属主
第四列:开放组
第五列:文件大小
第六列:修改日期
第七列:文件名
touch 新建空文件,如果文件存在不覆盖,但是会更新其修改时间
rm 删除文件或目录
格式: rm [option] 目标文件或目录
option:
-r 删除目录
-f 强制删除不提示
rf 组合时要慎用
如果删除目录: rm -r 目录名
如: rm /test/a --删除/test/ 下的a
rm b --删除当前目录下的 b
mkdir 创建目录
mkdir [option] 目录名
option:
-p 如果目录的上层目录不存,自动创建
-v 显示过程
例:在/下创建 test
mkdir /test
例:在 / 下创建 u01
mkdir /u01
例:在 /soft 下创建 myshare
mkdir /soft/myshare --做的时候要确保 /soft要存在
例:在 /u01 建 app
mkdir -pv /u01/app
cp 复制文件
格式: cp 源文件 目标文件
option:
-r 复制目录
-f 强制覆盖,不提示
-i 覆盖时提示
例: cp /etc/yp.conf /test/
把/etc/yp.conf 复制到 /test 下
scp 网络复制
格式: scp 源文件 目标文件
如果文件不在本机的表示方法:
ip:路径
如:172.16.1.116:/etc/fstab
表示 172.16.1.116 的 /etc/fstab 这个文件
本机文件表示无须ip
如:/etc/fstab
例:把 172.16.1.132 的文件 /etc/fstab 复制到本机的 /test 下
scp 172.16.1.132:/etc/fstab /test/
例:把本机的 /etc/yp.conf 复制到 172.16.1.123 下的 /root
scp /etc/yp.conf 172.16.1.123:/root/
mv 移动或改名
格式:mv 源文件 目标文件
例: mv a b --将当前目录下的文件a 改名为b
例: mv a /tmp/b --将当前目录下的a 移动到/tmp 下,并改名为 b
究竟是改名还是移动,主要看前后位置,前后位置没变就是改名
移动和改名可以同步进行
练习: 在 / 建两个目录 test abc
把 /etc 下所有 .conf 文件拷到 abc 下,再看abc
下以a 开头的文件移到 test 下
mkdir /test
mkdir /abc
cp /etc/*.conf /abc/
cd /abc
ls
mv a* /test/
ls /test 也可以 cd /test;ls
cd 切换目录
格式:cd 目标目录
cd .. --回到上一级
cd --回到家目录,查看用户家目录 echo $HOME
cd ~ --回到家目录
cd ~tom --到tom的家目录
例: cd /test --将当前目录转到 /test
cd test --将当前目录转到当前目录下的 test
pwd 显示当前目录
rmdir 删除空目录
cat 显示文件内容
格式: cat [option] 文件名
option:
-n 显示行号
-b 显示行号
-E 显示行尾符
-A 显示非打印字符
如: cat /proc/cpuinfo
more 分屏显示文件内容
less 分屏显示文件内容
还可通过箭头向上或向下移动看
练习:看下 /etc/passwd 文件内容
看下 /etc/shadow 文件的内容
重定向
重定向即改变输入或输出的方向
输入重定向
<
[root@s100 ~]# cat myfile
123456
123456
[root@s100 ~]# passwd <myfile
输出重定向
> 以覆盖的方式输出重定向
>> 以追加的方式输出重定向
双向重定向 tee
一般的重定向,将信息写到文件后,屏幕就不会再显示了,tee 既能把信息显示在屏幕上,同时也能把信息写到文件,这就是称之的双向重定向
操作时一般用管道的形式
如: uptime | tee myfile
重定向的编码
0 标准输入
1 标准输出
2 错误输出
由于信息的不同,于是重定向时就有变化了
1>
2>
cat myfile abcd 1>a.txt 2>b.txt
--将标准输出定向到a.txt 错误信息定向到b.txt
cat myfile abcd 1>a.txt 2>&1
--将标准输出定向到a.txt 错误信息定向到标准输出的文件(即放到一块)
实际上可以简写为
cat myfile abcd >& a.txt
>/dev/null --将信息定向到空设备,将所有的输出信息丢弃掉,不显示
管道 |
管道主要用来将命令连接起来,将前一个命令处理的结果,传给后一个
有时一些需求比较复杂,可能一个命令没办法完成,这里就可以用管道
让每个命令处理一部分,最后完成需求。使用格式上,就是将命令用 “|” 连起来
例:显示每个用户的用户名和所使用的shell
cat /etc/passwd | awk -F: '{printf("%-15s%s\n",$1,$7)}'
cat /etc/passwd | awk -F: '{printf("%-15s%s\n",$1,$7)}'|sort -k2
例:看 /etc/passwd 中是否有root的行
cat /etc/passwd | grep root
例:看 /etc/passwd 有没有 shutdown 的行
cat /etc/passwd | grep shutdown
例:看无线网卡的地址
ifconfig | grep wlan0 | awk '{print $5}'
head 看文件头的前多少行
head /etc/passwd --默认看前10行
head -n 5 /etc/passwd 看文件前 5 行
tail 看文件后的多少行
tail -n 3 /etc/passwd 看文件的最后3行
tail -f /etc/passwd 监控文件的变化
看文件的指定行,例只看文件的第3行
head -n 3 | tail -n 1
查看文件指定范围的行,如 3-5 行
head -n 5 /etc/passwd | tail -n 3
vi/vim 使用
vi/vim 是linux下使用非常广泛的文本编辑器
vim 的工作模式:
编辑模式
该模式主要用于输入一些编辑指令,如 dd, u 等,不能输入文本内容
它的特点是 左下角无任何提示字样
切换到该模式的方法:按左上解的 ESC 键
插入模式
该模式主要用于插入文本,
它的特点是 左下角有 “插入”字样
切换到该模式的方法: i I a A o O s S
末行命令模式
主要用来输入一些编辑指令,特点是左下角有个冒号(:)
切换到该模式的方法:编辑模式下(如果不在编辑模式,要切到编辑模式),
输入冒号(:)
常用的末行命令:
w 保存
q 退出
wq 保存退出
w! 不保存退出
set number 显示行号
set nonumber 不显示行号
编辑模式下的一些指令:
删除:
dd 删除行
DD 只清空当前行
50dd 删除50行
d^ 删除到行首
d$ 删除到行尾
撤消:
u 撤消
复制
yy 复制一行
5yy 复制5行
p 粘贴
方法二: v 进入可视化操作 -> 移动光标选内容 -> y (copy) -> 移到光标到目标位置 -> 在编辑模式下 按 p
移动
方法一:先复制,再删除
方法二: v 进入可视化操作 -> 移动光标选内容 -> c (cut) -> 移到光标到目标位置 -> 在编辑模式下 按 p
查找
/ +查找字符 (向下查找)
如: /abc --查看字符abc
/yp --查找字符yp
? +查找字符 (向上查找)
如: ?abc --查看字符abc
?yp --查找字符yp
n 下一个
替换
要在末行命令模式下
范围s/原字符/新字符/参数
范围:
1 第1行
10 第10行
$ 最后1行
1,$ 从第1行到最后1行
% 全文
参数
g 全局替换(适用于一行有多个符合条件的字符)
例:将1-5行中的#换成*
:1,5s/#/*/g
例:把所有的#删除掉
:%s/#//g