Linux命令学习总结
基本命令
ls
查看当前目录
-l
显示详细信息-a
显示所有文件(.
开头的隐藏文件)
pwd
查看当前位置的绝对路径clear
清空屏幕cd
改变当前目录mkdir
创建目录
-p
递归创建目录
touch
创建文件
- 创建带空格的文件
touch "a b.txt"
- 创建带空格的文件
rmdir
删除空目录rm
删除文件或目录
-r
删除目录-f
强制删除
cp
复制文件mv
移动文件,可以用来重命名文件- 查看文件内容
cat
查看文件所有内容more
支持向下翻页less
支持双向翻页head
查看文件的前几行(默认前10行)
head -5 test.txt
查看前5行
tail
查看文件的后几行(默认后10行)
tail -3 test.txt
tail -f test.log
通常用来查看日志文件,文件内容改变后直接输出到屏幕上
目录结构
/
: 表示系统根目录,系统最外层的顶层目录,系统的初始目录~
: 表示用户的主目录,每一个用户都有一个用户名相同的主目录/root
: 超级管理员的主目录/home/***
: 普通用户的主目录,每次系统登录都会先进入到主目录中/bin
: 该目录下为系统所需要的命令/boot
: 启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件/dev
: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。/etc
: 系统中的配置文件/home
: 用户的主目录/lib
: 存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库/lost+found
: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件/media
: 光盘、U盘的挂载点/mnt
: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt
上,然后进入该目录就可以查看光驱里的内容了/opt
: 软件包安装的目录/tmp
: 临时的文件目录,在用户系统运行过程中会产生临时文件 (重启之后该目录清空)/usr
: 用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录/var
: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
用户和用户组
- 添加新用户
useradd [选项] <用户名>
-c
: 指定一段描述性注释-d
: 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录-g
: 指定用户所属用户组-G
: 指定用户所属的附加组-s
: 指定用户登录使用的Shell-u
: 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
- 删除用户
userdel [选项] <用户名>
-r
: 同时连用户主目录、系统文件中的记录(/etc/passwd
、/etc/shadow
/etc/group
)一起删除
- 修改用户
usermod [选项] <用户名>
- 选项与
useadd
一致
- 选项与
- 修改密码
passwd [选项] <用户名>
-l
: 锁定口令,即禁用账号-u
: 口令解锁-d
: 使账号无口令-f
: 强迫用户下次登录时修改口令
- 添加用户组
groupadd [选项] <用户组名>
-g
: 指定新用户组的组标识号(GID)-o
: 一般与-g
选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
- 删除用户组
userdel [选项] <用户组名>
- 修改用户组
usermod [选项] <用户组名>
-g
: 为用户组指定新的组标识号(GID)-o
: 与-g
选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同-n
: 将用户组的名字改为新的名字
- 切换用户组,如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
newgrp <目标用户组>
/etc/passwd
文件
master:x:500:0:Master:/home/master:/bin/bash
- 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
- 切换用户
su
su root
切换到root用户su - root
切换到root用户,并加载该用户的环境变量
文件权限相关
- 权限属性
0
:d
代表目录,-
代表文件123
: 文件所有者 user u456
: 所属组 group g789
: 其他用户 other o- 数字表示
r
: 4w
: 2x
: 1
- 修改权限
- 只有文件所有者和超级管理员才可以修改
- 数字方式修改:
chmod 755 aaa.txt
- 字母方式修改:
chmod u+rwx,g+rx,o+rx aaa.txt
- 修改所有者
- 只有超级管理员可以修改
- 修改用户
chown
- 修改用户组
chgrp
chown -R user1:user1 test
递归修改文件所有者,包括用户和用户组
vi编辑器
- 三种模式
- 命令模式
- 编辑模式
- 最后行模式
- 进入编辑模式
a
附加i
插入
- 保存、退出
- 最后行模式下:
w
保存q
退出x
保存&退出q!
强制退出
- 命令模式下:
ZZ
保存&退出
- 最后行模式下:
- 显示行号: 最后行模式下
set nu
- 删除
- 删除行
- 单行
dd
- 多行
3dd
(向下3行) - 自选方向多行
d 3 up/down
- 向上删除单行
d up
- 删除单个字符
x
- 撤销
u
- 粘贴
p
- 复制当前行
yy
- 移动光标
- 至尾行
G
- 至首行
gg
- 在最后行模式下,输入行号
- 至尾行
- 查找
- 最后行模式下
/关键词
- 最后行模式下
- 替换
2,$s/login/666/g
- 从第2行至最后一行
- s代表替换
- 将login替换为666
- g代表通行
- 附快捷键图
网络管理
配置网络
- 查看本机IP
ifconfig
- 修改主机名
- 临时
hostname <主机名>
- 永久
vim /etc/hostname
- 临时
- 修改网络映射
vim /etc/hosts
- IP 主机名
- 静态IP配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
- 重启网络配置
service network restart
查看网络状态
netstat [命令选项]
-t
TCP-u
UDP-l
监听-r
路由表-n
IP- 实例
netstate -tlun
查看系统已经启用监听端口号netstat -an
查看系统已经启用的端口号 以及连接的应用程序netstat -rn
查看网关信息
其他常用指令
查找
find
: 指定目录下查找
- 按文件名查找
find /etc -name "init*"
不忽略大小写-iname
忽略大小写- 通配符
*
: 零个及以上?
: 一个
- 按文件大小查找
find <查找目录> -size [+/-] <文件大小>[b/c/k/w]
+
:大于,-
:小于b
: 512位元组的区块,c
: 表示字元数,k
:表示 kilo bytes,w
是二个位元组
- 按文件类型查找
-type <文件类型符号>
d
: 目录f
: 普通文件b
: 字型装置文件c
: 区块装置文件p
: 具名贮列l
: 符号连结s
: socket
- 按文件所有者&所属组
-user <用户名>
-group <用户组名>
-a
: and 连接两个条件
whereis
: 只能用于查找二进制文件、源代码文件和man手册页
whereis <文件名>
which
: 在$PATH
声明的目录中查找符合条件的文件
which <文件名>
locate
: 用于查找符合条件的文档,他会去保存文档和目录名称的数据库内
locate <文件名>
给普通用户赋予管理员权限
# 1.方式一
vim /etc/sudoers
# 2.方式二
visudo
# ----------------
# add this
hduser ALL=(ALL) ALL
符号指令
|
: 管道符号,将前一个命令的输出传递给后一个命令处理
cat /etc/passwd | grep 'root'
>>
: 追加符号,将前一个命令的输出追加写入一个文件中
grep 'root' /etc/passwd >> root.txt
>
: 覆盖符号,将前一个命令的输出覆盖写入一个文件中
grep 'root' /etc/passwd > root.txt
统计指令wc
wc [命令可选项] <文件名>
- 命令选项
-c
: 字节数-m
: 字符数-l
: 行数-L
: 最长行的长度w
: 词数
grep过滤器
grep <条件> <内容>
- 过滤出包含关键词的行
查看系统进程ps
-A
Select all processes. Identical to -e.-e
Select all processes. Identical to -A.-f
does full-format listing.
压缩 & 解压
gzip
- 压缩时不保留原文件
- 不能压缩目录
tar
z
filter the archive through gzipx
extract files from an archivec
create a new archivev
verbosely list files processedC
change to directory DIR- 压缩
tar -cvf aa.tar aa.txt
tar -zcvf aa.tar.gz aa.txt
- 解压
tar -xvf aa.tar
tar -zxvf aa.tar.gz -C ./aa1/
rpm
rpm -ivh package.rpm
安装一个rpm包rpm -ivh --nodeeps package.rpm
安装一个rpm包而忽略依赖关系警告rpm -U package.rpm
更新一个rpm包但不改变其配置文件rpm -F package.rpm
更新一个确定已经安装的rpm包rpm -e package_name.rpm
删除一个rpm包rpm -qa
显示系统中所有已经安装的rpm包
yum
- yum的仓库在
/etc/yum.repos.d/
yum install package_name
下载并安装一个rpm包yum localinstall package_name.rpm
将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系yum update package_name.rpm
更新当前系统中所有安装的rpm包yum update package_name
更新一个rpm包yum remove package_name
删除一个rpm包yum list
列出当前系统中安装的所有包yum search package_name
在rpm仓库中搜寻软件包yum clean packages
清理rpm缓存删除下载的包yum clean headers
删除所有头文件yum clean all
删除所有缓存的包和头文件
系统管理
top
- 实时显示系统进程的状态
- 增强版
htop
free
- 展示系统已使用和未使用的内存资源状况
kill
- 杀死某个进程
kill <PID>
kill -KILL <PID>
强制杀死某个进程kill -9 <PID>
彻底杀死某个进程