文章目录
before preview —— tldr
tldr 是比 man 更易于阅读和使用的帮助文档
前言
本文记录了部分Linux常用的命令,即可以作为新手学习入门使用,又可以当做手册查阅
ctl + c 向系统发送中断信号
老菜鸟的学习之路
实用操作
安装/卸载.deb程序
dpkg -i 安装报名字.deb
dpkg -r 软件名
# 可以通过dpkg -l 查看安装了哪些程序,通过dpkg -l | grep “baidunetdisk” 过滤
Linux目录结构
通过如下命令可查看Linux系统目录结构,不同版本的Linux可能略有不同,但大体上差不多。
cd /
ls -lah
下面的命令和上面的效果相同
cd / ; ls -lah
Linux中所有的内容都是以文件的形式存放的
. | 代表当前目录 |
.. | 代表上一层目录 |
- > | 带箭头的是链接文件,相当于Windows下的快捷方式 快捷方式->链接到这里 |
/bin | 存放常用命令(即二进制可执行程序) |
/boot | 系统内核及启动有关的文件 |
/dev | 存放设备文件,比如新加了块硬盘等在这里可以看到 |
/etc | 存放系统配置文件 |
/home | 所有普通用户的主目录 |
/lib | 存放库文件 |
lost+found | 非正常关机后在此目录下会有文件 |
/mnt | 临时挂载点 |
/opt | |
/proc | 虚拟文件系统的目录,以进程为单位存储内存的映射 |
/root | root用户的主目录 |
/tmp | 存放各种临时文件,是所有用户均可访问的地点 |
/usr | Unix Shared r |
/var | 存放系统运行中常改变的文件,如系统日志 |
常用命令
线上查询及帮助命令
[...]# | |
---|---|
man | man mkdir |
info | |
help |
man [...]# man mkdir / manual
info [...]# info mkdir
help [...]$ help mkdir
[…]# 代表当前用户身份为root
[…]$ 代表当前用户为普通用户
文件及目录操作
ls
ls # 显示指定工作目录下的文件及属性信息
ll 同 ls -l
ls -alh
ls /root
常用参数 | 含义 | YY |
---|---|---|
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) | all |
-l | 使用长格式列出文件及目录的详细信息 | list |
-h | human,以人类友好的方式显式 | human |
cd
change directory
cd / #切换至根目录
cd . #切换到当前目录
cd .. #切换至上级目录
cd - #两个目录反复横跳
cd ~ #切换至当前用户目录
cp
copy,复制文件或目录.-r参数用于递归操作,复制目录时若忘记加则会直接报错,而-f参数则用于当目标文件已存在时会直接覆盖不再询问,这两个参数尤为常用。
语法格式: cp [参数] 源文件 目录
cp -rf 源文件 目录
cp -t 目录 源文件
猜测
-f force
-t transfer
-r recursive
find
mkdir
make directory
mkdir new_directory #创建目录
mkdir -p /home/aaa/bbb #若父目录不存在
mkdir -pv /home/aaa/bbb #-v显示创建过程
mv
move移动文件或目录
语法格式: mv [参数] 源文件 目录
mv 目录或文件 目标目录
mv anaconda-ks.cfg ks.cfg #相当于对文件重命名
pwd
print working directory
rename
可以批量重命名文件,而mv只能重命名一个文件
常用参数 | 含义 |
---|---|
? | 可代替单个字符 |
* | 可代替多个字符 |
rm
remove,删除文件或目录,rm -rf /*命令则会清空系统中所有的文件,甚至无法恢复回来
rm -rf /* #递归并且强制删除根目录下的所有文件
常用参数 | 含义 |
---|---|
-r | 递归删除 |
-f | 强制删除(不二次询问) |
-i | 删除前会询问用户是否操作 |
-v | 显示指令的详细执行过程 |
rmdir
remove empty directory
仅能删除空目录
语法格式: rmdir [参数] 目录
rmdir ./a #删除空目录a
rmdir a/b/c a/b a #删除空目录c b a
rmdir -p a/b/c #同上
常用参数 | 含义 |
---|---|
-p | 删除指定目录及其各个上级文件夹 |
-v | 输出每个被处理目录的详情和诊断信息 |
touch
touch hea.h #若文件不存在则创建空文件,若文件存在则修改时间戳
tree
以树状图形式打印出当前目录内容
basename
似乎没啥用
basename a/b/c #输出c
dirname
跟basename组成路径
dirname a/b/c #输出a/b
chattr
change attribute 更改文件属性
lsattr
list attribute 列出文件属性
file
识别文件类型
file 文件名
md5sum
sha256sum
查看文件及内容处理命令
cat
在终端设备上显示文件内容
-n 显示行号
tac
反向列示文件内容
more
分页显示文本文件内容,文件内容少用cat多用more
回车:下一行
空格:下一页
front:下一页
back:上一页
less
同more但是更强大,less更像将终端变为“记事本”
echo
输出
echo "Hello World!" #在终端上显示Hello World!
echo -e "ab\ncd" #-e支持转义字符
echo -e "覆盖" > file
echo -e "追加至下一行" >> file
grep
据说是强大的文本搜索工具
grep来自于英文词组“global search regular expression and print out the line”的缩写,意思是用于全面搜索的正则表达式,并将结果输出。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活
ls | grep a #显示所有名称中带a的文件或目录
head
显示前几行
head file.txt
head -n10 file.txt #显示前10行
tail
查看文件尾部内容
-n50 显示文件尾部50行
tail -f nohup.out #持续显示文件最新追加的内容
ln
link创建连接,相当于创建快捷方式
ln -s 源文件或目录 软连接名
ln -rf linkname #删除链接
ln -rf linkname/ #删除链接下的子目录
history
显示历史命令
history -c #清除记录
vi/vim
vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
- 命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
- 输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
- 底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
:q 退出
:q! 强制退出不保存
:wq 退出并保存
文件压缩及解压
tar
tar本身不具有压缩功能。它是通过调用压缩功能实现的
注tar是打包,不是压缩
# 注tar是打包,不是压缩
tar -xvf filename.tar # 解包
tar -cvf filename.tar DirName # 打包
tar -zxvf name.tar.gz -C /tmp # 解包
tar -zcvf name.tar.gz file1 file2 ... # 打包并压缩
gzip
将文件压缩为*.gz
只能压缩文件不能压缩目录,不保留原来的文件,同时多个文件会产生多个压缩包
gunzip
zip
unzip
zip -r test.zip file1[file2 ...] # 压缩
unzip test.zip # 解压到当前目录
unzip -d /tmp test.zip # 解压到指定目录
unzip -l test.zip # 只是看看zip压缩包的内容,不进行解压缩
信息显示 / 进程管理
uname
显示操作系统相关信息的命令
hostname
hostnamectl
hostnamectl set-hostname xxx # 修改hostname
cat /etc/hosts
dmesg
显示开机信息用于诊断系统故障
uptime
显示系统运行时间及负载
du
disk usage 查看文件或目录的大小
du --max-depth=n
常用参数 | 含义 |
---|---|
-h | 用合适的方式显示大小 |
-s | 只显示总和 |
-a | 不仅查看子目录的大小,还要包括文件 |
df
dist free 查看磁盘剩余空间
Show information about the file system on which each FILE resides, or all file systems by default.
lsblk
mount
挂载、
- 挂在新的根分区
mount /dev/dev /mnt
- 挂载必要的文件系统proc, sys, dev, run
mount --bind /dev /mnt/dev mount --bind /sys /mnt/sys mount --bind /proc /mnt/proc mount --bind /run /mnt/run
- 进入chroot环境
chroot /mnt
- 执行操作
在chroot环境中,可以执行安装、修复等操作 - 退出chroot环境
exit umount /mnt/{proc,sys,dev,run} umount /mnt
umount
卸载分区
fdisk
fdisk -l; 列出指定的外围设备的分区表状况
fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子
top
实时显示系统资源使用情况
free
显示内存占用
eg: free -h Show human-readable output
date
Display the current time in the given FORMAT, or set the system date.
cal
查看日历等时间信息
用户管理
useradd
passwd
su
sudo
groupadd
useradd
useradd
passwd
常用格式:passwd [参数] 用户名
[root@linuxcool ~]# passwd
Changing password for user root.
New password: 输入密码
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.
常用参数 | |
---|---|
-d | 删除已有密码 |
-l | 锁定用户的密码值,不允许修改 |
-u | 解锁用户的密码值,允许修改 |
-e | 下次登陆强制修改密码 |
-k | 用户在期满后能仍能使用 |
-S | 查询密码状态 |
系统权限及用户授权相关命令
chown
chmod
文件rwx权限对root用户无效,即root用户拥有最高权限。
除了用上面的rwx代表权限外还可以用八进制
上图中的权限为 755
chown
改变文件或目录的用户和用户组
chown [参数] 所属主:所属组 文件
chown root:root file_or_dir
chmod
改变文件或目录权限
chmod 777 file_or_dir
chmod 755 file_or_dir
chmod 750 file_or_dir
查看系统用户登陆信息
whoami
打印当前登录用户
who am i
内容会更详细
查看cpu
查看服务其的cpu个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看服务器每个cpu的核数
cat /proc/cpuinfo | grep "cpu cores" | uniq
基础网络操作命令
telnet
ssh
scp
wget
route
ifconfig
修改IP: ifconfig <eth0> <ip> netmask <mask>
ifup
ifdown
netstat
ss
进程管理相关命令
nohup
nohup, no hang up防止终端断开连接而导致程序执行终止
nohup linux.sh & # 以后端模式运行指定脚本程序
nohup uptime &> system.txt # 以后端模式执行指定命令,并将输出结果写入到文件
ps
显示进程状态
ps aux
ps aux | grep 要找查的内容
kill
kill -9 PID
服务
systemctl
管理系统服务
常用命令 |
---|
start 启动服务 |
stop 停止服务 |
restart 重启服务 |
enable 使某服务开机自启 |
disable 关闭某服务开机自启 |
status 查看服务状态 |
list -units --type=service 列举所有已启动服务 |
crontab
管理定时计划任务
参数 |
---|
-e 编辑任务 |
-l 列出任务 |
-r 删除任务 |
-u 指定用户名字 |
–help 显示帮助信息 |
Tips
在Windows下我们叫文件夹,在Linux下叫目录
文件夹 <=> 目录