Linux入门基础


写在前面

本文主要内容为Linux入门向的基础知识,记录下来方便自己与他人的查询。

注:知识补充放在文末。


Linux基础

命令

开关机

重启:
rebootinit 6

关机:
shutdownhaltpoweroffinit 0

登陆:
login

注销:
exitlogout


很常用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
rm -rf /* 	# 删除所有文件
pwd # 查看当前目录
cd # 切换当前工作目录
ls # 列出目录下文件
clear # 终端清屏
ping # 因特网包探索器
ifconfig # 显示或配置网络设备
cat # 获取当前文件所有内容
route -n # 查看网关
./ # 当前目录
../ # 上级目录
cd ~ # 进入目前使用者身份所在主文件夹
cd ~account # 进入account这个使用者的主文件夹
cd - # 回到前一个工作目录

渗透中常用
1
2
3
4
5
6
7
8
9
whoami 	# 查看当前用户身份
tar # 压缩与解压缩
netstat # 查看网络状态,常用 -ano
nslookp # 查看dns信息
ps # 查看运行的程序,常用 -C sshd
top # 实时查看运行的程序
service # 使用service控制服务启动关闭
curl # 获取网页,可使用输出重定向来下载文件
wget # 下载文件

常用快捷键

Tab 补全自动
ctrl+c 强行停止
exitctrl+d 退出shell
ctrl+l 清屏(控制台记录并未清除)
date 时间
ctrl+z 后台挂起


文件组织

Linux目录管理
1
2
3
4
5
6
7
8
9
10
/bin 	# 放置可执行文件
/dev # 任何设备与周边设备等硬件
/media # 放置可移除的设备
/opt # 第三方协力软件放置的目录
/tmp # 临时文件
/home # 使用者主文件夹
/root # 系统管理员的主文件夹
/etc # 是linux中各种服务,启动项,配置信息的位置
/usr # usr(Unix Software Resource)Unix操作系统软件资源
/var # var目录主要针对常态性变动

常用文件位置
1
2
3
4
5
6
7
/etc/yum/source.list 	# centOS源,kali为则将yum换为apt即可
/etc/ssh/sshd_config # ssh配置文件
/etc/init.d/network # 网络服务配置文件,kali为networking
/etc/sysconfig/network-scripts # 网卡配置文件
/etc/passwd # 用户信息
/etc/shadow # 用户密码信息
/etc/group # 用户组信息

文件读写操作

新建文件:touch /tmp/hello
新建文件夹:mkdir ./hello

删除文件:rm /hello.txt
删除文件夹:rm ./hello

rm -rf /* -r 删除文件夹 -f 递归删除

复制移动

cp 复制文件或文件夹到指定路径
mv 移动文件或文件夹到指定路径

查看文件

cat 显示一个文件夹内容
more 显示一个文件的内容

显示文件的前几行

head -n 5 /test/yum.conf
head -7 /test/yum.conf

显示文件的后几行

tail -n 3 /test/yum.conf
tail -2 /test/yum.conf

查找文件或文件里的内容

查找文件名:
find 路径 -name 文件名

查找字符串:
grep 字符串

whereis 查找某个命令所在位置
which 查找当前用户命令


系统基础命令

jobs 显示当前暂停的进程(与ctrl+z配合,将一个进程停止并挂在后台)
bg %N 使后台第N个任务在后台运行
fg %N 使后台第N个任务在前台运行
默认bgfg不带%N时表示对最后一个进程操作

使一个程序在后台不中断地运行:

  1. 做成一个service
  2. 使用&符号,让一个运行的进程一直在后台运行
  3. 使用nohup setsid做到即使shell退出后,依然能运行程序,
    不中断地将任务进行并输出到nohup.out
  4. 使用screen
  5. 使用()符号,将进程加入subshell
  6. 其他方式

压缩包文件处理命令

Linux下压缩包格式有:

.tar.gz.tar.gz.tgz.bz2
.tar.bz2.bz.tar.bz.Z.tar.Z.xz.zip.rar
常用的压缩格式为.tar.gz.zip

解压与压缩命令:
.gz

-c:create新的包
-x:解包
-z:压缩方式为gz
v:显示细节
f:使用归档文件

.tar

解包:tar xzvf FileName.tar解包后原始文件存在
打包:tar czvf FileName.tar filename1 filename2 ... (打包多个文件)
tar czvf FileName.tar DirName(打包压缩一个目录)

.zip

解压:unzip FileName.zip 解包后原始文件依然存在
压缩:zip FileName.zip DirName
列出内容:unzip -l FileName.zip

打包的意义:提高传输速度及完整性


vim编辑器

常用命令

1
2
3
vim FileName 	# 使用vim打开文件
i/a/o # 在当前字符前/后/下一行插入
ESC、ctrl+c #退出编辑模式

底行命令

:w保存 :q退出 /查找
shift+g 转到文件末行
shift+h 转到文件首行
nddn代表数字)从当前行删除n行
nyy 从游标所行开始复制n行
xX 在一行字中,x为向后删除一个字符,X相反
pP p为将已复制内容在光标下一行贴上
u 撤销操作
:set nu 显示行号(全名nummber)
:set nonu 不显示行号(全名nonumber)
:%s/word1/word2 寻找字符串word1替换为word2

Vim/Vi工作模式图解


用户与用户组

文件位置

1
2
3
/etc/passwd 	# 存储用户信息
/etc/shadow # 存储用户密码信息
/etc/group # 存储用户组信息

passwd文件配置

账号格式
1
用户名:x:uid:gid:备注信息:home:shell

参数配置

nologin 此账户目前不可用,不能被切换到的账号
/bin/false 登录必然报错,无法登陆
/home/Username 没有的话,登陆后会报Could not chdir to home
directory /home/Username
x 代表允许登录,并且密码在/etc/shadow
* 代表不允许登陆

Kali密码破解:

1
john passwd


添加用户

环境:CentOS

1
2
3
4
5
useradd Username 	# 添加用户,但不设密码,会创建一个/home/用户名
adduser Username # 添加用户,但不设密码,会创建一个/home/用户名
passwd 修改密码
su Username 切换用户
userdel 删除用户

若在Ubuntu环境下,adduser则会设置密码与备注等信息


权限操作

修改所属组
1
2
3
groupadd 	# 新建用户组
groupdel # 删除
groupmod # 修改

权限控制

chomod 修改当前文件或文件夹权限
可以使用数组或使用字母参数:

u:user g:group o:other a:all

exmaple:

1
2
3
4
5
chmod ou-r filename 	# user和other用户剥夺读权限
chmod g=wr,o=r # group用户赋予读写权限,其他只赋读权限
chown 用户:用户组 # 修改当前文件或文件夹所属用户
chown root:root /tmp/tmp1 # 单个文件改变文件所诉用户及组
chown -R root:root /tmp/tmp1 # 文件夹及其内部全部改变


Linux查看进程及端口信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 根据进程名差看进程信息
ps -ef | grep tmocat

# 根据进程id查看进程占用端口
netstat -nap | grep 1095

# 根据端口查看对应进程
netstat -tunlp | grep 8080

# 根据进程id查看进程信息
ps -ef | grep 1095

# 根据进程id杀死进程
kill -9 1095

补充知识

init六种运行模式

原文
基本概念:

init是Linux系统里的根进程,是系统所有进程的祖先。它的主要作用是根据记录在/etc/inittab里的一个脚本程序产生进程。这个文件通常用于控制用户的登录模式。
Linux系统的有效登录模式有0~9共十种,不过沿用UNIX系统的至多6种的限制,一般只有1到6有效

init一般在系统启动时自动运行,也可以由root用户调用。它的作用是切换系统的运行状态。
它的命令格式是:
init NUM
其中NUM表示1到6的任一数字

6种模式中有两种是系统内定的:

0:停止系统运行。相当于halt
6:重启系统。相当于reboot

其余:

init 1 进入单用户模式。
init 2 进入无网络服务的多用户模式 如果你的计算机没有对外提供网络服务,这个模式就跟普通模式一样了。
init 3/4 进入控制台登录的多用户模式.每个用户都要先从黑白屏幕登录之后才可以运行才能startx进入KDE图形界面。
init 5 进入图形化登录的多用户模式。
可以通过runlevelwho -r命令来查看当前运行的模式。


No such file or directory

./一个存在的文件,提示上述信息
原因:可能缺少32位运行库ia32-libs
解决:sudo apt-get install g++-multilib

您的支持是我前进的动力!