1.Linux 命令行的组成结构
2.Linux 系统命令操作语法格式
命令 空格 参数 空格 [文件或路径] 需要处理的内容
- rm -rf /tmp/*
- ls -la /home
一般情况下,[参数] 是可选的, 一些情况下[文件或路径] 也是可选的
参数> 同一个命令, 跟上不同的参数执行不同的功能
执行 Linux 命令, 添加参数的目的是让命令更加贴切实际工作的需要
Linux 命令, 参数之间, 普遍应该用一个或多个空格分割
3. 创建一个目录 /boy
Windows 下:
鼠标右击> 新建文件夹
Linux 下:
- make directory> mk dir> mkdir
- -------------------------------
- mkdir /boy
- -------------------------------
- cd /
- mkdir oldboy
- # 递归创建 a/b c/d
- mkdir -p a/b c/d
- # 递归创建 test/a,b,c,d 四个目录
- mkdir -p test/{
- a,b,c,d
- }
- # 递归创建文件夹 a/b/c/d/e
- mkdir -p a/b/c/d/e
4. 查看目录 /boy
- # 显示 / boy 下的内容
- ls /boy
5. 改变当前的目录 / 位置
cd /home cd ~ cd -
6. 打印当前工作目录
- # 打印当前工作目录
- pwd
- 7.VIM
所有的 Unix Like 系统都会内建 vi 文书编辑器, 其他的文书编辑器则不一定会存在.
但是目前我们使用比较多的是 VIM 编辑器.
VIM 具有程序编辑的能力, 可以主动的以字体颜色辨别语法的正确性, 方便程序设计.
- # 方法, 命令
- vi
- VIM
使用 vi 打开 boy.py, 默认是命令模式, 需要输入 a/i 进入编辑模式, 然后输入文本 "Life is short,i use python"
按下 esc 键, 回到命令模式
输入 :wq! 强制保存退出
w --- write 写入
q --- quit 退出
! --- 强制
或者 :x 保存退出
------
:q 不保存退出
:q! 不保存强制退出
8. 查看文件内容
cat 命令用于查看纯文本文件(常用于内容较少的)
- # 查看文件, 显示行号
- cat -n xxx.py
- # 猫, 查看文件
cat xxx.py
- # 在每一行的结尾加上 $ 符
- [[email protected] tmp]# cat -E 1.txt
- # 追加文字到文件
- cat>>/tmp/oldboy.txt <<EOF
唧唧复唧唧
木兰开飞机
开的什么机
波音 747
EOF
9.more 命令
1.more 命令用于查看内容较多的文本, 例如要看一个很长的配置文件, cat 查看内容屏幕会快速翻滚到结尾.
2.more 命令查看文本会以百分比形式告知已经看到了多少, 使用回车键向下读取内容
more /etc/passwd
按下空格 space 是翻页
按下 b 键是上一页
回车键向下读取内容
10.head,tail 命令
head 显示文件前几行, 默认前 10 行
tail 显示文件后几行, 默认后 10 行
- # 查看前两行
- head -2 /tmp/oldboy.txt
- # 查看后两行
- tail -2 /tmp/oldboy.txt
- # 持续刷新显示
- tail -f xx.log
- # 显示文件 10-30 行
- head -30 /tmp/oldboy.txt |tail -21
11.echo 命令
echo 命令用于在终端输出字符串或变量提取后的值, 格式是 "echo [字符串 |$ 变量]"
- # 默认吧内容显示到终端上
- echo "666"
- # 平时比较低调 " 写入到文件里!
- echo "666"> /tmp/ge.txt
- echo $PATH #取出打印 PATH 的值
简而言之就是打印的意思, 相当于 python 中的 print
12. 特殊符号
输入 / 输出 重定向符号
1.>> 追加重定向, 把文字追加到文件的结尾
2.> 重定向符号, 清空原文件所有内容, 然后把文字覆盖到文件末尾
3.<输入重定向
4.<< 将输入结果输入重定向
- echo "boy-python666"> /tmp/boy.txt
- echo "e666">> /tmp/boy.txt
- cat>>/tmp/boy.txt <<EOF
- ------------------------------------
我想把命令执行的结果信息, 写入到文件中
ip addr> /tmp/network.txt #标准输出重定向 把命令执行结果信息, 放入到文件中
3. 通配符
ls -l /etc/us*
13. 复制 (拷贝) 命令
Windows 复制
可以说是相当简单了
ctrl + c 复制
ctrl + v 黏贴
Linux 复制
复制> copy> cp
- # 移动 xxx.py 到 / tmp 目录下
- cp xxx.py /tmp/
- # 移动 xxx.py 顺便改名为 chaoge.py
- cp xxx.py /tmp/chaoge.py
Linux 下面很多命令, 一般没有办法直接处理文件夹, 因此需要加上(参数)
cp -r 递归, 复制目录以及目录的子孙后代
cp -p 复制文件, 同时保持文件属性不变 可以用 stat
cp -a 相当于 - pdr
- # 递归复制 test 文件夹, 为 test2
- cp -r test test2
cp 是个好命令, 操作文件前, 先备份
cp main.py main.py.bak
14. 移动命令
移动 (搬家) 命令> move> mv
- cd /home
- # 把老男孩从沙河这破地方, 搬到朝阳去
- mv /home/shahe/boy /tmp/yang
文件 / 文件夹改名
mv x.log xx.log
15. 删除命令
删除> remove> rm
参数 -i 需要删除确认
-f 强制删除
-r 递归删除目录和内容
cd /tmp
rm oldboy.py
- # 默认有提示删除, 需要输入 y
- rm -f oldboy.py #不需要提示, 强制删除
- #rm 默认无法删除目录, 需要跟上参数 - r
- rm -rf /tmp/boy/
16. 查找命令
#Linux 里如何找到需要的文件 例如 oldboy.py
find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
参数
-name 按照文件名查找文件
-type 查找某一类型的文件, 诸如:
b - 块设备文件.
d - 目录.
c - 字符设备文件.
p - 管道文件.
l - 符号链接文件.
f - 普通文件.
s - socket 文件
- find /tmp/ -type f -name "oldboy.py"
- # 找出 / tmp 所有以 .txt 结尾的文件
- find /tmp/ -type f -name "*.txt"
- # 找到 / etc 下所有名字以 host 开头的文件
- find /etc -name 'host*'
- # 找到 / opt 上一个名为 settings.py
- find /opt -name 'settings.py'
17. 管道命令
Linux 提供的管道符 "|" 讲两条命令隔开, 管道符左边命令的输出会作为管道符右边命令的输入.
常见用法:
- # 检查 python 程序是否启动
- ps -ef|grep "python"
- # 找到 / tmp 目录下所有 txt 文件
- ls /tmp|grep '.txt'
- # 检查 nginx 的端口是否存活
- netstat -tunlp |grep nginx
- 18.grep
(global search regular expression(RE) and print out the line, 全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具, 它能使用正则表达式搜索文本, 并把匹配的行打印出来.
语法:
grep [参数] [--color=auto] [字符串] filename
参数详解:
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
--color = auto : 给关键词部分添加颜色
- grep "我要找什么" /tmp/oldboy.txt
- # 排除 -v, 排除我要找的东西
grep -v " 我要找什么 /tmp/oldboy.txt
示例:
找出 / etc/passwd 下 root 用户所在行, 以及行号, 显示颜色
cat /etc/passwd |grep '^root' --color=auto -n
找出 / etc/passwd 所有不允许登录的用户
grep /sbin/nologin /etc/passwd
找到 / etc/passwd 的所有与 MySQL 有关行, 行号
cat /etc/passwd |grep 'mysql' -n
19. 别名 alias 命令
- # 查看系统别名
- alias
默认别名
- alias cp='cp -i'
- alias egrep='egrep --color=auto'
- alias fgrep='fgrep --color=auto'
- alias grep='grep --color=auto'
- alias l.='ls -d .* --color=auto'
- alias ll='ls -l --color=auto'
- alias ls='ls --color=auto'
- alias mv='mv -i'
- alias rm='rm -i'
- alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
别名作用是:
我们在 Linux 中使用 cp 时候相当于执行了 cp -i
-i: 删除已有文件或目录之前先询问用户;
# 别名用比较危险的操作, 谨慎使用
为 rm 设置别名
- # 让系统显示 do not use rm
- echo do not use rm
- # 设置 rm 别名
- alias rm='echo do not use rm'
- # 设置别名永久生效, 写入到 / etc/profile(针对登录用户的合同, 设置环境变量)
- VIM /etc/profile #编辑文件
G 快速到达最后一行
o 当前行下一行, 创建一个新行, 进入编辑模式
- source /etc/profile #读取文件(合同生效)
- ---------------
- # 取消别名
- unalias rm
20.which 命令
which 命令用于查找并显示给定命令的绝对路径, 环境变量 PATH 中保存了查找命令时需要遍历的目录.
which 指令会在环境变量 $PATH 设置的目录里查找符合条件的文件.
也就是说, 使用 which 命令, 就可以看到某个系统命令是否存在, 以及执行的到底是哪一个位置的命令.
- which pwd
- which python
示例:
- which python #python 命令在哪
- /usr/bin/python #命令文件绝对路径
21.scp 远程传输命令
Linux scp 命令用于 Linux 之间复制文件和目录.
scp 是 secure copy 的缩写, scp 是 Linux 系统下基于 SSH 登陆进行安全的远程文件拷贝命令.
语法
scp [可选参数] 本地源文件 远程文件标记
参数
-r : 递归复制整个目录
-v: 详细方式输出
-q: 不显示传输进度条
-C: 允许压缩
示例:
# 传输本地文件到远程地址
scp 本地文件 远程用户名 @远程 ip: 远程文件夹 /
scp 本地文件 远程用户名 @远程 ip: 远程文件夹 / 远程文件名
- scp /tmp/chaoge.py [email protected]:/home/
- scp /tmp/chaoge.py [email protected]:/home/chaoge_python.py
scp -r 本地文件夹 远程用户名 @远程 ip: 远程文件夹 /
- scp -r /tmp/boy [email protected]:/home/boy
- # 复制远程文件到本地
- scp [email protected]:/home/boy.txt /tmp/boy.txt
- scp -r [email protected]:/home/boy /home/
21.du 命令 -- 显示文件的大小
Linux du 命令用于显示目录或文件的大小.
du 会显示指定的目录或文件所占用的磁盘空间.
用法
du [参数] [文件或目录]
-s 显示总计
-h 以 k,M,G 为单位显示, 可读性强
示例:
显示目录或文件所占空间
- # 什么都不跟, 代表显示当前目录所有文件大小
- du
- # 显示 / home 的总大小
- du -sh /home
22.top 命令
top 命令用于动态地监视进程活动与系统负载等信息
统计信息区
第一行 (uptime)
系统时间 主机运行时间 用户连接数(who) 系统 1,5,15 分钟的平均负载
第二行: 进程信息
进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数
第三行: CPU 信息
1.5 us: 用户空间所占 CPU 百分比
0.9 sy: 内核空间占用 CPU 百分比
0.0 ni: 用户进程空间内改变过优先级的进程占用 CPU 百分比
97.5 id: 空闲 CPU 百分比
0.2 wa: 等待输入输出的 CPU 时间百分比
0.0 hi: 硬件 CPU 中断占用百分比
0.0 si: 软中断占用百分比
0.0 st: 虚拟机占用百分比
第四行: 内存信息(与第五行的信息类似与 free 命令)
8053444 total: 物理内存总量
7779224 used: 已使用的内存总量
274220 free: 空闲的内存总量(free+used=total)
359212 buffers: 用作内核缓存的内存量
第五行: swap 信息
8265724 total: 交换分区总量
33840 used: 已使用的交换分区总量
8231884 free: 空闲交换区总量
4358088 cached Mem: 缓冲的交换区总量, 内存中的内容被换出到交换区, 然后又被换入到内存, 但是使用过的交换区没有被覆盖, 交换区的这些内容已存在于内存中的交换区的大小, 相应的内存再次被换出时可不必再对交换区写入.
23.chattr 命令
给文件加锁, 只能写入数据, 无法删除文件
- chattr +a test.py
- chattr -a test.py
24.lsattr 命令
查看文件隐藏属性
lsattr test.py
25.Linux 时间同步
Linux 的 date 命令可以显示当前时间或者设置系统时间
查看当前时间:
格式化输出
-d --date=string 显示指定的时间, 而不是当前时间
以年 - 月 - 日显示当前时间
date +"%Y-%m-%d"
以年 - 月 - 日 时分秒 显示当前时间
date +"%Y-%m-%d %T"
在 Linux 下系统时间和硬件时间不会自动同步, 在 Linux 运行过程中, 系统时间和硬件时间以异步的方式运行, 互不干扰.
硬件时间的运行, 是靠 Bios 电池来运行, 而系统时间是用 CPU tick 来维持的.
在系统开机时候, 会从 Bios 中获取硬件时间, 设置为系统时间
硬件始终的查看
[[email protected]_python ~ 10:19:04]#hwclock
2018 年 08 月 27 日 星期一 10 时 23 分 03 秒 -0.528004 秒
同步系统时间和硬件时间, 可以用 hwclock 命令
- // 以系统时间为基准, 修改硬件时间
- [[email protected]_python ~ 10:29:07]#hwclock -w
- // 以硬件时间为基准, 修改系统时间
- [[email protected]_python ~ 10:29:21]#hwclock -s
25.Ntp 时间服务器
关于时间服务器的配置文件, 有如下几种
/bin/date 用于 Linux 时间 (软件时钟) 的修改与显示的指令;
/sbin/hwclock 用于 BIOS 时钟 (硬件时钟) 的修改与显示的指令. 这是一个 root 才能执行的指令, 因为 Linux 系统上面 BIOS 时间与 Linux 系统时间是分开的, 所以使用 date 这个指令调整了时间之后, 还需要使用 hwclock 才能将修改过后的时间写入 BIOS 当中!
/usr/sbin/ntpd: 主要提供 NTP 服务的程序啰! 配置文件为 /etc/ntp.conf
/usr/sbin/ntpdate: 用于客户端的时间校正, 如果你没有要启用 NTP 而仅想要使用 NTP Client 功能的话, 那么只会用到这个指令而已啦!
ntpdate -u ntp.aliyun.com
26.wget 命令
wget 命令用于在终端下载网络文件
参数是 wget [参数] 下载地址
wget -r -p http://www.city.com# 递归下载路飞所有资源, 保存到 www.city.com 文件中
27. 关机命令
reboot 命令用于重启机器
poweroff 用于关闭系统
28.Linux 快捷键
tab 键 用于自动补全命令 / 文件名 / 目录名
ctrl + l 清理终端显示
clear/cls 清理终端显示
ctrl + c 终止当前操作
来源: http://www.bubuko.com/infodetail-3268325.html