Linux基础操作命令

Linux基础命令操作

1. Vi和Vim

所有的Linux 系统都会内建 vi 文本编辑器。
Vim具有程序编辑的能力,可以看做是 Vi 的增强版本 ,可以主动的以字体颜色辨别语法的正确性
方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

vim fileName #打开文件

2. 开机&重启

shutdown -h now #立刻关机
shutdown -h 1 #1分钟后关机
shutdown -r now #立刻重启
shutdown -r 1 #1分钟后重启

halt #立刻关机
reboot #立刻重启

sync #把内存数据写入磁盘:关机和重启前先执行

3. 用户管理

logout #注销用户:再图形运行级别无效,再运行级别3下有效
su - [username] #切换用户:不输入用户名为切换到root
exit #返回原来的用户

groupadd groupName #添加组
groupdel groupName #删除组:前提是组里没有用户

useradd [-d directory] [-g group] username #添加用户
passwd [username] #修改密码:不指定用户名是给当前登录用户修改
userdel [-r] username #删除用户:-r不保留用户文件目录
id username #查询用户信息
usermod -g newGroup username #修改用户的组

4. 实用指令

4.1 运行级别

  1. 0 :关机
  2. 1 :单用户 类似安全模式, 这个模式可以帮助找回 root 密码
  3. 2 :多用户状态没有网络服务
  4. 3 :多用户状态有网络服务【使用最多】
  5. 4 :系统未使用保留给用户
  6. 5 :图形界面
  7. 6 :系统重启
  • 修改默认运行级别

    /ect/inittab

    id:5:initdefault:

    通过修改inittab文件的更改Linux的默认运行级别
    linux init 3 #切换运行级别

  • 找回root密码

    启动时:
    快速输入 enter 输入 e --> 进入到编辑界面 --> 选择中间有 kernel 项
    输入 e(edit) edit)--> 在该行的最后写入 1 [ 表示修改内核,临时生效 ]]--> 输入 enter输入 b [boot] boot]--> 进入到单用模式

4.2 帮助指令

man [expression or configFile] #manual:获取命令或配置文件的帮助信息
help expression #获取linux内置命令的帮助信息

4.3 文件和目录相关

pwd #print current/working directory:显示当前目录的绝对路径
ls [options] [dir or file] #list of directory:显示当前目录下的文件和目录
	-a #显示当前目录所有的文件和目录,包括隐藏的文件名以.开头就是隐藏 。
	-l #以列表的方式显示信息
	-h #显示文件大小时,以 k , m, G 单位显示	
	-R #包含子文件和目录
cd [directory] #change directory:切换到指定目录
	/root/bin #绝对路径
	../../root/bin #相对路径
	cd ~ #回到自己的home路径
	cd .. #回到当前目录的上一级

mkdir [options] directory #make directory:创建目录
	-p #创建多级目录
rmdir [options] directory #remove directory:删除空目录
	-r #递归删除:包含该目录下的文件和子目录
	-f #强制删除
	
touch fileName #创建空文件/更新文件修改时间
cp [options] source dest #copy:复制文件/目录source到指定目录dest
	-r #递归复制整个文件夹
mv oldname/srcdir newname/dstdir #移动或重命名文件/目录
rm [options] file/dir #remove:删除文件或目录
	-r #递归删除:包含该目录下的文件和子目录
	-f #强制删除 

cat [options] file #查看文件内容:只读
	-n #显示行号
	spacce #翻页
	enter #下一行
	q #退出
	|more #管道命令把cat的输出结果交给more处理
more file #基于Vi编辑器的文本过滤器
	space #翻页
	enter #下一行
	q #退出
	ctrl+f #向下滚动一屏
	ctrl+b #向上滚动一屏
	= #输出当前行号
	:f #输出当前文件名和当前行号
less file #分屏查看文件内容,功能指令比more更强大,显示大文件更有效率
	space #翻页
	pagedown #下一页
	pageup #上一页
	/string #向下查找 n:下一个 N:上一个
	?string #向上查找 n:上一个 N:下一个
	q #退出

echo [options] [output] #输出内容到控制台
	$PATH #环境变量:路径
env #查看系统所有环境变量
	vim etc/profile #修改环境变量
	
head file #显示文件的开头部分内容:默认前10行
	-n 5 #查看前5行
tail #显示文件中尾部内容:默认后10行
	-n 5 #查看后5行
	-f #实时追踪文档的更新

