Linux命令综合
目录和文件
基础操作
su -root 临时切换root用户 密码与普通用户一致 exit退回普通用户
sudo su 第一次切换root用户
passwd root 第一次设置root密码
cd 切换目录
cd / 进入到系统根目录
cd . 进入到当前目录
cd .. 进入到上层目录
cd ../.. 切换到上二级的目录
cd /tmp 进入指定目录/tmp
cd ~ 进入当前用户的家目录 切换到HOME目录
cd ~/Desktop 进入HOME目录下的Desktop目录
ls [-a -l -h] [linux路径]
# 选项-a -l可以组合使用 -la -al -l -a 是同种效果
# 参数和选项也可以组合使用
# -h 必须和-l组合使用 -lh 显示文件的大小 单位kb、mb、gb
ls 以平铺的形式列出当前工作目录的所有文件、文件夹(目录)信息
# 当前登录用户的HOME目录默认作为当前工作目录 单独的ls命令列出的是HOME目录的内容
# 默认路径为/home/用户名
ls /tmp 显示指定目录 /tmp 的目录
ls -l 以列表的形式列出文件和文件夹的基本属性和详细信息
ll 列出文件和文件夹的基本属性和详细信息(ls -l 的别名)
ls -a all的意思 列出当前目录的全部内容(包含隐藏的文件/文件夹)
ls -help 列出ls 命令的帮助内容
ls coco* 列出以coco开头的文件和文件夹
pwd 列出当前目录的路径
mkdir [-p] Linux路径 创建文件夹 参数必填
mkdir tester 在当前目录下创建tester子目录
mkdir /tem/tester 在指定目录/tmp下创建tester子目录
mkdir -p coco1/coco2/coco3 创建一串目录
mkdir coco vivi jojo 在当前目录下创建3个目录coco、vivi、jojo
rmdir 删除空目录
man 帮助命令
文件操作
注:'-'开头表示是文件 'd’开头表示是文件夹 'l’开头表示软链接
cp 复制文件或目录
cp [-r] 参数1 参数2 用于复制文件\文件夹 copy
# -r选项 可选 用于复制文件夹使用 表示递归
# 参数1 Linux路径 表示被复制的文件或文件夹
# 参数2 Linux路径 表示要复制去的地方
cp vivi /tmp 复制文件vivi到/tmp目录下
cp /tmp/vivi /home 复制/tmp/vivi 文件到/home目录下
cp /home/vivi /tmp/coco 复制/home/vivi 到/tmp目录下并改名为coco
cp -p /tmp/coco /home 复制/tmp/coco到/tmp目录下并复制文件属性
cp -r demo1 demo2 复制文件夹demo1到当前目录并改名为demo2
mv 移动文件或目录
mv 参数1 参数2 用于移动文件\文件夹 move
# 参数1 Linux路径 表示被移动的文件或文件夹
# 参数2 Linux路径 表示要移动去的地方 如果目标不存在 则进行改名 确保目标存在
mv coco1 /tmp 移动coco1文件到/tmp目录下
mv /home/coco1 /tmp 移动/home/coco文件到/tmp目录下
mv /home/coco1 /tmp/coco2 移动/home/coco文件到/tmp目录下并改名为coco2
mv coco1 coco2 若coco2不存在 则将coco1文件改名为coco2
mv tester /tmp 移动目录tester到/tmp下
mv jojo hoho 将jojo目录改名为hoho
cat 查看文件内容
cat Linux路径 参数必填 表示文件的路径 相对、绝对、特殊路径符都可以
cat /etc/coco 查看/etc/coco文件
cat /etc/coco |more 分屏查看文件内容
cat /etc/coco |less 分屏查看文件内容,可上下翻页
touch 创建空文本文件
touch Linux路径 参数必填 表示要创建文件的路径 相对、绝对、特殊路径符都可以
touch coco 在当前目录下创建coco文件
touch /tmp/vivi 在指定目录/tmp下创建vivi文件
rm 删除
rm [-r -f] 参数1 参数2 ... 参数n
# -r 用于删除文件夹 同cp命令以递归的方式
# -f 表示force 强制删除 不会弹出提示确认信息
# 普通用户删除内容不会弹出提示 只有root管理员用户删除内容会有提示 y:确认删除 n:不删除
# 所以一般普通用户用不到-f选项
# 参数1、参数2、...、参数n表示要删除的文件或文件夹路径 按照空格隔开
# rm命令支持通配符* 用来做模糊匹配
rm coco 删除coco文件
rm /tmp/coco 删除指定目录/tmp下的文件coco
rm -f coco 直接删除coco文件,而无需确认
rm -f coco1 coco2 coco3 同时删除多个文件,而无需确认
rm co* 删除以co开头的文件
rm *co* 删除任何包含co的文件
rm *co 删除以co结尾的文件
rm -r tester 递归的方式删除非空目录tester
rm -rf tester 直接删除非空目录tester,不用确认
grep 查找关键字过滤文件内容
grep [-n] 关键字 文件路径
# 选项-n 可选 表示在结果在显示匹配的行的行号
# 参数 关键字 必填 表示过滤的关键字 带有空格或其他特殊符号 建议使用""将关键字包围起来
# 参数 文件路径 必填 表示要过滤内容的文件路径 可作为内容输入端口
grep 'coco' /etc/coco.txt 在/etc/test文件中查找关键字coco
管道符
| 将左边命令的结果作为右边命令的输入
#管道符应用
cat coco.txt | grep 'test' cat得到的文件作为grep的参数 查询coco.txt文件中包含"test"的行
cat test | wc -w cat得到的文件内容作为wc的参数 统计test文件的单词数
ls -l /usr/bin | wc -l 按列表显示的/usr/bin中的内容作为wc的输入 即统计/usr/bin中文件的个数
# 管道符可以嵌套
wc 数量统计
wc [-c -m -l -w] 文件路径
# 选项 -c 统计bytes数量
# 选项 -m 统计字符数量
# 选项 -l 统计行数
# 选项 -w 统计单词数量
# 参数 文件路径 被统计的文件 可作为内容输入端口
wc -l /etc/services 统计services文件的行数
echo 输出指定内容
echo 输出的内容
# 无需选项 只有一个参数 表示输出的内容 如果内容较为复杂 可以用双引号包围
echo hello Linux
反引号
echo pwd 输出pwd 但是如果想要执行pwd命令
# 通过反引号 被包围的内容会被作为命令执行而非普通字符
echo `pwd`
重定向符
> 将左侧命令的结果 覆盖写入到符号右侧指定的文件中
>> 将左侧命令的结果 追加写入到符号右侧指定的文件中
echo "hello linux" > test.txt
echo "add hello linux" >> test.txt
vi \vim 创建文件或编辑
vim是vi的加强版本 ,兼容vi的所有指令。不仅能编辑文本,而且还具有shell程序编辑的功能
可以通过不同颜色的字体来辨别语法的正确性, 极大方便了程序的设计和编辑性。
三种模式:
- 命令模式
所有的按键编辑器都理解为命令,以命令驱动执行不同的功能
命令模式下常见快捷指令
i 在 ***当前光标位置*** 进入 *输入模式*
a 在当前光标位置 ***之后*** 进入 *输入模式*
I 在当前 ***行的开头*** 进入 *输入模式*
A 在当前 ***行的结尾*** 进入 *输入模式*
o 在当前 ***光标下一行*** 进入 *输入模式*
O 在当前 ***光标上一行*** 进入 *输入模式*
k 向上移动光标
j 向下移动光标
h 向左移动光标
l 想后移动光标
0 移动光标到当前行的开头
$ 移动光标到当前行的结尾
PgUp 向上翻页
PgDn 向下翻页
/ 进入搜索模式
n 向下继续搜索
N 向上继续搜索
dd 删除光标所在行的内容
ndd n是数字 表示删除当前光标向下n行内容
yy 复制当前行
nyy 复制当前行和下面的n行
p 粘贴复制的内容
u 撤销修改
ctrl+r 反向撤销修改
gg 跳到首行
G 跳到行尾
dG 从当前行开始 向下全部删除
dgg 从当前行开始 向上全部删除
d$ 从当前光标开始 删除到本行的结尾
d0 从当前光标开始 删除到本行的开头
esc 任何情况下输入esc都能回到命令模式
-
输入模式
即编辑模式,可以对文件内容进行自由编辑
esc 退回到命令模式 -
底线命令模式
在命令模式下通过":"进入
以:开始,通常用于文件的保存、退出
vi 文件路径
vim 文件路径
# 如果文件不存在 用于编辑新文件
vi coco 编辑coco文件
vi /tmp/vivi 编辑指定目录/tmp下的vivi文件
:w 保存修改
:q 退出vi编辑器
:wq 保存并退出
:q! 退出vi编辑器,不保存修改
:set nu 显示行号
:set paste 设置粘贴模式
指定方式查看文件内容
head 查看文件的前几行
head coco.txt 查看coco.txt 文件的前10行内容
head -5 coco.txt 查看coco.txt文件的前5行内容
tail [-f -num] Linux路径
# 可以查看文件尾部内容 跟踪文件的最新修改
# 参数 表示被跟踪的文件路径
# 选项 -f 表示持续跟踪
# 选项 -num 数字 表示查看尾部多少行 不填默认10行
tail coco.txt 查看coco.txt文件的后10行内容
tail -5 /etc/passwd 查看/etc/passwd文件的后5行内容
tail -f test.txt 会持续追踪test.txt文件的具体变化 ctrl+c强制停止跟踪
more Linux路径
# 参数必填 表示要查看文件的路径 相对、绝对、特殊路径符都可以
# 分页展示文件的内容(不能回退)
more /etc/services 查看/etc/services中所有文件内容 支持翻页 按空格翻页 通过q退出查看
more coco.txt 分页查看coco.txt文件,不能回退
less 上下翻页查看当前文件的内容
less coco.txt 上下翻页查看coco.txt文件的内容
文件压缩和解压
wget 从网络下载文件资源
wget http://www.baidu.com
zip和unzip 文件的打包和解包
zip a.zip 1.txt 2.txt
unzip a.zip
tar 文件打包和解压
-c 新建打包文件
-f 后接文件名
-z 通过gzip的支持进行压缩和解压缩,文件名最好为tar.gz
-x 解压缩打包文件
-v 显示打包和解压的过程
-t 查看打包文件
tar cvzf b.tar.gz 1.txt 2.txt
tar xzvf b.tar.gz
文件权限
root 超级管理员用户
切换用户
su [-] 用户名 切换用户
# -符号可选 表示是否在切换用户后加载环境变量
# 参数 用户名可以省略 省略表示切换到root
# 切换用户后 可以通过exit命令退回上一个用户 也可以使用ctrl+c
sudo 其他命令
# 为命令临时赋予root授权
# 普通用户使用前需要先配置sudo认证
sudo认证
su - root
visudo
# 会自动打开/etc/sudoers 在文件的最后添加
要认证的普通用户 ALL=(ALL) NOPASSWD: ALL
# NOPASSWD: ALL表示使用sudo命令无需输入密码
:wq
su - 普通用户
用户和用户组
groupadd 用户组名 创建用户组
groupdel 用户组名 删除用户组
groupadd testusers
useradd [-g -d] 用户名 创建用户
# 选项 -g 指定用户的组 不指定时-g会创建同名组并自动加入 如已存在同名组 必须使用-g
# 选项 -d 指定用户HOME路径 不指定则HOME目录默认在/home/用户名
userdel [-r] 用户名 删除用户
# 选项 -r 删除用户的HOME目录 不使用-r删除用户时 HOME目录会被保留
id [用户名] 查看用户所属组
# 参数 用户名 被查看的用户 如果不提供则查看自身
usermod -aG 用户组 用户名 修改用户所属组
usermod -aG testusers user 把user用户加入到testusers用户组中
getent passwd 查看当前系统中有哪些用户 并展示信息
# 信息包括用户名、密码、用户id、组id、描述信息、HOME目录路径、使用终端
getent group 查看当前系统中有哪些用户组 并展示信息
# 信息包括 组名称、组认证(显示为x)、组id
权限信息
通过ls -l 可以查看内容
1 表示文件、文件夹的权限控制信息
除第一个字母外其他字母表示权限信息
通过-分割 分别表示所属用户、所属用户组和其他用户的权限
2 表示文件、文件夹所属用户
3 表示文件、文件夹所属用户组
r 读权限
w 写权限
x 执行权限
Linux 文件类型
d:目录
l:链接文件
b:块设备
c:字符设备
s:socket
p:管道
-:普通文件
创建一个新用户并同时指定所属的组。
useradd -g groupa dongling
chmod [-R] 权限 文件或文件夹
# 更改目录和文件的权限值
# 选项 -R 对文件夹内的全部内容应用同样的操作
chmod u=rwx,g=r,o=w test.txt u表示user所属用户权限 g表示group组 o表示其他用户
# 用数字表示权限 x 1 w 2 r 4 任意组合
chmod 766 tester 将目录coco的权限更改为4+2+1 4+2 4+2
chmod 777 vivi 将文件vivi的权限更改为4+2+1 4+2+1 4+2+1
chown [-R] [用户][:][用户组] 文件或文件夹
# 更改文件或目录所属的组或所有者
# 普通用户无法修改 此命令只适用于root用户执行
# 选项 -R 同chmod
# 选项 用户 修改所属用户
# 选项 用户组 修改所属用户组
# 选项 : 用于分割用户和用户组
chown root test.txt 将test.txt所属用户修改为root
chown :root hello.txt 将hello.txt所属用户组修改为root
chown usr tester 将当前目录下的tester目录的属主改为usr
chown usr.gur tester 将当前目录下的tester目录的属主改为usr,属组改为gur
who am i 显示的是当前用户的终端名字
whoami 显示的是当前用户 ID
who 显示当前系统登录用户以及所登录的控制台
find 查找文件
# 1 按文件名查找
find 起始路径 -name "被查找文件名"
# 被查找文件名支持使用通配符*来做模糊查询
find 查找文件
find test* 在当前目录下查找以test开头的文件
find / -name *.txt 在根目录下查找以.txt结尾的文件
find /etc -name "test*" 在/etc目录中查找以test开头的文件
find /etc/test* -print 在/etc目录中查找以test开头的文件,并显示出来
# 2 按文件大小查找
find 起始路径 -size +|- n[kMG]
# +、-表示大于和小于
# n表示大小数字
# kMG表示大小单位 k表示kb M表示MB G表示GB
find / -size -10k 查找小于10kb的文件
find / -size +100M 查找大于100MB的文件
find / -size +1G 查找大于1GB的文件
# ctrl c 中断查找
Linux查找命令
which 要查找的命令 查看所使用的一系列命令的程序文件存放位置
which cd 查看cd命令的程序文件存放位置
Linux 环境变量
env 显示当前的环境变量
env | grep JAVA_HOME 显示JAVA_HOME的环境变量
export 添加临时环境变量
export TESTENV=123 添加临时环境变量TESTENV
export -p 显示当前生效的环境变量
source 读取并执行文件中的命令
source build.sh 执行build.sh文件
./build.sh 执行build.sh文件
Linux 软件安装
apt-get install postgresql 安装软件
apt-get reomove postgresql 卸载软件
apt-get autoremove postgresql
磁盘管理、进程管理和任务计划
df 查看文件系统各个硬盘大小
df -a 列出所有的文件系统
df -k 以k为单位显示
df -h 以人性化单位显示,可以是b,k,m,g,t
du 查看目录的大小
du -s tester 仅显示总计
du -h tester 以K、M、G为单位,提高信息的可读性
ps 查看进程
ps aux 查看进程
-a 所有与终端相关的进程
-u 以用户为中心组织进程状态信息显示
-x 所有与终端无关的进程
kill 结束进程
killall 服务名 关闭服务的所有进程
kill -9 进程号 强制关闭指定进程
killall -9 服务名 强制关闭服务的所有进程
搭建测试环境
ifconfig 查看 ip 信息
iptables -L 查看防火墙设置
route -n 查看路由表
netstat -lntp 查看所有监听端口
netstat -antp 查看所有已经建立的连接
netstat -s 查看网络统计信息
ping 检查网络是否连通
总结
Linux命令本体就是一个个的二进制可执行程序
和windows系统中的.exe文件是一个意思