常用操作
- Ctrl+A光标跳至命令行开头
- Ctrl+E光标跳至命令行结尾
- Ctrl+U删除光标之前的内容
- Ctrl+K删除光标之后的内容
- Ctrl+L清屏,相当于#clear
- Ctrl+C退出当前正在执行的进程或退出当前正在编辑的命令行,开始新的一行命令等等
- Ctrl+D退出当前用户,相当于#logout或#exit
- Shift+pageup向上翻看内容
- Shift+pagedown向下翻看内容
常用命令
- cd /home 跳到某个目录(/home)下
- 注意:如果cd后面没任何参数,则无论在哪个目录,都会直接跳到用户基本base目录下,如果要返回,之前的目录,则#cd - (减号)即可
- ls /home 查看目标目录(/home)下的文件,如果ls后面不带目录参数,则查看当前目录文件
- cp /home/a /usr/local/b 将源文件a(含目录)复制到名为b(含目录)的文件
- mv /home/a /usr/local/b 将源文件a(含目录)剪切粘帖到名为b(含目录)文件
- rm /home/a 删除a文件(夹),一般加参数-rf强制删除,如果a是文件夹,则文件夹中的内容一并删除
- mkdir /home/a 在home下新建一个文件夹a
- cat hello.txt 显示文件的文本信息
- vi/vim hello.txt 编辑(新建)一个文件
- pwd 查看当前所在位置(目录)
- who 查看当前终端
- history 历史命令
- ifconfig 查看当前联网状态以及IP地址
- scp /home/file root@www.baidu.com:/home/dir
scp是从一个linux主机复制到另一个linux主机,它的基本格式是:scp [选项] 本地文件名 远程用户名@IP地址:远程文件名。注意:选项和cp类似,本地/远程文件名需要绝对路径,IP地址可以是域名:
scp administrator@192.168.3.137:E:/temp/klipper.zip /home/ysz/klipper.zip
将windows的E盘temp文件夹下的klipper.zip复制到/home/ysz下
- rm -r !* !*代表上一行命令的参数,这里使用上一行命令的参数作rm的参数
- ps aux 查看进程(静态)
- top 动态进程
属性命令
- stat hello.txt 查看文件详细信息,可查看创建时间,修改时间,访问权限等
- file a.out 查看文件类型,ascii文本文件,二进制可执行文件,超链接文件等
- type ls 查看命令类型
- which ls 查看命令位置
用户管理
- 修改用户的各指令实际上是修改/etc/passwd(用户名),/etc/shadow(用户密码),/etc/group(用户组),/etc/gshadow(用户组密码,一般不用)这四个文件
- 尽量不要直接修改上面的文件,比如改了/etc/passwd后,没有对应的密码,就不能使用sudo了,这时就登录不了,也操作不了了
- id 查看当前用户名,用户组及id
- useradd ysz 添加用户ysz,默认其uid会在已有的用户uid上+1
-g 指定用户组
-G指定副用户组
-s指定shell
-u指定uid
-d指定家目录
-m自动在/home下创建与用户名相同的家目录
useradd ysz -u 1100 -g YSZ -G test_group1,test_group2 -s /usr/sbin/nologin -d /ysz
- userdel ysz 删除用户ysz
-r自动删除ysz相关家目录,日志等
- groupdel ysz 删除组
- usermod ysz -u 1200 修改用户,这里的参数和useradd相似,差异就是它必须跟已经存在的用户名
- passwd ysz 为用户ysz设置密码,如果不跟任何参数,就修改本用户密码
- su root 切换用户到root
- id 查看当前用户/组信息,-u当前用户uid编号
文件权限管理
一个文件的权限就是文件相对于各用户开放的权限,r可读,w可修改,x可执行
- ls -l 查看文件权限,十个字符,第1个字符是文件类型,后面是三组(UGO)权限,分别是U(用户权限),G(所属组权限),O(其它用户的权限)
- chown user.group file.txt 将file.txt所属的用户改为user,组改为group,这里用户和组可以只要一个
- chmod o+x file.txt 使O(其它用户)对file.txt有执行的权限
- chmod g-w file.txt 去除所属组对file.txt的写权限
- chmod a=r-x file.txt 对all(所有用户)开放读和执行
- chmod u=rwx,g=rx,o=x file.txt 对所有者开放读写执行,所属组开放读执行,其它用户只能执行
服务
- 服务状态:sudo systemctl status sshd
- 停止服务:sudo systemctl stop sshd
- 开启服务:sudo systemctl start sshd
- 禁止开机启动:sudo systemctl disable sshd
- 使能开机启动:sudo systemctl enable sshd
- 查看当前所有已经注册的服务:sudo systemctl list-unit-files --type=service
- 卸载服务过程:查看所有服务获取准确的服务名 -> 停止服务 -> 禁止开机启动 -> 删除配置文件/etc/systemd/system/服务名.service -> 删除服务所有日志文件/var/log/服务名/* -> 删除服务所有库文件/var/lib/服务名/*
界面
- 开机后不进入图形界面:sudo systemctl set-default multi-user.target
- 开机后进入图形界面:sudo systemctl set-default graphical.target
- 查看当前进入模式:sudo systemctl get-default
磁盘命令
- df -h 查看磁盘信息
- free -h 查看内存信息
- du -sh dir/ 查看文件夹占用磁盘大小,s只显示整个文件夹大小,不加s则会显示里面的各目录大小,h显示人能理解的大小单位,如G,M,K等
- lsblk 查看设备挂载信息
内核与系统相关
- uname -a 查看内核信息(全部) -r 只看内核版本
- lscpu 查看CPU主频/架构等信息
- cat /proc/cpuinfo 动态的查看当前CPU状态,以及可能的一些主板信息
调试命令
- dmesg 查看内核启动,硬件驱动等相关信息,对系统应用开发非常重要
- journalctl 基于systemd日志系统,可以查看系统运行中各服务的日志信息
journalctl -u nginx #过滤查看,只看与nginx有关的服务日志
journalctl -f #动态实时显示最新日志
journalctl _PID=2210 #PID过滤,只查看进程PID为2210的日志
journalctl --since="2024-07-22" --until="2024-07-25"查看从20240722到20240725期间的日志