Linux
基于Ubuntu 18.04.1 LTS 64位
文件目录
Linux 文件和目录的特点:
- 名称最长可以有 256 个字符
- 以
.开头的文件为隐藏文件,使用ls时需要添加-a参数才能显示 .代表当前目录..代表上级目录
主要目录速查表
/: 根目录,一般情况下只存放目录bin、/usr/bin: 可执行二进制文件的目录,如常用的ls,tar,mv等boot: 放置 Linux 系统启动时用到的一些文件,如 Linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grubdev: 放置 Linux 系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱$ mount /dev/cdrom mntetc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有:/etc/inittab/etc/fstab/etc/init.d/etc/X11/etc/sysconfig/etc/xinetd.d
/home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下~: 表示当前用户的家目录~edu: 表示用户edu的家目录
/lib、/usr/lib、/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助/lost+fount: 系统异常产生错误时,会将一些遗失的片段放置于此目录下/mnt:/media: 光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也可以选择任意位置进行挂载/opt: 给主机额外安装软件所摆放目录/proc: 此目录的数据都在内存中,如系统核心、外部设备、网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有/proc/cpuinfo,/proc/interrupts,/proc/dma,/proc/ioports,/proc/net/*/root: 系统管理员root的家目录
本地命令
终端命令的格式
command [-option] [parameter]
说明:
command: 命令名option: 选项,可选parameter: 参数,可选, 可以是零个、一个或者多个
常用操作
ls (list)
查看当前文件夹下的内容
-a: 显示指定目录下所有子目录与文件,包括隐藏文件-l: 以列表方式显示文件的详细信息-h: 配合-l可以人性化地显示文件大小
tree
以树状图列出文件目录结构
-d: 只显示目录
pwd (print wrok directory)
查看当前所在文件夹
clear
清屏
rm(remove)
功能说明:删除文件或目录。
语 法:rm [-dfirv][–help][–version] [文件或目录…]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参 数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
rm -rf /log/access 删除 /log/access目录以及其下所有文件和子文件目录
mkdir(make directories)
功能说明:建立目录
语 法:mkdir [-p][–help][–version][-m <目录属性>] [目录名称]
补充说明:mkdir可建立目录并同时设置目录的权限。
参 数:
-m<目录属性>或–mode<目录属性> 建立目录时同时设置目录的权限。
-p或–parents 可以递归地创建目录mkdir -p a/b/c/d
touch
功能说明:创建/改变文件或目录时间。
语 法:touch [-acfm][-d <日期时间>][-r <参考文件或目 录>][-t <日期时间>] [–help] [–version][文件或目录…] 或 touch [-acfm][–help][–version][日期时 间][文件或目录…]
补充说明:使用touch指令可更改文件或目录的日期时间,包括存取时间和更改时间。
参 数:
-a或–time=atime或–time=access或–time=use 只更改存取时间。
-c或–no-create 不建立任何文件。
-d<时间日期> 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m或–time=mtime或–time=modify 只更改变动时间。
-r<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同。
-t<日期时间> 使用指定的日期时间,而非现在的时间。touch test.txt (注:Linux下没有文件后缀名区分文件类型之说,系统文件类型只有可执行文件和不可执行文件)
cp(copy)
功能说明:复制文件
命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [option] source1 source2 source3 … directory
参数说明:
-a: 是指archive的意思,也说是指复制所有的目录
-d: 若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f: 强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i: 若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
-l: 建立硬连接(hard link)的连接文件,而非复制文件本身
-p: 与文件的属性一起复制,而非使用默认属性
-r: 递归复制,用于目录的复制操作
-s: 复制成符号连接文件(symbolic link),即“快捷方式”文件
-u: 若目标文件比源文件旧,更新目标文件
cp direc1/file1 direc2/file2
mv(move)
功能说明:移动文件
命令格式:mv [-fiu] source destination
参数说明:
-f: force,强制直接移动而不询问
-i: 若目标文件(destination)已经存在,就会询问是否覆盖
-u: 若目标文件已经存在,且源文件比较新,才会更新
cat(concatenate)
查看文件内容。一次显示所有内容,适合查看内容较少的文本文件
-b: 对输出的非空行进行编号-n: 对输出的所有行进行编号
more
分屏显示文件内容,每次只显示一页内容,适合查看内容较多的文本文件
- space 显示下一屏
- Enter 一次滚动手册页的一行
- b : 回滚一屏
- f : 前进一屏
- q : 退出
- /word : 搜索文件内容
grep
对指定文件进行文本搜索
-n: 显示匹配行及行号-v: 显示不包含匹配文本的所有行(反向搜索)-i: 忽略大小写
参数
^a: 行首,搜寻以 a 开头的行ds$: 行为,搜寻以 ds 结尾的行
重定向
将命令执行结果重定向到一个文件中,将本应该显示在终端的内容输出到指定文件中
>: 表示输出,会覆盖文件原有的内容>>: 表示追加,会将内容追加到已有文件的末尾
管道 |
将一个命令的输出通过管道作为另一个命令的输入
eg. ls -lh | more
ls -lh | grep key
管理进程
ps -ef | grep *** 查看进程信息
kill -9 PID 强制停止指定进程号的进程
df(disk free)
显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
-a: 全部文件系统列表-h,--human-readable: 使用人类可读的格式-H: 等于-h,但是计算式,1K=1000,而不是1K=1024
du(disk usage)
用于显示目录或文件的大小。
-s,--summarize: 仅显示总计-h,--human-readable: 使用人类可读的格式-H: 等于-h,但是计算式,1K=1000,而不是1K=1024
远程管理
shutdown
关机重启,不指定选项和参数时,表示 1分钟后关机
-r: 重启-c: 取消上次的shutdown计划
1 | 立即关机 |
ifconfig
查看或配置网卡信息
1 | 查看ip信息 |
ping
测试网络连接
mac 下可以使用 nc
* ssh
1 | ssh [-p port] user@remote |
user: 远程机器用户名remote: 远程机器地址port: SSH Server 监听的端口。默认为 22
提示
- 使用
exit退出当前用户的登录
scp (secure copy)
远程拷贝文件
-r: 若给出的源文件是目录文件,则将递归复制该目录下所有字目录和文件,目标文件必须为一个目录名-P: 若远程 SSH 服务器的端口不是 22,需要使用大写字母-P选项指定端口
1 | # 把本地当前目录下的 test.js 文件上传到远程家目录下的 Desktop/test.js |
用户权限
基本概念
- 可以指定每一个用户针对不同文件或目录的不同权限
- 为了方便用户管理,从而产生组的概念。具有相同用户权限的用户可以归属到一个用户组中。
| 权限 | 英文 | 数字代号 |
|---|---|---|
| r | read | 4(100) |
| w | write | 2(10) |
| x | excute | 1(1) |
对 ls -l 的扩展
ls -l 可以查看当前路径下文件(目录)的详细信息,从左到右依次是
- 权限,第 1 个字符如果是
d则表示目录 - 硬链接数,即有多少种方式可以访问到目标文件(目录)
- 拥有者,家目录下的文件(目录)的拥有者通常是当前用户
- 组
- 大小
- 修改时间
- 名称
1 | # 第0位: 目标是否是 目录 |
chmod
修改 用户/组 对 文件/目录 的权限
1 | chmod +/-rwx 文件/目录 |
sudo
su,即 substitute user,表示使用另一个用户的身份sudo用于以其他身份来执行命令,预设的身份为 root
超级用户
- root 账号通常用于系统的维护和管理,对操作系统的所有资源拥有所有访问权限
- 不推荐直接使用 root 账号直接登录系统
- 在系统安装过程中,系统会自动创建一个用户账号,这个默认的用户被称为标准用户
组管理
| 命令 | 作用 |
|---|---|
groupadd <name> |
添加组 |
groupdel <name> |
删除组 |
cat /etc/group |
确认组信息 |
chgrp -R <name> <file/directory> |
修改文件/目录的所属组 |
用户管理
| 命令 | 作用 | 说明 |
|---|---|---|
useradd -m [-g <group_name>] <username> |
添加新用户 | - -m 自动建立用户家目录- -g 指定用户组,否则会建立一个和用户名相同的组 |
passwd <password> |
设置用户密码 | 如果是普通用户,用该命令可以修改自己的密码 |