linux之基本使用
linux
安装
- 安装注意
- 虚拟机分配的资源不能超过本机自身资源
- 网络连接:NAT模式,仅能本机的windows访问,内网其他机子无法访问。桥接:内网其他机子也可访问
- 安装vm tools 是windows与linux交互
目录
- linux目录结构的特点?
以'/'为根目录的树形结构。在linux的目录中一切皆文件 - 常见目录
- /dev 硬件设备映射为文件
- /media U盘挂载处
- /root 超级用户的主目录
- /bin 存放最常用的指令
- /lib 动态连接共享库
- /opt 安装包
- /boot 系统配置
- /mnt 共享文件处
- /etc 配置文件和子目录 my.config
- /home 每个用户专属的文件夹存放处
- /usr 软件安装处
- /usr/local 软件安装的目录
- /var 经常被修改的文件。如日志
远程连接
- 如何远程连接?
通过XShell之类的软件连接,连接之前要确定linux已经开启sshd服务。通过终端输入setup
查看
通过xftp用来传输文件
vi与vim
-
什么是vi与vim?
文本编辑器,vim是加强版 -
三种常见模式
- 插入
按下 i I o O a A R 任一字母进入编辑模式 - 命令行
: 进入模式 q 退出 q! 强制退出 wq 保存退出 - 正常
vim进入 其他模式通过ESC进入该模式
- 插入
-
常用快捷键
yy 拷贝当前行 在正常模式下
5yy 拷贝5行 在正常模式下
p 粘贴 在正常模式下
dd 删除当前行 在正常模式下
5dd 删除5行 在正常模式下
G 文档末行 在正常模式下
gg 文档首行 在正常模式下
u 撤销 在正常模式下
20 shift g 跳转到20行 在正常模式下
/hello 查找hello 在命令行模式下
:set nu 显示行号 在命令行模式下
:set nonu 取消行号 在命令行模式下
开机与重启与注销
-
关机重启
shutdown
shutdown -h now
马上关机
shutdown -h 1
一分钟关机
shutdown -r now
马上重启
halt
关机
reboot
重启
sync
同步内存指令,把内存数据写入 -
用户登陆注销
通过普通用户登录,尽量不用root登录
logout
注销用户
用户管理
- 用户组
每个用户都至少属于一个用户组 - 添加用户
useradd [选项] 用户名
添加成功会自动创建对应的home目录 - 添加用户到并且指定其对应的home目录
useradd -d /home/test/ xiaoming
- 指定密码
passwd xiaoming
- 删除用户
userdel 用户名
- 删除保留对应home
userdel xiaoming
- 删除不保留对应home
userdel -r xiaoming
- 查询用户信息
id 用户名
- 切换用户
su 用户名
- 返回用用户
exit
- 查询当前用户
whoami
- 增加组
groupadd 组名
- 添加用户指定组
useradd -g 用户组 用户名
- 修改用户组
usermod -g 用户组 用户名
- 用户信息存放在哪里?
/etc/passwd - 用户组信息存放在哪里?
/etc/group - 密码信息存放在哪里?
/etc/shadow
运行级别
- linux分七个运行等级,类比Windows的普通模式与安全模式,配置文件在etc/inittab
0-关机
1-单用户
2-多用户无网络
3-多用户有网络
4-系统未使用保留给用户
5-图形界面
6-系统重启
init[0123456]
帮助命令
- 查看帮助目录
man ls
help cd
文件目录类
- 如何显示当前目录的绝对路径?
pwd
- 如何查看当前目录内容?
ls -al
:显示所有,包括隐藏
ls -l
: 以列表信息显示 - 如何切换目录?
cd ..
上一级
cd ~
家目录 - 如何创建目录?
mkdir /home/dog
创建单级目录
mkdir -p /home/animals/tiger
创建多级目录 - 如何删除目录?
mkdir /home/dog
删除空目录
rm -rf /home/tigers
删除非空目录 - 如何创建文件?
touch 文件名称
- 如何拷贝文件?
cp source dest
拷贝单个文件
cp -r source dest
递归拷贝文件夹
\cp -r source dest
递归拷贝文件夹不提示覆盖 - 如何移除文件或目录?
rm /home/aaa
rm -r /home/aaa
递归删除整个文件夹
rm -rf /home/aaa
递归删除不提示 - 如何重命名或者移动?
mv oldName newName
重命名
mv fileName /temp/
移动到文件夹 - 如何查看文件?
cat /etc/profile
只读文件
cat -n /etc/profile | more
分页显示且有行号 - 如何重定向和追加?
ls -l>fileName
列表内容覆盖写入文件中
ls -al>>=fileName
列表内容追加写入到文件中
cat fileName1>fileName2
文件1覆盖到文件2
echo "txt">>fileName
- 如何输出内容到控制台?
echo [选项] [内容]
echo $path 输出环境变量
- 查看部分文件?
head /etc/profile
默认查看文件前10行
head -n 5 /etc/profile
查看文件前5行
tail /etc/profile
默认查看文件后10行
tail -n 5 /etc/profile
查看文件后5行
tail -f /etc/profile
动态追踪监视文件,用于查看日志 - 如何查看执行过的指令?
history
查看所有指令
history 10
查看10条历史指令
!33
执行第33条历史指令
时间日期
- 如何显示当前时间?
date
date +%Y
显示年
date +%m
显示月
date +%d
显示日
date "+%Y-%m-%d"
按规定的格式显示时间 - 如何设置时间?
date -s "2019-10-10 11:22:22"
按字符串内容指定时间 - 如何查看日历?
cal
显示当月
cal 2020
显示指定年份
搜索查找
- 如何查找?
find /home -name hello.txt
在home目录的范围按文件名查找
find /opt -user nobody
在opt目录范文内按文件归属用户名查找
find / -size +20M
在根目录下查按文件大小查找
find / -name *.txt
在根目录查找所有txt文件 - 过滤和管道的应用?
cat hello.txt | grep yes
cat查看文件,管道 | 把cat查看的内容交给grep指令按 yes 条件查找
cat hello.txt | grep -n yes
带行号
cat hello.txt | grep -i yes
忽略大小写
解压压缩
- 如何解压压缩文件?
gzip hello.txt
对文件hello.txt进行压缩并且不保留原文件
gunzip hello.txt.gz
对文件解压 - 如何解压压缩文件和目录?
zip -r test.zip /home/
递归压缩整个home目录于test.zip中
unzip -d /opt/tmp test.zip
把test.zip解压到/opt/tmp目录下 - 如何打包和解包?
tar -zcvf a.tar.gz a1.txt a2.txt
把a1.txt a2.txt两个文件打包压缩于a.tar.gz中
tar -zcvf home.tar.gz /home/
递归打包整个home目录zcvf
tar -zxvf home.tar.gz
解压整个包zxvf
tar -zxvf home.tar.gz -C /opt/
解压到/opt目录中
组管理和权限管理
-
文件的所有者,所在组,其他组。所有者和所有组不一定一致。
ls -ahl
查看文件所有者
chown root test.txt
修改文件所有者
chgrp centos test.txt
修改文件所在组
usermod -g root centos
修改centos到root组中 -
文件类型有哪些?
-
普通文件
d:
目录
l
软链接
c
字符设备,键盘
b
块设备,硬盘 -
文件权限怎么查看?
查看文件权限,查看一个文件,前面先显示的是所有者,所在组,其他组三个权限等级
权限等级分为读写运行
-rw-r--r-- 1 tom police 6 3月 20 19:24 ok.txt
0-9位
-
类型为文件
rw-
所有者读写权限
r--
文件所在组只有读权限
r--
文件其他组只有读权限
1
子目录个数或者硬连接个数
6
文件字节大小,文件夹恒为4096 -
权限种类rwx?
对于文件 rwx 读取,修改,执行
对于目录 rwx 读取ls查看,修改mkdir创建删除重命名目录,执行cd可以进入目录 -
如何修改权限?
r=4 w=2 x=1 数组表示法
7=rwx
6=rw
5=rx
3=wx
0=无权限
u:所有者 g:所在组 o:其他人 a:所有人
chmod u=rwx,g=rx,o=rx abc
修改abc权限,所有者rwx,其他人rx,所在组rx
chmod u-x,g+w abc
所有者取消x权限,所有组增加w权限 -
如何修改文件所有者?
chown -R tom kkk/
递归修改kkk文件夹的所有文件的所有者为tom -
如何修改文件所有者?
chgrp -R bandit kkk/
任务调度
-
crontab
-
如何设置调度文件?
存放于/etc/crontab -
调度文件的理解?
crontab -e
进入调度文件编辑,部署调度任务。可以直接写入任务或者通过调用sh指令文件写入任务,sh指令文件要设置x权限。
*/1 * * * * ls -l /etc >> /tmp/to.txt
表示每分钟执行,把etc列表追加写入/tmo/to.txt -
如何实际应用?
vim matask.sh
编辑一个sh文件,写入执行内容date >> /tmp/mydate
,给与mytaskx权限,通过corntab -e
进入部署文件,写入*/1 * * * * /home/mytask.sh
-
举例应用?
每天两点自动备份mysql中的testdb到文件mydb.bak中
分区
- 如何查看系统的分区和挂载的情况?
lsblk -f - 如何查询磁盘情况?
df -lh
- 如何查询某个目录使用情况?
du -ach --max-depth=1 /opt
-s 指定目录(否则为当前目录)
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时 - 实用指令?
ls -l /home | grep "^-" | wc -l
先查询,用grep过滤"-"得到所有文件,用wc统计。
ls -lR /home | grep "^-" | wc -l
先查询,用grep过滤"-"得到所有文件,用wc统计。-R递归
tree
树形展示文件
网络配置
- 自动获取IP的缺点?
可能IP地址会发生改变,不适合服务器应用。 - 如何固定IP?
通过配置 /etc/system/network -scripts/ifcfg-eth0 - 如何查看网络情况?
-an
按一定的顺序
-p
显示哪个进程在调用
netstat -anp | more
查看所有网络
netstat -anp | sshd
查看sshd的网络情况
进程管理
- 如何查看系统执行的进程?
ps -a
当前终端所有进程信息
ps -u
用户格式显示进程信息
ps -x
后台进程运行的参数
ps -aux | grep sshd
查看sshd相关进程 - 如何查看父进程?
ps -ef | more
查看父进程ppid - 如何终止进程?
kill -9 3333
通过进程号3333杀进程,-9强制自杀
killall gedit
通过进程名杀死所有同名称的进程 - 查看进程树
pstree
进程树
pstree -p
进程树带进程号
pstree -u
进程树带进程所属用户 - 动态监控进程?
top
3秒刷新一次
在top中输入u再输入用户名,监控某用户
在top中输入k再输入进程id号,杀死某进程
在top中输入N,按PID排序
在top中输入M,按内存排序
在top中输入P,按CPU排序
top -d 10
10秒刷新一次
服务管理
- 服务本质其实就是进程,运行在后台,监听着一个端口,等待着程序的请求。
- 常见指令与参数?
service 服务名 [start|stop|restart|reload|status]在centos7中使用的是systemctl - 如何检测端口是否在监听?
telnet 192.168.52.3 22
windows的指令,查看服务器的22端口。 - 查看所有服务?
setup
ls -l /etc/init.d/
- 服务的运行级别?
chkconfig --list
查看所有服务的在不同的运行级别是否启动
chkconfig --level 5 sshd off
sshd在5级别时不自动启动服务。
rpm包
- rpm,类比setup.exe
- 如何查询rpm?
rpm -qa | grep firefox
查看有没有安装firefox
rpm -qi firefox
查询安装信息
rpm -ql firefox
查询安装了的文件和安装路径
rpm -qf /etc/passwd
查询文件属于哪个软件包 - rpm卸载?
rpm -e firefox
卸载firefox
rpm -e --nodeps firefox
强制卸载firefox - rpm安装
rpm -ivh firefox.rpm
安装firefox
-i
安装
-v
提示
-h
进度条
yum包
- 基于rpm管理,优点自动安装依赖包
yum list | grep firefox
查找yum install firefox
运行