Linux基础命令
基于linux内核的发行版
简单说linux的发型版说简单点就是将Linux内核与应用软件做一个打包。(Kali linux:安全渗透测试使用)
Linux 内核:
Debian家族:Debian、Ubuntu、Linux Mint
Fedora家族:Fedora、RHEL、CentOS、RedHat、Oracle Linux
SUSE家族:SLES、SuSE、OpenSUSE
其他家族
开机启动的程序在windows中叫服务,在Linux中叫daemon
Linux中一切皆文件(文件:读写执行(),权限(用户、用户组)。系统∶(磁盘,进程))
linux文件夹各功能
linux文件夹各功能
/bin : bin是Binary的缩写,这个目录存放着最经常使用的命令。
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不要动)
/dev : dev是Device(设备)的缩写,存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
/etc :这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media : linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下.
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt : 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的
/proc :这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin : s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/srv:该目录存放一些服务启动之后需要提取的数据。
/sys :这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。
/tmp :这个目录是用来存放一些临时文件的。
/usr :这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin :系统用户使用的应用程序。
/usr/sbin :超级用户使用的比较高级的管理程序和系统守护程序。Super
/usr/src : 内核源代码默认的放置目录。
/var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
/www: 存放服务器网站的相关目录
开关机相关命令
开关机相关命令
sync #将数据由内存同步到硬盘中。
shutdown #关机指令,你可以man shutdown来看一下帮助文档。例如你可以运行如下命令
shutdown -h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown -h now #立马关机
shutdown -h 20:25#系统会在今天20:25关机
shutdown -h +10 # 十分钟后关机
shutdown -r now #系统立马重启
shutdown -r +10 #系统十分钟后重启
reboot # 就是重启,等同于shutdown -r now
halt #关闭系统,等同于shutdown -h now和 poweroff
基本命令 命令帮助: 命令 --help
基本命令
- ls: 列出目录
- cd:切换目录
- pwd:显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录,或修改文件与目录的名称ls 列出目录
-a参数: all,查看全部的文件,包括隐藏文件
-l参数: 列出所有的文件,包含文件的属性和权限,没有隐藏文件
所有Linux可以组合使用!
cd 切换目录 cd目录名(绝对路径都是以/开头,相对路径,对于当前目录该如何寻找..)
pwd 显示目前所在的目录
mkdir 创建一个目录
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
mkdir test1 #创建目录 mkdir -p test2/test3/test4 #创建多级目录 mkdir -m 711 test2 # 创建权限为 rwx--x--x 的名为test2的目录rmdir 册除目录 rmdir 仅能删除空的目录
-p 级联删除
rmdir -p test1/test2/test3/test4 #将 test1/test2/test3/test4 依次删除。cp 复制命令
cp [-adfilprsu] 来源档(source) 目标档(destination)
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-r:递归持续复制,用於目录的复制行为;(常用)
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
cp /root/install.sh /home #将/root下的install.sh,移动至 /home 。。cp 文件名 文件夹名rm ( 移除文件或目录 )
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
mv ( 移动文件与目录,或 修改名称 )
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory #最后一个文件夹前的都移动至dire基本属性

实例中,boot文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档 ( link file );
若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图):

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。
修改文件属性命令
chgrp:更改文件属组
chgrp [-R] 属组名 文件名-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名chmod:更改文件9个属性
chmod [-R] xyz 文件或目录Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
r:4 w:2 x:1
chmod 770 filename #给owner/group 赋权读写执行 others则无权限文件内容查看
Linux系统中使用以下命令来查看文件的内容:
cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行 head [-n number] 文件// #head -n 20 /etc/csh.login 查看后20行
tail 只看尾巴几行 tail [-n number] 文件 // # tail -n 20 /etc/csh.login 查看后20行
可以使用 man [命令]来查看各个命令的使用文档,如 :man cp #查看cp命令的使用文档。
Linux 链接概念
同操作系统分软硬链接
硬链接是指针直接指向内存块,只要该内存块指针不为0则不可删除
软链接则为相对路径,可直接清空内存块
Vim编辑器
vim filename 有则修改,无则创建再修改
touch filename只创建不修改
vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
i 切换到输入模式,以输入字符。
esc退出输入模式
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。(前提是在命令模式下才可)
:q 退出程序
:w 保存文件
账号管理
useradd 添加账号
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
useradd -m test #-m选项用来为登录名test产生一个主目录 /home/testuserdel 选项 用户名 #删除帐号
-r 作用是把用户的主目录一起删除
Linux下如何切换用户
1.切换用户的命令为:su username 【username是你的用户名哦】
2.从普通用户切换到root用户,还可以使用命令:sudo su
3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】
$表示普通用户
#表示超级用户,也就是root用户
usermod 修改帐号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
例如:
# usermod -s /bin/ksh -d /home/z –g developer test此命令将用户test的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
用户口令的管理
用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令的格式为:
passwd 选项 用户名可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果是非root用户则使用passwd修改当前用户的口令。
$ passwd
Old password:******
New password:*******
Re-enter new password:*******root用户:
# passwd testuser
New password:*******
Re-enter new password:*******用户组管理 其实就是修改/etc/group
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
groupadd 增加一个新的用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
实例1:
# groupadd group1此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。
实例2:
# groupadd -g 101 group2此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。
groupdel 删除一个已有的用户组
groupdel 用户组例如:
# groupdel group1此命令从系统中删除组group1。
groupmod 修改用户组的属性
groupmod 选项 用户组常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
# 此命令将组group2的组标识号修改为102。
groupmod -g 102 group2
# 将组group2的标识号改为10000,组名修改为group3。
groupmod –g 10000 -n group3 group2切换组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:
$ newgrp root这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。
/etc/passwd
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。关于这三个文件将另起文件介绍
磁盘管理
Linux磁盘管理常用命令为 df、du。
df :列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
df
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
df [-ahikHTm] [目录或文件名]选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
df -h /etc # 将 /etc 底下的可用的磁盘容量以易读的容量格式显示
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 6.3G 32G 17% /du
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:
du [-ahskm] 文件或目录名称选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
du -sm /* #通配符 * 来代表每个目录。
0/bin
146/boot
.....中间省略....
0/proc
.....中间省略....
1/tmp
3026/usr # 系统初期最大就是他了啦!
513/var
2666/www磁盘挂载与卸除
Linux 的磁盘挂载使用mount命令,卸载使用umount命令。
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点测试:
mkdir /mnt/hdc6
mount /dev/hdc6 /mnt/hdc6 # 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6磁盘卸载命令 umount 语法:
umount [-fn] 装置文件名或挂载点选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。
umount /dev/hdc6 #卸载/dev/hdc6进程管理
ps 查看进程
ps :查看当前系统中正在执行的各种进程的信息!
-a显示当前终端运行的所有的进程信息·
-u以用户的信息显示进程
-x显示后台运行进程的参数!
ps -aux查看所有的进程
ps -aux|grep mysql #查看所有跟mysql进程有关的进程
#│在Linux这个叫做管道符 A|B A中结果输出作为B的输入
#grep 为过滤命令 查找文件中符合条件的字符串ps -ef 可以查看父进程信息、
ps -ef|grep mysql #查看父进程中跟mysql有关的进程
pstree -pu #以结构树显示
-p 显示父id
-u 显示用户组kill 杀掉进程
kill -9 pid 强制结束pid进程
评论区