1>查看当前用户:whoami
whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
例如:
> whoami
2>查看登录用户:who
who命令用于查看当前所有登录系统的用户信息。
常用选项:
选项 | 含义 |
---|---|
-m或am I | 只显示运行who命令的用户名、登录终端和登录时间 |
-q或–count | 只显示用户的登录账号和登录用户的数量 |
-u或–heading | 显示列标题 |
例如:
> who
3>退出登录账户: exit
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。
4>添加用户账号:useradd
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令的使用格式如下: useradd [参数] 新建用户账号
参数 | 含义 |
---|---|
-d | 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录 |
-m | 自动建立目录 |
-g | 指定组名称 |
相关说明:
- Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
- 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
- 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
- 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
-
命令 | 含义 |
---|---|
useradd -d /home/abc abc -m | 创建abc用户,如果/home/abc目录不存在,就自动创建这个目录,同时用户属于abc组 |
useradd -d /home/a a -g test -m | 创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组 |
cat /etc/passwd | 查看系统当前用户名 |
例如:
#添加一个python用户,并且创建其家目录
> sudo useradd python -m -d /home/python
5>设置用户密码:passwd
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
#给python用户设置密码
>sudo passwd python
6>删除用户:userdel
命令 | 含义 |
---|---|
userdel abc(用户名) | 删除abc用户,但不会自动删除用户的主目录 |
userdel -r abc(用户名) | 删除用户,同时删除用户的主目录 |
例如:
#删除python用户以及其用户主目录
>userdel -r python
7>切换用户:su
可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。
命令 | 含义 |
---|---|
su | 切换到root用户 |
su root | 切换到root用户 |
su - | 切换到root用户,同时切换目录到/root |
su - root | 切换到root用户,同时切换目录到/root |
su 普通用户 | 切换到普通用户 |
su - 普通用户 | 切换到普通用户,同时切换普通用户所在的目录 |
Ubuntu下切换到root的简单命令:
#切换到root用户
> sudo -s
8>查看有哪些用户组
方法一:
>cat /etc/group
方法二:
>groupmod +三次tab键
9>添加、删除组账号:groupadd、groupdel
groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
#添加组号
>sudo groupadd hehe
>sudo groupdel hehe
10>修改用户所在组:usermod
使用方法:usermod -g 用户组 用户名
#将用户python2修改到python组
> usermod -g python python2
#查看信息
>cat /etc/group | grep python
11>查看用户在哪些组
#给用户丽丽添加一个python组
> usermod -a -G python lili
#查看用户所在组
> groups lili
12>为创建的普通用户添加sudo权限
新创建的用户,默认不能sudo,需要进行以下操作
>sudo usermod -a -G adm 用户名
#给普通用户添加sudo权限
>sudo usermod -a -G sudo 用户名
13>usermod -g 与 -G的区别
-g
用来制定这个用户默认的用户组
-G
一般配合’-a’来完成向其它组添加
14>修改文件权限:chmod
chmod 修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] | 含义 |
---|---|
u | user 表示该文件的所有者 |
g | group 表示与该文件的所有者属于同一组( group )者,即用户组 |
o | other 表示其他以外的人 |
a | all 表示这三者皆是 |
[ ±= ] | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
rwx | 含义 |
---|---|
r | read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 |
w | write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 |
x | excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 |
例如
> touch test.txt
>ls -lh
>chmod u+x test.txt
>ls -lh
如果需要同时进行设定拥有者、同组者以及其他人的权限,参考如下:
>chmod u=rw,g=x,o=r test.txt
>chmod u=,g=,o= test.txt
数字法:“rwx” 这些权限也可以用数字来代替**
字母 | 说明 |
---|---|
r | 读取权限,数字代号为 “4” |
w | 写入权限,数字代号为 “2” |
x | 执行权限,数字代号为 “1” |
- | 不具任何权限,数字代号为 “0” |
如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename
chmod 751 file:
- 文件所有者:读、写、执行权限
- 同组用户:读、执行的权限
- 其它用户:执行的权限
> chmod 777 test.txt
注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
15> 修改文件所有者:chown
> sudo chown python test.txt
16>修改文件所属组:chgrp
> sudo chgrp python test.txt
二、Linux命令-系统管理
1>查看当前日历:cal
cal命令用于查看当前日历,-y显示整年日历:
2>显示或设置时间:date
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。
显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’):
format格式 | 含义 |
---|---|
%Y,%y | 年 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
> date "+%Y/%m/%d"
3>查看进程信息:ps
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
选项 | 含义 |
---|---|
-a | 显示终端上的所有进程,包括其他用户的进程 |
-u | 显示进程的详细状态 |
-x | 显示没有控制终端的进程 |
-w | 显示加宽,以便显示更多的信息 |
-r | 只显示正在运行的进程 |
例如:
> ps -aux
4>动态显示进程:top
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
按键 | 含义 |
---|---|
M | 根据内存使用量来排序 |
P | 根据CPU占有率来排序 |
T | 根据进程运行时间的长短来排序 |
U | 可以根据后面输入的用户名来筛选进程 |
K | 可以根据后面输入的PID来杀死进程。 |
q | 退出 |
h | 获得帮助 |
5>终止进程:kill
kill命令指定进程号的进程,需要配合 ps 使用。
使用格式:
kill [-signal] pid
信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
kill 9133 :9133 为应用程序所对应的进程号
注意:有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束:
6>关机重启:reboot、shutdown、init
命令 | 含义 |
---|---|
reboot | 重新启动操作系统 |
shutdown –r now | 重新启动操作系统,shutdown会给别的用户提示 |
shutdown -h now | 立刻关机,其中now相当于时间为0的状态 |
shutdown -h 20:25 | 系统在今天的20:25 会关机 |
shutdown -h +10 | 系统再过十分钟后自动关机 |
init 0 | 关机 |
init 6 | 重启 |
7>检测磁盘空间:df
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
选项 | 含义 |
---|---|
-a | 显示所有文件系统的磁盘使用情况 |
-m | 以1024字节为单位显示 |
-t | 显示各指定文件系统的磁盘空间使用情况 |
-T | 显示文件系统 |
8>检测目录所占磁盘空间:du
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下: du [选项] 目录或文件名
选项 | 含义 |
---|---|
-a | 递归显示指定目录中各文件和子目录中文件占用的数据块 |
-s | 显示指定文件或目录占用的数据块 |
-b | 以字节为单位显示磁盘占用情况 |
-l | 计算所有文件大小,对硬链接文件计算多次 |
-h 人性化显示
9>查看或配置网卡信息:ifconfig
如果,我们只是敲:ifconfig,它会显示所有网卡的信息:
>ifconfig
#修改ens33的ip
>sudo ifconfig ens33 192.168.1.108
10>测试远程主机连通性:ping
>ping www.biadu.com
>ping 192.168.1.1
三、gedit编辑器
gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适。
>gedit 1.txt
四、编辑器之神-vim
vi简介
vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。 vi没有菜单,只有命令,且命令繁多。
Vi有三种基本工作模式:
1. 命令模式
2. 文本输入模式
3. 末行模式。
命令行模式
任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
文本输入模式
在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。
末行模式
末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:
:sp newfile
则分出一个窗口编辑newfile文件。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
vim基础操作
vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富
进入插入模式:
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行,插入行首
O: 向上新开一行,插入行首
进入命令模式:
ESC:从插入模式或末行模式进入命令模式
移动光标:
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到中间行
L: 光标移动到屏幕最后一行行首
G: 移动到指定行,行号 -G
w: 向后一次移动一个字
b: 向前一次移动一个字
{: 按段移动,上移
}: 按段移动,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光标移动文件开头
G: 光标移动到文件末尾
删除命令:
x: 删除光标后一个字符,相当于 Del
X: 删除光标前一个字符,相当于 Backspace
dd: 删除光标所在行,n dd 删除指定的行数 D: 删除光标后本行所有内容,包含光标所在字符
d0: 删除光标前本行所有内容,不包含光标所在字符
dw: 删除光标开始位置的字,包含光标所在字符
撤销命令:
u: 一步一步撤销
Ctr-r: 反撤销
重复命令:
.: 重复上一次操作的命令
文本行移动:
>>: 文本行右移
<<: 文本行左移
复制粘贴:
yy: 复制当前行,n yy 复制 n 行
p: 在光标所在位置向下新开辟一行,粘贴
可视模式:
v: 按字符移动,选中文本
V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动
替换操作:
r: 替换当前字符
R: 替换当前行光标后的字符
查找命令:
/: str查找
n: 下一个
N:上一个
替换命令:
把abc全部替换成123
末行模式下,将文件中全部的abc替换成123
:%s/abc/123/g
末行模式下,将第一行至第10行之间的abc替换成123
:1, 10s/abc/123/g
vim里执行 shell 下命令:
末行模式里输入!,后面跟命令