Linux常用命令指南
-
man
Linux命令繁多,而且又有很多的参数经常容易忘记,授人以鱼不如授人以渔,记不清参数的时候男人(man)一把,马上就能想起来。
Eg:
[root@localhost ~]# man ls
//很长,就没有一一截图
//例如 ls –l 意思是list the file at long list format就是看详细信息
-
查看命令的详细信息
Which ——ls命令的出处
Whatis ——ls命令的简单释义
Whereis ——哪里有包含ls名称的文件
Ps:Linux的命令其实就是调用的/bin下面的可执行文件,至于为什么是简写,用的是alias(待续)
-
用户基本操作和切换以及权限切换
很多时候是使用普通用户查看,用root用户来操作,防止因为权限太大造成失误
3.1>新建用户
useradd testuser 创建用户testuser
Useradd 选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
3.2 >给用户添加密码
新建的用户不配密码是无法登陆的
passwd testuser 给已创建的用户testuser设置密码
说明:新创建的用户会自动在/home下创建一个用户目录testuser
Passwd 命令后面可以接的参数为:
-l 锁定口令,即禁用账号
-u 口令解锁
-d 使账号无口令(免密码登陆)
-f 强迫用户下次登录时修改口令
3.2 >删除用户
userdel testuser 删除用户testuser
rm -rf testuser 删除用户testuser所在目录
-
>修改账号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
#命令usermod 参数 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:
-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如:
# usermod -s /bin/ksh -d /home/test –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/test,用户组改为developer。
-
>查看用户的资料文件
/etc/passwd 可以查看用户的password信息
/etc/shadow 查看用户名
/etc/group 查看用户组
补充:如何将普通用户拥有root的权限
-
root用户登陆
-
创建用户和密码
-
修改/etc/passwd 里面此用户的ID和组ID修改为0
//可以看到的是,test建立好以后,没有指定归属组,自己归属于test组里面了
-
-
>查看正在登陆的用户
Who
Who am i
-
>切换用户
Su 后面接用户名,不接则为切换为root用户
Sudo + 命令 指用root权限执行某命令
要想使用sudo还是有一些条件的,没有权限的用户无法借用root权限。
报警为:test(用户) is not in the sudoers file. This incident will be reported.
-
归属于有sudo权限的群组的用户可以借用
Adduser <用户名称> sudo
//操作完后,使用group命令查看是否添加成功,之后登出此用户再次登入即可生效
-
在sudoer文件列表里添加并允许的
/etc/sudoers 编辑此文件,添加 <用户名称> ALL=(ALL)ALL
//即时生效
图示:
-
-
显示硬盘和分区信息
lsblk 查看分区和磁盘
df -lh 查看空间使用情况
fdisk -l 分区工具查看分区信息
fdisk <硬盘名称> 修改硬盘的分区
cfdisk /dev/sda 查看分区
blkid 查看硬盘label(别名)
du -sh * 显示当前目录下各个目录和文件的大小
mkfs -t ext3 partition 格式化分区patition(比如/dev/sdc1)
mount 显示所有的硬盘分区挂载
mount partition path 挂在partition到路径path
umount partition 卸载partition
//mount是比较有意思的,下次单独开一个章节。(留坑20180426)
//lsblk显示的是磁盘容量和挂载点信息
//df –lh 显示的是各个目录下的使用率
//fdisk –l 显示硬盘大小和分区情况,以及具体磁盘的子字段划分
//fdisk同样是硬盘分区工具
//cfdisk类似于windows的硬盘管理,可以新建分区、删除分区
//blkid 查看硬盘的别名
//du –sh * 看到的是当前各个目录占用的磁盘空间大小
-
显示系统资源信息
arch 显示架构(多少位系统)
cat /proc/cpuinfo 显示CPU信息
cat /proc/meminfo 显示内存信息
free 显示内存使用状况
-
进程管理
之前有人问过我这个问题,没答上来,记忆犹新。
Top 实时显示进程信息和占用率
Ps 显示当前shell下的进程
Ps –lu <username> 显示用户username的进程
Ps –ajx 比较完整地显示所有的进程(但为静态)
Kill pid 关闭指定pid的进程(pid process id)
-
网络初步搭建
作为网络攻城狮,最重要的是搭好平台,连好网络,其他的自行发挥想象。
网口的配置文件位于:/etc/sysconfig/network-script 记忆很简单,etc存储的是配置文件,sysconfig顾名思义就是系统配置,network-script就是系统配置下的网络脚本配置
网卡的配置如下,基本都是一致的:
HWADDR=00:0C:29:8D:24:73
TYPE=Ethernet
BOOTPROTO=static #启用静态IP地址,默认是dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
UUID=ecdbb721-58d9-457f-936b-f04b36a979d6
DEVICE=ens33
ONBOOT=yes #开机自动启用网络连接 //DHCP的话到此截止
IPADDR0=192.168.21.128 #设置固定IP地址
PREFIXO0=24 #设置子网掩码
GATEWAY0=192.168.21.2 #设置网关
DNS1=8.8.8.8 #设置主DNS
DNS2=8.8.4.4 #设置备DNS
:wq! #保存退出
service network restart #重启网络
ifconfig #查看网口IP是否正确
ping www.baidu.com #测试网络是否正常
-
Sellinux和防火墙的操作
很多的时候,sellinux都是需要关闭的。
防火墙
-
临时关闭systemctl stop firewalld
-
永久关闭systemctl disable firewalld
-
临时打开systemctl start firewalld
-
开机启动systemctl enable firewalld
-
检查状态systemctl status firewalld
Sellinux
-
临时关闭setenforce 0
-
临时打开setenforce 1
-
查看状态getenforce
-
永久关闭
——修改文件/etc/sellinux/config,修改为disable,重启生效
补充:
1.这个命令可以理解为_ Set enforce,这样 get enforce也好理解
2.set enforce 0代表permissive模式,1代表enforcing模式
-
系统关机或重启
这里主要讲两种,一种安全的,一种不安全但是快速的。
shutdown命令就是可以安全地将系统关机命令。
有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,不恰当地关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令﹐
-
login指令会被冻结﹐即新的用户不能再登录。
-
系统管理员会通知所有登录的用户系统将要关闭,shutdown后面可以接时间参数,在此期间用户可以自行关闭未保存的文档和程序
-
未在线的用户也不必担心,所有进程〔process〕都会收到系统所送达的信号〔signal〕。让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。
shutdown工作原理是发送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕
runlevel 6是用来重新激活〔reboot〕系统
而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown 参数说明:
选项 OPTIONS
-p poweroff,这个就是默认的参数
-a 使用 /etc/shutdown.allow 来验证身份。
-t sec 通知 init(8) 在转换到其它运行级别前,发送警告(warning)信号后延时(sec) 秒数后再发送关闭 (kill) 信号。
-k 并非真正关机,只向所有人显示警告信息。
-r 重启,类似于reboot
-h 停机,类似于halt
-n [DEPRECATED(不应再使用)]不调用init(8)程序进行关机操作,而由自己进行。不建议用户使用这种关机方式,它的结果一般也不是你希望的那样。
-f 重启时跳过磁盘检测。
-F 重启时强制磁盘检测。
-c 取消运行中的shutdown进程。不可能为此选项指定 time参数,但你可以在命令行输入一条解释消息来向所有用户说明。(一般的shutdown指令可以用按"+"号来进行中断)
另外一种,是不安全的,类似halt、reboot、init
这些都是不管其他用户怎样,直接硬件关闭,关机的。
20180428 初版,篇幅较长。
By
Lukas