Joker Won's Stack

Joker Won

热衷于各种前端技术,目前偏爱钻研前端工程化。希望能找个大佬带带我 >_<。

Linux

基于Ubuntu 18.04.1 LTS 64位

文件目录

Linux 文件和目录的特点:

  • 名称最长可以有 256 个字符
  • . 开头的文件为隐藏文件,使用 ls 时需要添加 -a 参数才能显示
  • . 代表当前目录
  • .. 代表上级目录

主要目录速查表

  • / : 根目录,一般情况下只存放目录

  • bin/usr/bin : 可执行二进制文件的目录,如常用的 ls, tar, mv

  • boot : 放置 Linux 系统启动时用到的一些文件,如 Linux 的内核文件: /boot/vmlinuz,系统引导管理器: /boot/grub

  • dev : 放置 Linux 系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 $ mount /dev/cdrom mnt

  • etc : 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有:

    • /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
2
3
4
5
6
7
8
9
10
11
12
13
14
#立即关机
shutdown now

# 立即重启
shutdown -r now

# 指定时间关机
shutdown 20:25

# 十分钟后关机
shutdown +10

# 取消上次关机计划
shutdown -c

ifconfig

查看或配置网卡信息

1
2
# 查看ip信息
ifconfig | grep inet

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
2
3
4
5
6
# 把本地当前目录下的 test.js 文件上传到远程家目录下的 Desktop/test.js
# 注意:`:` 后的路径如果不是绝对路径,则以远程用户的家目录为参照路径
scp -P 22 test.js user@remote:Desktop/test.js

# 把远程家目录下的 test.js 文件复制到本地当前目录下的 test.js
scp user@remote:Desktop/test.js test.js

用户权限

基本概念

  • 可以指定每一个用户针对不同文件或目录的不同权限
  • 为了方便用户管理,从而产生组的概念。具有相同用户权限的用户可以归属到一个用户组中。
权限 英文 数字代号
r read 4(100)
w write 2(10)
x excute 1(1)

ls -l 的扩展

ls -l 可以查看当前路径下文件(目录)的详细信息,从左到右依次是

  • 权限,第 1 个字符如果是 d 则表示目录
  • 硬链接数,即有多少种方式可以访问到目标文件(目录)
  • 拥有者,家目录下的文件(目录)的拥有者通常是当前用户
  • 大小
  • 修改时间
  • 名称
1
2
3
4
5
# 第0位: 目标是否是 目录
# 1-3位: 拥有者权限
# 4-6位: 组权限
# 7-9位: 其他用户权限
d rwx rwx r-x

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> 设置用户密码 如果是普通用户,用该命令可以修改自己的密码