1、 登录到linux系统上
1.超级管理员账号(一般不使用)
2.普通账号
登录方式:
mac(linux):ssh user@ip
windows:xshell/ putty
2、 用户相关功能(超级管理员)
命令:
1. 添加用户:
$ adduser 用户名
输入密码
创建用户的同时船创建了以下:
(1)创建了一个与用户名同名的组
(2)创建一个指定用户名账号的用户
(3)将用户添加到组中
(4)创建家目录 /home/用户名
(5)将用户基本配套复制到用户家目录中
默认文件目录:
用户信息文件:/etc/passwd
用户信息保密文件:/etc/shadow
用户组的信息:/etc/group
2. 查看保密文件:
$ sudo more /etc/shadow
普通用户的在sudoers中配置之后才能够使用sudo完成超级管理员所能做的事情。
3. 删除用户:
$ userdel -r 删除用户
4. 修改密码:
$ passwd 用户名 修改指定用户的密码
5.新增组:
$ groupadd 组名
6.删除组:
$ groupdel 组名
7.修改组信息:
$ groupmod [-g <群组识别码> <-o>] [ -n<新群组名称> ] [群组名称]
-g<群组识别码>:设置欲使用的群组识别码
-o:重复使用群组识别码
-n<新群组名称>:设置欲使用的群组名称
相关操作:
1.将licy组的名称换成weibo
$ groupmod -n webui licy
2.将terry放到weibo组
$ usermod -g 1003 terry
3、 切换账号
$ su - 用户名
如果当前用户是root,不需要输入密码
如果当前是普通用户,需要输入密码
licy@VM-0-9-ubuntu:/etc$ //Linux用户格式
其中:
licy
:当前用户
@
:分割符号
VM-0-9-ubuntu
:计算名(如果想要修改,直接修改/etc/hostname文件即可)
:
:分割符号
/etc
:当前所在路径
$
:分割符号
4、 linux目录结构
linux没有盘符概念
所有目录都位于根目录(/
)下
其中:
/home
:普通用户家目录
/root
:超级管理员的家目录
/etc
:核心配置目录
/opt
:第三方文件解压安装目录
/usr
:文件安装目录 (apt-get install)
普通用户只具备家目录中的更新(增加,修改,删除)权限
5、 路径
.
:当前
..
:上一级
/
:根
~
:家
相对路径:指定与根目录相关的目录或文件、以 .
或者..
开头的路径
例如:$ cd ./es5
绝对路径:指定与当前工作目录相关的文件、以为/
开头的路径
例如:$ cd /home/charles/es5
6、 文件系统操作
- 创建目录:mkdir
创建目录。创建目录时要保证当前用户具有创建目录的权限
$ mkdir 目录名称 [目录名称2]
$ mkdir app01 app02
$ mkdir -p app/a/b/c
默认情况下,mkdir命令创建目录时会把权限设置为rwx,rwx,r-x可以使用-m
自定义权限
可以使用-v
来显示mkdir命令所执行的操作的完整细节
- 创建文件:touch
创建一个空的文件或者更新文件最近修改时间
$ touch 文件名称
- 拷贝:cp
拷贝文件/目录到指定文件/目录中
$ cp a.txt dir1
$ cp -r dir1 dir2
- 移动或重命名:mv
移动文件到指定目录或重命名文件
$ mv a.txt dir1
$ mv dir1 dir2
当dir2存在,移动到dir2中;否则重命名为dir2
即将文件移动到不存在的目录下,即为目录/文件重命名
- 删除文件或目录:
删除文件或者删除非空目录
$ rm a.txt
$ rm -r dir1
$ rm -ir dir1
删除空目录:$ rmdir dir1
- 压缩打包:zip
$ zip all.zip *.txt
解压到当前目录下:$ unzip all.zip
解压到指定目录下:$ unzip all.zip -d exdir
压缩格式:gzip -z
、bzip2 -j
- 归档:tar
$ tar -cvf all.tar *.txt
归档并且压缩
$ tar -cvzf all.tar.gz *.txt
$ tar -cvjf all.tar.bz2 *.txt
- 解压:tar -xvf
$ tar -xvf all.tar.gz
- 创建快捷方式:ln
创建连接文档,连接文档分为两种类型,硬链接和软链接(符号链接)
硬链接:创建的链接与文件本身相同
$ ln a.txt a.txt.l (文件本身)
软连接:使用-s
创建软连接,创建的链接保存的是文件的路径
$ ln -s a.txt a.txt.s ( 路径)
硬链接就是同一个文件使用了多个别名,硬链接的inode号是相等的
软链接类似于windows中的快捷方式。
7、修改权限:chomd
1. 关键字
who:
u
:User or owner of the file(文件的用户或所有者)
g
:Group to which the file belongs(文件所属的组)
o
:Others outside owner and group(其他人)
a
:All of the above(所有人)
cp:
=
:Set permissions(设置权限)
-
:Remove access(删除访问权限)
+
:Give access(给予访问权限)
permission(s):
r
:Read(读)
w
:Write(写)
x
:Execute(执行)
2. 八进制
| 0 | 000 | --- |
| 1 | 001 | --x |
| 2 | 010 | -w- |
| 3 | 011 | -wx |
| 4 | 100 | r-- |
| 5 | 101 | r-x |
| 6 | 110 | rw- |
| 7 | 111 | rwx |
修改权限:$ chomd 651 a.txt
对于a.txt,拥有者具有读写权限,同组人具有读执行权限,其他人具有执行权限
8、管道应用:|
将“|”前一个命令的的输出作为“|”后一个命令的输入
$ ls -l /etc | more
以长格式查看etc下所有文件,使用more的方式来展示
$ ps -ef | grep java
找到系统中java相关进程
$ find ~ -name java | grep java
9、文本编辑器的应用:vi
(1)打开
直接打开vim
通过vim打开一个文件
(2)模式切换
启动vi
vi filename
:打开或新建文件
vi
:打开新文件,修改完文件后再保存
命令行模式
1)命令行->编辑
i
:在光标所在字符前插入
I
:在光标所在行行首插入
a
:在光标所在位置后插入
A
:在光标所在行行末插入
o
:在光标所在行下插入一空行
O
:在光标所在行上插入一空行
<Esc>
:退出插入状态
2)命令行->底行
:w
:存盘
:w newfile
:存成新文件
:wq
:存盘退出Vi(或ZZ,或:x)
:q!
:强行退出不存盘
:set nu
:显示行代码 (:set nonu)
:21
:光标停在指定行
21G
:光标停在指定行 (G 到文件尾,1G 到文件头)
/串
:从当前行往下查找
?串
:从当前行往上查找
n
:查找继续
:r file2
:在光标所在位置插入另一个文件
:1,$s/旧串/新串/g
:替换全文
:%s /旧串/新串/g
:替换全文
编辑模式【最下有insert】
底行模式【最下有: / 并且光标闪烁】
(3)命令行命令
yw
:拷贝词
yy
:拷贝行(或Y)
p
:当前行下粘贴
x
:删除一个字符
dw
:删除当前词
3dw
:删除三个词
dd
:删除当前行
5dd
:删除五行
r
:替换一个字符
cw
:替换一个单词
cc
:替换一行
C
:替换从光标至行尾
~
:改变大小写
J
:把当前行和下一行连起来
u
:废除刚才的编辑操作(undo)
(4)vim的配置
配置文件:~/.vimrc
第三方配置spf13
安装git
# apt install git
# git --version
安装spf13
$ curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh
10、基础命令
$ clear
:清理屏幕
$ cd
:更改目录
$ ls
:查看当前目录下的文件以及子目录
-a :所有
-l:长格式
-R:递归显示目录树
$ pwd
:打印当前所在目录
$ more
:预览
回车 下一行
空格 下一页
q 退出
$ tai
:预览后10行
$ head
:预览头10行
$ man
:命令
打开指定命令的命令手册
q 退出
>
:将>前的命令的输出作为输入导入到>后文件或命令中(会覆盖原来的命令)
>>
:将>> 前命令的输出作为输入导入到>后文件或命令中(追加到原来内容后)
11、sudo
- 身份切换 sudo
使用 root 的身份来运行命令,并非所有人都能够运行 sudo , 而是仅有规范到 /etc/sudoers 内的用户才能够运行 sudo 这个命令。其配置文件位于/etc/sudoers中。 - sudo的使用:
sudo 以超级管理员身份执行命令
sudo!! 以超级管理员身份执行上一条命令
12、进程相关
$ nohup java -jar homework.jar &
:将这个服务在后台运行
$ ps aux | grep java
:寻找java相关进程
$ kill -9 30469
:杀死进程号为30469的进程
$ sudo netstat -ap
:用超级管理员身份列出当前系统占据所有的端口以及相对应的进程编号(8099 - 31757)
$ ifconfig
:查看当前路由信息(ip)
处于同一局域网中的多个主机可以通信
$ sleep 100s &
:休眠100s
13、查找:find
根据指定模板查找文件,然后在匹配的文件上执行一个命令
$ find path expression [action]
path
:路径
expression
:表达式
$ find / -name perl //寻找根目录下所有名字叫perl的
14、过滤:grep
使用指定模式的字符串在一个文件中进行搜索并且打印所有包含该模式的行
$ grep [option(s)] string filename
-i 搜索过程中忽略大小写
-v 显示不匹配指定模式的行
$ grep root /etc/passwd //从/etc/passwd文件中筛选root
常用格式:
$ more /etc/passwd | grep root
15、查询正在运行的进程:ps
列出当前系统中正在运行的进程
/usr/bin/ps [-options]
-e
:列出准备就绪的或者正在运行的程序
-f
:显示程序的详细信息
$ ps aux | grep java //寻找Java相关进程
16、终止进程:kill
终止一个进程,通常用于终止不能使用正常方式终止的一个进程。
$ kill [-signal] process-id
kill -9 强制删除:
$ kill -9 12418 //杀死进城号为12418的进程
关闭所有进程:killall
用于关闭通过apt安装的所有进程
$ killall svnserve //关闭svnserve的所有进程
$ killall apache2 //关闭apache的所有进程