0. 学习使用 linux 的常用命令, 学习的第一天
很显然, 直接买一台 linux 会简单方便很多, 所以在阿里云上买了一台学习机, 如果不是准备太深入 linux 的, 这样就可以了. 如果是用 VMware 安装的话, 会麻烦一点, 安装请移步其他教程. VMwear 安装 Centos7 超详细过程
本文基于 CentOS 7, 如果有命令用不了, 请百度如何使用
学习资源 史上最牛的 Linux 视频教程—兄弟连
1. Linux 常用命令
1.1 文件处理命令
1.1.1 命令格式和目录处理命令 ls
ls [选项] [参数] (描述: 查看文件信息)
-l long 显示详细 (长的) 信息
-a all 显示隐藏文件
-i iNode 显示文件唯一的 iNode 节点值
-h human 对人友好的显示信息 (文件长度用 k, m 表示)
-d direct 显示指定的目录本身的信息 (而不是它的子级信息)
ll 表示 ls -l (别名)
分析执行 ls -l [文件或目录名]
显示的这些目录信息的意思
[root@miyahejuzi ~]# ls -l /
总用量 68
drwxr-xr-x 5 root root 4096 8 月 21 23:14 a_a
lrwxrwxrwx. 1 root root 7 8 月 18 2017 lib -> usr/lib
-rw-r--r-- 1 root root 0 8 月 20 20:16 a.txt
#--------------------------------------------
drwxr-xr-x 表示此文件或目录的
第一个字符 d, l, - 分别表示此项是目录 (direction), 软连接 (link), 文件 (-)
第 2-4, 5-7, 8-10 分别表示此文件的持有者, 此用户加入的组, 其他用户对此文件的权限; r 读, w 写, x 执行 (对目录来说就是能够进入)
5 表示引用计数
root 表示此项的所属者
第二个 root 表示此所属组
4096 表示此文件的大小
8 月 21 23:14 时间
a_a 文件名
1.1.2 目录处理命令
pwd (描述: 查看当前所处的目录)
cd (描述: 切换目录)
touch (参数) 创建文件
mkdir [选项] (参数) (描述: 创建目录)
-p : 直接创建多级目录
cp [选项] (源目录) (目标目录) (描述: 复制)
-r : 复制目录
-p : 保留文件属性
mv [选项] (源文件或目录) (目标文件或目录) (描述: 移动 / 剪切)
-b : 若需覆盖文件,则覆盖前先行备份。
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i : 若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u : 若目标文件已经存在,且 source 比较新,才会更新 (update)
(这个 mv 有点复杂, 第二个参数目标文件或目录如果不存在的话, 则是移动并重名. 如果存在, 第二个参数是目录则移动到子级, 是文件会提示是否覆盖, 但是只能文件覆盖文件, 目录覆盖目录)
rm [选项] (目录/文件)(描述: 删除目录/文件)
-r : 删除目录
-f : 不提示的删除目录
# 不要乱输 rm -rf /
1.1.3 文件处理命令
cat (描述: 显示文件内容)
-n : 显示行号
tac (描述: 倒过来显示文件内容)
more
空格 翻页
enter 下一行
q 退出
less 和 more 一样只是添加了搜索
输入 / 参数 就能此文件和参数有关的值了
head 显示头几行
-n 显示几行
tail 显示末尾几行
-n
-f 动态更新
1.1.4 链接命令
ln 创建硬链接文件 (相当于 win 的快捷方式)
-S 创建软连接 (大写的S)
不能跨分区创建链接
硬链接 iNode 的值相同
- 不能指定目录
- 同步更新文件内容, 但是源文件删除, 硬链接不会删除
软连接
- 实际访问权限是源文件的权限
1.2 权限管理命令
1.2.1 权限管理命令 chmod
r = 查看, w = 修改, x = 执行
r=4, w=2, x=1
chmod 777 [文件 / 目录名]
三个数字表示 所属人, 所属组, 其他人
数字的具体值则是 r,w,x 相加的值.
比如 7 = 4 + 2 + 1 = r w x
6 = 4 + 2 = r w -
一个文件或者目录是否能删除, 需要用户对此目录的上级目录拥有写权限, 才能修改
1.2.2 其他权限管理命令
# 只有 root 用户才可以修改
chown [用户] (目录 / 文件) 修改所有者
chgrp [用户] (目录 / 文件) 修改所属组
umask -S 查看缺省的权限 (创建文件的默认权限)
mask 权限掩码 (0022)
1.3 文件搜索命令
1.3.1 find 命令
find [搜索范围] [匹配条件] # 比较耗资源, 不选匹配条件则全部显示
-name 参数
* 匹配任意字符 ? 匹配单个字符
-iname 忽略大小写
-size 指定文件大小
- 小于 + 大于 单位是数据块 1 数据块 = 0.5kb
-a and
-o or
-user 所有者 -group 所属组
-type d 目录, l 链接, f 文件
-exec 命令 {} \; 对查询结果执行指定命令
-inum 更具 iNode 的值查找
1.3.2 其他文件查找命令
locate 本地缓存了一个资料库, 查找则是在资料库里面查找
which 查找命令所在的位置
whereis 查找命令所在的位置, 和帮助文档所在的位置
grep [选项] (需要查找的词) (文件名)
-i 忽略大小额
-v ^# 正则忽略以 #开头的行
1.3.3 帮助命令
man 查看命令的帮助文档 manual
whatis 命令的简短概述
apropos 配置文件的简短介绍
help 查看 shell 内置命令的用法, 比如 pwd, cd
1.3.4 用户管理命令
useradd [用户名] 添加用户
passwd 修改用户的密码 (修改了密码才能登陆) abcd1234 e@
who 查看用户信息
登陆用户名 登陆终端 登陆时间 ip 地址
w
运行时间 负载情况 使用时间
每个用户占用的资源, 和活动情况
uptime
运行时间 负载情况 使用时间
1.4 压缩, 解压缩命令
.zip 格式 : 压缩 zip , 解压缩 unzip 使用 -r 压缩文件
.gz 格式 : 压缩 gzip, 解压缩 gunzip(gzip -d) 只能压缩文件 不保留源文件
.bz2 格式 : 压缩 bzip2, 解压缩 bunzip2 只能压缩文件 不保留源文件
.tar 格式
tar [选项] (压缩的目标名) (要压缩的文件)
-c 压缩
-x 解压缩
-v 显示详细信息
-f 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
-z 用 .tar.gz 格式
-j 用 .tar.bz2 格式
# 压缩 tar -csf dir.tar dir
# 解压缩 tar -xsf dir.tar
# 压缩 gz tar -zcsf dir.tar.gz dir
# 解压缩 gz tar -zxsf dir.tar.gz dir
# 压缩 bz2 tar -jcsf dir.tar.bz2 dir
# 解压缩 bz2 tar -jxsf dir.tar.bz2 dir
# 压缩解压缩把 c 换成 x 就行了
# 还有别的符号, 可以添加文件, 或替换压缩包里面某个文件
1.5 网络命令
write [用户名]
ctrl + backspace 退格, ctrl + d 退出
wall 广播所有用户 (包括自己)
ping (ip 地址) 测试网络性能 packet less 丢包率
-c 指定次数
ifcongfig 查看当前网卡的信息
mail 发送邮件 (此命令好像 cliyun 因为禁用了端口的原因不能使用), 等下百度下看看
last 查看过去登录的用户信息
lastlog 用户最后一次登录的信息
-u 指定用户
traceroute 跟踪网络数据包的发送站点
netstat 显示网络信息
-t 显示 tcp 信息
-u udp 的信息
-l 监听的信息
-r 本机路由的信息
-n ip 和端口信息
# 常用的几个组合
-tlun 本机监听的端口
-an 所有的网络连接
-rn 本机的路由表
setup 图形化界面的配置网络信息
yum -y install setuptool
查看下面的 2.3 汉化显示信息
mount 挂载命令
umount 取消挂载
1.6 关机命令
shutdown
-h 指定时间关机 now 表示立即关机
-r 重启
-c 取消上一个shutdown命令
reboot 重启
init 系统的运行级别 0~6
1.7 其他的命令
send -i 's/旧的字符串/新的字符串/' 文件名 # 可以不打开文件的修改文件内容, 也可以修改显示的输出信息
# 比如 cat filename | send 's/[0-9]/\n/g' | grep -v ^$ 将文件里面的数字全部替换
echo "字符内容" >> filename.txt
# 将 字符内容输入到 filename.txt 文件里面
crontab 任务计划
-e 进入设置任务的 vim 页面
-l 查看任务列表
-u 指定用户
# /etc/crontab 全局任务列表
rpm
-q 包名 查询安装软件的版本信息
-l 包名 查询软件安装位置
-a 包名 所有的安装信息
ps 显示进程
-e 显示所有
-f 显示详细信息
# 一般用 ps -ef | grep [服务名] 查询服务进程
kill [进程id] 关闭进程
-9 强制关闭
2. 其他常用的操作 CentOS 的命令
2.1 使用 Xshell 远程连接 CentOS 7
链接:https://pan.baidu.com/s/1Qr0DzkJ8u6UYfiJo6GA4BQ 提取码:4uf1
一路点击 next 安装即可, 然后新建一个 ssh 链接
或者在 shell 终端使用命令 ssh root@主机 ip 地址
链接
2.2 CentOS 7 安装 python3
CentOS 默认安装的 python2, 可以用 python --version
查看
在 CentOS 7 中安装 Python3 之前,我们要确保我们的系统具有所有必要的开发依赖关系:
# yum -y groupinstall development
# yum -y install zlib-devel
这会执行大量的命令, 等一下就好了
# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
# tar xJf Python-3.6.0.tar.xz
# cd Python-3.6.0
# ./configure
# make
# make install
# 将以上命令依次执行, 执行完成就好了, 默认安装在你的 家 目录
which python3
查看 python3 的安装目录
python3 -V
查看版本
进入 python3 的命令是 $ python3
2.3 linux 汉化
执行 locale -a |grep zh_CN
查看是否主机安装了中文支持的语言包
[root@miya /]# locale -a |grep zh_CN
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
输出是这样的, 则有中文支持. 没有的话, 就运行 yum groupinstall chinese-support
下载中文支持的语言包
下载好了之后需要修改配置文件
Centos7 需要修改的地方是 /etc/locale.conf
文件, 全部删除了, 把下面的复制过去
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
文件的修改, 使用 vim 命令, 百度下怎么修改
使用 shutdown -r
重启 linux
2.4 centos 修改主机名 root@后面的名字
# 使用这个命令会立即生效且重启也生效
[root@centos7 ~]$ hostnamectl set-hostname miyahejuzi
# 查看下
[root@centos7 ~]$ hostname
miyahejuzi
# 刷新显示的名字
[root@centos7 ~]$ su
[root@miyahejuzi ~]#