expression > #输出重定向:覆盖写
expression >> #追加
	ls -l > info.txt #把列表内容写入info.txt
	cat file1 > file2 #把file1的内容覆盖到file2
	date >> info.txt #把当前日历信息追加到info.txt

ln [file/dir] [linkName]#link:类似windows中的快捷方式
	-s #软链接
	rm -rf linkName #删除软连接
	
history [] #查看已经执行过的历史命令:默认为所有
	10 #查看最近10条
	!5 #查看历史编号为5的指令

4.4 时间日期类

date [options] #显示当前时间
	%Y #显示当前年份
	%m #显示当前月份
	%d #显示当前天
	"%Y-%m-%d %H:%M:%S"
date -s [dateString] #设置系统当前时间
cal [options] #查看日历:默认显示本月日历
	cal 2020 #显示2020年日历

4.5 搜索查找类

find [range] [options] name #从指定范围向下递归遍历将满足条件的文件或目录显示在终端
	-name #按照指定的文件名查找
	-user #查找属于自定用户的所有文件
	-size #按照指定的文件大小查找
locate file #快速定位文件的路径
grep [options] lookup source #过滤查找:默认匹配大小写
	-n #显示匹配行及行号
	-i #忽略字母大小写
	
expression1 | expression2 #管道符号:把exp1的输出结果交给exp2处理
	netstat -anp | gerp sshd #查看当前服务器的sshd监听

4.6 压缩和解压类

gip file #压缩文件:只能压缩为*.gz文件
gunzip file.gz #解压文件

zip [options] name.zip file #压缩file为name.zip
	-r #递归压缩:压缩目录
unzip [options] name.zip #解压name.zip
	-d directory #指定解压后文件的存放目录

tar [options] name.tar.gz file/dir #打包指令[可以压缩和解压]:打包后的文件是*.tar.gz
	-c #产生.tar打包文件
	-v #显示详细信息
	-f #指定压缩后的文件名
	-z #打包同时压缩
	-x #解包.tar文件
	tar -zcvf a.tar.gz a1.txt a2.txt

5. 文件权限管理

5.1 文件所有者

文件默认属于其初始创建者

chown username file #修改文件所有者
chgrp group file #修改文件所在组

usermod -g group username #改变用户所在组
usermod -d dir username #改变用户登录的初始目录

5.2 权限管理

权限说明(0-9位):

  • 0位:文件类型

    • -:普通文件
    • d:文件夹
    • l:链接文件
    • c:字符设备文件[键盘鼠标]
    • b:块设备文件[硬盘]
  • 1-3位:所有者对该文件的权限

    • r:read
    • w:write
    • x:run
  • 4-6位:所属组对该文件的权限

  • 7-9位:其他用户对该文件的权限

chmod [expressions] file/dir #修改文件或目录的权限
	-u #user:所有者
	-g #group:所有组
	-o #others:其他人
	-a #all:所有人
	chmod u=rwx,g=rx,0=x file/dir
	chmod o+w
	chmod a-x
	#r=4 w=2 x=1 rwx=4+2+1=7
	chmod u=rwx,g=rx,0=x file/dir
	相当于 chmod 751 file/dir
	
chown newOwner file #修改文件所有者
chown newOwner:newGroup file #修改用户的所有者和所有组
	-r #递归修改:包含目录下的子文件和目录

6. 定时任务调度

任务调度:指系统在某个时间执行的特定的命令或程序。

分类:

  1. 系统工作:有些重要的工作必须重复执行。
  2. 个别用户工作:个别用户可能希望执行某些程序。
crontab [options] #定时任务设置
	-e 编辑crontab定时任务
	-l 查询crontab任务
	-r 删除当前用户的所有crontab任务

新建任务:

  • 设置任务调度文件:/etc/crontab
  • 设置个人任务调度:crontab -e

输入任务到调度文件:

*/l * * * *ls -l /etc/ > /tmp/to.txt #每分钟执行ls -l /etc/ > /tmp/to.txt
#第一个*:一小时当中的第几分钟[0-59]
#第二个*:一天中的第几个小时[0-23]
#第三个*:一个月中的第几天[1-31]
#第四个*:一年中的第几个月[1-12]
#第五个*:一周中星期几[0-7](0和7都是星期日)
#*:代表任何时间
#,:代表不连续的时间
#-:代表连续的时间范围
#*/n:代表每个多久
45 22 * * * #22:45执行命令
0 17 * * 1 #每周一的17:00执行
0 5 1,15 * * #每月1号和15号的05:00执行

创建*.sh文件,并且定时执行来达到某些目的:如备份数据库等。

