Linux学习日记-1-基础命令
1.Linux的常见命令的部分功能举例(按重要性排序)
1.1熟练掌握
-
cd 改变工作目录位置
- 基本用法
cd [Absolute Path/Relative Path]
- 进阶用法
- 进入用户主目录
或cd ~
cd
用户主目录:当用户登录时自动进入目录,这个目录通常用于存储用户的个人文件、配置文件和用户级程序数据。
- 返回上一级目录
cd ../
- 进入用户主目录
- 基本用法
-
ls 列出目录
- 基本用法
ls
- 进阶用法
- 列出详细信息
ls -l
- 显示隐藏文件(.开头的文件)
ls -a
- 显示递归列表
ls -R
递归列表:一个目录及其所有子目录和文件
- 列出详细信息
- 基本用法
-
mkdir 创建目录
- 基本用法
mkdir [文件名]
- 进阶用法
- 创建一个多级目录:(文件1可以不存在)
mkdir -p [文件名1/文件名2]
- 创建一个设置权限后的目录:权限详解请看这里
mkdir -m [权限代码|700] [文件名]
- 创建一个多级目录:(文件1可以不存在)
- 基本用法
-
rm 万能删除
- 基本用法
可以一次性删除多个目录rm [文件名]
rm [文件名] [文件名] [文件名]
- 进阶用法
- 删除目录(以及所有子目录、子文件)
rm -r [目录名]
- 强制删除
rm -rf [文件/目录名]
- 删除目录(以及所有子目录、子文件)
- 基本用法
-
rmdir 删除空目录
基本用法
rmdir [文件名]
可以一次性删除多个目录
rmdir [文件名] [文件名] [文件名]
目录通常只是一个保存了文件名和 inode 号的小文件,所以删除文件和删除非空目录在底层上不完全相同,删除非空目录是删除完文件后再删除空目录的过程。
-
cp 复制文件或目录
- 基本用法
复制文件并改名cp [样本地址] [目标地址]
复制多个文件到指定地址cp [文件1] [文件2]
cp [文件1] [文件2] [目录]
- 进阶用法
递归复制一整个目录
覆盖复制cp -r [目录1] [目录2]
cp -i [文件1] [文件2]
- 基本用法
-
mv 移动/重命名文件
- 基本用法
移动文件
重命名mv [文件] [目录]
mv [原文件名] [新文件名]
- 进阶用法
移动多个文件
移动时覆盖文件mv [文件1] [文件2] [目录]
mv [文件1] [文件2] [目录]
mv 命令在移动目录时是递归的,即该目录下的所有子文件都会被操作。
- 基本用法
-
pwd 显示当前工作目录
pwd
-
vim 文本编辑器
vim [文件名]
正常模式(用于导航和编辑命令):
命令 功能 i 进入插入模式 :w 保存文件 :q 退出编辑器 :wq 保存并退出 :q! 不保存并退出 dd 删除当前行 yy 复制当前行 p 粘贴 插入模式(用于插入文本):
命令 功能 ESC 返回正常模式 -
find 搜索文件和目录
- 基本用法
e.g:find [目录] [条件]
在当前目录及其子目录中查找名为以“巴斯德班保研名额.txt”结尾的文件:find . -name "*巴斯德班保研名额.txt"
. 为当前目录
* 为通配符 - 进阶用法
查找某一类型的文件 文件类型详解请看我另一篇文章find . -type [文件类型]
- 基本用法
-
chmod 文件的权限控制
(change model)
-
基础知识
linux用户类型简称 全称 内容 u User 文件或目录的拥有者 g Group 文件或目录所属的组 o Others 其他用户 a(ugo) all 所有用户 文件默认的组是文件所有者所在的组,也可以修改成与所有者无关的组
linux权限类型
简称 全称 内容 八进制数字 r Read 读取文件或目录 1 w Write 写入或修改文件或目录 2 x Execute 执行文件或进入目录 4 符号表示法
[用户类型][符号][权限类型]
权限类型可以为空,=[空]代表移除所有权限
符号 内容 + 添加权限 - 移除权限 = 设置权限 八进制表示法
[数字1][数字2][数字3] #分别表示ugo的权限,将所有权限数字相加即可
-
基本用法
chmod [符号表示法|八进制表示法] [文件名|文件夹名]
递归改变文件夹子目录子文件
chmod -R [符号表示法|八进制表示法] [文件夹名]
-
-
fdisk 查看操作硬盘分区
列出系统中所有硬盘和其分区的信息
fdisk -l
操作系统中的硬盘分区
fdisk [硬盘位置]
接着会进入命令模式:
p:显示分区列表
n:创建新分区
d:删除一个分区
t:更改分区的类型
w:将更改写入磁盘(保存)
q:退出而不保存更改 -
cfdisk 查看操作硬盘分区(更友好)
cfdisk [硬盘位置]
cfdisk提供了一个更友好的、基于光标的界面,使得磁盘分区操作更直观。
1.2基本掌握
-
grep/egrep/fgrep 文件搜索
grep 使用基础正则表达式(Basic Regular Expressions)。
egrep 是 grep -E 的等效命令,使用扩展正则表达式(Extended Regular Expressions)。
fgrep 是 grep -F 的等效命令,用于固定字符串的搜索,而不解释任何正则表达式,优点是速度快(fast)。-
常见用法
grep [options] [正则表达式] [文件]
-
options进阶用法
options 功能 -i 不区分大小写搜索 -v 返回不匹配行 -l 只列出包含匹配行的文件名 -n 显示匹配行及其行号
-
-
chown 文件的所有者
(change owner)
改变文件/文件夹的所有者chown [所有者] [文件名]
改变文件/文件夹的所在组
chown :[所有组] [文件名]
改变文件/文件夹的所在组和所有者
chown [所有者]:[所有组] [文件名]
递归改变
chown -R [所有者]:[所有组] [文件名]
-
cat 万能连接文件
- 基本用法
查看文件内容
连接多个文件的内容并显示cat [文件名]
创建新文件cat [文件1] [文件2]
在文件后添加内容cat > [新文件名]
连接并写入新文件cat >> [文件名]
cat [文件1] [文件2] > [新文件]
- 基本用法
-
tar 打包文件(并不是压缩)
归档文件,简称为“归档”,是一种将多个文件或目录组合成单一文件的方法,不涉及压缩。
tar [options] [目标tar文件名] [文件名] ... [目录名] ...
option 功能 -c 创建新的归档文件 -f 保存文件 -v 显示详细信息 -x 解压文件 -r 追加文件 -u 更新文件 -z gzip压缩 -j bzip2压缩 打包文件
tar -cvf [目标tar文件名] [文件名] ... [目录名] ...
解压文件
tar -xvf [目标tar文件名] [文件名] ... [目录名] ...
压缩文件(gzip)
tar -xzvf [目标文件名].tar.gz [文件名] ... [目录名] ...
压缩文件(bzip2)
tar -xzvf [目标文件名].tar.bz2 [文件名] ... [目录名] ...
追加文件
tar -rvf [目标tar文件名] [文件名] ... [目录名] ...
更新文件(不存在加入,不一致更新)
tar -uvf [目标tar文件名] [文件名] ... [目录名] ...
对于已经压缩为其他格式(如gzip或bzip2)的归档文件(如.tar.gz或.tar.bz2),无法直接追加或更新其中的文件。
-
gzip/bzip2 压缩文件
gzip :更好的速度,但压缩率差;bzip2:更好的压缩率,但速度较慢
压缩文件:
gzip/bzip2 [文件名]
解压文件:
gzip/bzip2 -d [文件名].gz
默认生成压缩文件的同时,会删除掉原文件。
option 功能 -c 创建新的归档文件 -f 保存文件 -k 保留原文件 -
mount 挂载文件系统
挂载:一个文件系统可在特定的路径或目录下访问
mount [options] [设备名] [挂载点]
option 功能 -t [文件系统类型] 指定文件系统类型 -o [选项] 指定挂载的选项 挂载选项将决定了文件系统的行为和属性。
-
umount 取消挂载文件系统
umount [设备名]|[挂载点]
作用:在物理移除前确保所有写入操作都已完成,防止数据损坏。
-
lftp/ncftp ftp的文件传输
lftp/ncftp [ftp服务器地址]
-
ps 显示进程
列出与当前终端关联的进程:
ps
列出系统中所有的进程:
ps -e
使用完整格式显示进程,包括父进程ID、用户、CPU使用时间等(可以与其他option组合)
ps -f
列出指定用户的所有进程
ps -u [用户名]
-
kill 发送进程信号(ID)
kill [信号] [进程ID]
默认为终止信号
-
killall 发送进程信号(名称)
killall [信号] [进程名]
可以批量终止同名进程
终止某一用户的进程:
killall -u [用户名] [信号] [进程名]
终止运行超过某一时间的进程:
killall -o/-y [运行时间] [信号] [进程名]
-
crontab 调度任务
编辑当前用户的 crontab 文件:
crontab -e
显示当前用户的 crontab 文件:
crontab -l
删除当前用户的 crontab 文件:
crontab -r
crontab文件格式:
[minute] [hour] [day] [month] [day_of_week] [命令]
可用*作为通配符。
-
at 一次性调度任务
at [time]
time支持24小时制格式,接着输入要执行的命令即可
也可以用sh直接导入:at [time] < [sh文件地址]
-
batch 调度任务(低于某个负载值启动)
batch
将进入输入模式,按
Ctrl+D
退出。
这些调度命令实际是都是交给atd守护进程(at daemon)后台运行,本身不会一直挂在后台。
1.3了解部分
-
df 显示整个系统磁盘空间大小
将大小以可读的方式显示
df -h
显示文件系统类型
df -T
-
du 显示文件或文件夹磁盘空间大小
du -h [文件或文件夹]
-
more/less 打开一个文件并显示其内容
more/less 文件名
按键 功能 b 查看上一页(less独有) Space 查看下一页 Enter 查看下一行 / 后跟关键字 用于搜索 q 退出 -
head/tail 查看文件前/后 N 行
默认输出10行
head/tail [文件名]
输出指定行数
head/tail -n [行数] [文件名]
-
man 查看命令的用法
man [命令名]
-
who 查看其他用户
who
显示所有信息:
who -a
显示用户进程:
who -u
显示运行级别:
who -r
传统的 System V init 运行级别:
0: 关机
1: 或 s 或 S: 单用户模式(通常用于系统维护,没有网络或多用户支持)
2: 多用户模式,不带网络文件系统(NFS)
3: 完整的多用户文本模式,带有网络
4: 未定义/用户可定义
5: 图形模式(即图形用户界面,或 GUI)
6: 重新启动 -
w 显示关于当前系统上登录的用户的信息
w
示例输出:
13:05:34 up 7 days, 2:22, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT john pts/1 192.168.1.100 12:15 1.00s 0.18s 0.00s sshd: john@pts/1 smith pts/2 192.168.1.101 12:20 10:12 0.03s 0.03s -bash
- USER:用户名。
- TTY:用户使用的终端。
- FROM:用户从哪个 IP 地址登录。
- LOGIN:用户登录的时间。
- IDLE:用户的空闲时间。
- JCPU:与该终端关联的所有进程消耗的 CPU 时间。
- PCPU:当前进程消耗的 CPU 时间。
- WHAT:用户当前正在执行的命令。
-
top 查看进程、CPU 、内存使用情况
top
图形化视图:
htop
-
ping 测试网络连接性
ping [网址]
-
passwd 密码管理
修改密码
passwd
修改其他用户密码(需要超级用户权限)
passwd [其他用户]
锁定账户(需要超级用户权限)
passwd -l [其他用户]
解锁账户(需要超级用户权限)
passwd -u [其他用户]
强制用户到期修改(需要超级用户权限)
passwd -x [天数] [其他用户]
-
adduser 添加用户
adduser [新用户名]
默认会创建一个和用户名同名的组名
adduser还可以将现有用户添加到现有组中:
adduser [用户名] [组名]
-
mail 发送邮件
示例:
echo "This is the body of the email" | mail -s "Subject Line" user@example.com
使用mail要设置邮件传输代理
-
clear 清屏
clear
-
reset 重启终端的显示设置
reset
-
jobs 列出后台的所有作业(当前shell)
jobs
使用 jobs 列出的作业编号,还可以控制特定作业:
Ctrl+Z
可以暂停一个前台作业,然后移动到后台
将作业移至前台,并重新运行:fg %[作业编号]
使暂停的作业在后台继续运行:
bg %[作业编号]
-
dmesg 检查内核环形缓冲区消息
主要用于诊断问题检测硬件
dmesg
-
talk 终端里通讯
talk [用户名]
不同服务器的也可以
talk [用户名]@[主机地址]
-
write 终端里发信息
与talk用法一致
-
wall 服务器内通知
wall [通知信息]
-
mesg 通讯管理
启用或关闭talk,write等功能
mesg y/n
以上为笔者初学Linux的学习笔记,如有不妥之处,还请各位多多指教。