* 2 * * * * /home/backupdb.sh #每天02:00备份数据库

7. 磁盘分区和挂载

  • 磁盘分区

mbr 分区
1.最多支持四个主分区
2.系统只能安装 在主分区
3.扩展分区要占一个主分区
4.MBR最大只支持 2TB ,但拥有最好的兼容性

gtp 分区
1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
2.最大支持 18EB 的大容量( 1EB=1024 PB 1PB=1024 TB
3.windows7 64位以后支持 gtp

  • 硬盘说明

Linux硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘。

对于IDE 硬盘,驱动器标识符为“ hdx~ 其中“ hd ”表明分区所在设备的类型,这里是指 IDE 硬盘了。“ x ”为盘号 a 为基本盘, b 为基本从属盘, c 为辅助主盘, d 为辅助从属盘) ),“~”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例, hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区 ,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。

对于SCSI 硬盘则标识为“ sdx~“ ,SCSI 硬盘是用“ sd ”来表示分区所在设备的类型的,其余则和IDE 硬盘的表示方法一样。 sdb1 [ 表示第 2 块 scsi 硬盘的第 1 个分区。

7.1 挂载

lsblk/lsblk -f #查看所有设备的挂载情况

7.2 磁盘情况

df -h #查询整体磁盘使用情况
du [options] [dir] #disk used:查询指定目录的磁盘占用情况:默认当前目录
	-s #指定目录占用大小汇总
	-h #带计量单位
	-a #含文件
	--max-depth=1 #子目录深度
	-c #列出明细的同时,增加汇总值
	
ls -l /home/ | grep "^-" | wc -l #统计/home文件夹下文件的个数
tree /home #以树状图的形式显示home目录

8. 网络配置

vim /etc/sysconfig/network-scripts/ifcfg-eth0 #配置固定的ip地址
reboot #配置生效
service network restart #重启网络服务

vim /etc/sysconfig/network #修改主机名:hostname[名称里不要有下划线],重启设备生效

9. 进程管理[重点]

  1. 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www 服务器。
  3. 每个进程都可能以两种方式存在的。前台与后台 ,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行 [sshd ,crond] 。
  4. 一般系统的服务都是以后台进程的方式存在 ,而且都会常驻在系统中。直到关机才才结束。
ps -aux #显示所有进程

kill [options] pid
killall name
	-9 #强制终止
killall gedit #终止多个gedit编辑器

pstree [options] #查看进程树
	-p #显示pid
	-u #显示进程所属用户
	
service serviceName [start|stop|restart|reload|status] #服务管理在CentOS7.0 后 不再使用 service 而是 systemctl

chkconfig [options] serviceName [on/off] #给服务的各个运行级别设置自动启动/关闭
	chkconfig --list #查看所有服务
	chkconfig --level 5 serviceName on/off
	chkconfig iptables off #关闭所有级别的iptables
	
top [options] #动态更新正在进行的进程状态
	-d #设置刷新间隔的秒数:默认是3秒
	-i #不显示任何闲置或者僵死进程
	-p #通过指定id来监控某个进程的状态
	P #cpu使用率排序:默认
	M  #以内存的使用率排序
	N #以PID排序
	q #退出
	u enter username #监视指定用户
	k enter pid #终止指定进程
	
netstat [options] #监控网络状态
	-an #按一定顺序排列输出
	-p #显示哪个进程在调用
	netstat -tlnp #查看当前系统有哪些端口在监听

指令说明:

  • System V展示风格
  • USER:用户名称
  • PID:进程号
  • %CPU:进程占用 CPU 的百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:进程占用的虚拟内存大小(单位 KB)
  • RSS:进程占用的物理内存大小(单位 KB)
  • TTY:终端名称 缩写
  • STAT:进程状态,其中 S 睡眠, s 表示该进程是会话的先导进程, N 表示进程有比普通优先级更低的优先级, R 正在运行, D 短期等待, Z 僵死进程, T 被跟踪或者被停止等等
  • STARTED:进程的启动时间
  • TIME:CPU 时间,即进程使用 CPU 的总时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

10. 面试题目

10.1 Linux常用指令

  • netstat
  • top
  • lsblk
  • find
  • ps
  • chkconfig

10.2 查看内存、磁盘存储、IO读写、端口占用、进程等命令

  • df
  • du
  • iotop:需要下载安装
  • netstat -tunlp:查看正在使用的端口[address后面的数字就是端口号]
  • ps -aux
posted @ 2020-03-10 22:36  L7UI  阅读(441)  评论(0)    收藏  举报