目录
1. 命令解析器
1.1 概述
1.2 文件或目录颜色一般情况
1.3 命令前的横杠
2. Linux快捷键
2.1 命令和路径补齐
2.2 主键盘快捷键
2.2.1 历史命令切换
2.2.2 光标移动
2.2.3 删除字符
3. Linux 系统目录结构(树结构)
3.1 树状目录结构
3.2 对系统目录的解释
4. 用户目录
4.1 绝对路径
4.2 相对路径
4.3 jiang@ubuntu:~$
5. 文件和目录操作
5.1 查看目录
5.1.1 tree [目录]
5.1.2 ls -la [文件名/目录]
5.2 切换目录
5.2.1 cd + 目录路径
5.2.2 切换到当前用户家目录(/home/jiang)的三种方式
5.2.3 查看当前所在目录 pwd
5.3 创建目录 mkdir
5.3.1 创建单个空目录
5.3.2 创建嵌套目录
5.4 删除目录 rmdir / rm(建议使用)
5.4.1 删除空目录
5.4.2 删除非空目录(递归删除-r)
5.5 创建文件 touch
5.6 删除文件 rm
5.7 拷贝 cp
5.7.1 拷贝文件
5.7.2 拷贝目录
5.8 查看文件内容(5种方式)(了解)
5.8.1 cat + 文件名
5.8.2 more + 文件名
5.8.3 less + 文件名
5.8.4 head [-行数] 文件名
5.8.5 tail [-行数] 文件名
5.9 创建快捷方式 ln
5.9.1 软链接
5.9.2 硬链接
6. 文件和目录的属性(了解)
6.1 获取文本文件属性 wc
6.2 查看二进制文件 od
6.3 查看某个目录大小 du
6.4 查看磁盘使用情况 df
7. which
8. 文件权限, 用户, 用户组
8.1 查看当前登录用户 whoami
8.2 修改文件权限 chmod
8.2.1 文字设定法
8.2.2 数字设定法
8.3 改变文件或目录所有者和所属组 chown
8.4 改变文件或目录所属组 chgrp
9. 文件的查找和检索
9.1 按文件属性查找
9.1.1 文件名
9.1.2 文件大小
9.1.3 文件类型
9.2 按文件内容查找
10. 软件的安装和卸载(ubuntu下)
10.1 在线安装
10.2 deb包安装
10.3 源码安装
11. U盘的挂载和卸载
11.1 挂载 mount
11.2 卸载 umount
12. 压缩包管理
12.1 只能压缩文件
12.1.1 gzip -- .gz格式的压缩包
12.1.2 bzip2 -- .bz2格式的压缩包
12.2 可以压缩目录和文件
12.2.1 tar -- 不使用z/j参数 , 该命令只能对文件或目录打包
12.2.2 rar -- 必须手动安装该软件
12.2.3 zip
12.2.4 总结
13. 进程管理
13.1 查看当前在线用户的情况 who
13.2 查看整个系统内部运行的进程状况 ps | grep
13.3 终止进程 kill
13.3.1 查看信号编号
13.3.2 杀死进程
13.4 查看当前进程的环境变量 env
13.5 任务管理器 top
14. 网络管理
14.1 获取网络接口的配置信息 ifconfig
14.2 测试与目标主机是否联通 ping
14.3 查看服务器域名对应的IP地址 nslookup
15. ftp服务器搭建 -- vsftpd
15.1 服务器端
15.1.1 修改配置文件
15.1.2 重启服务
15.2 客户端(安装vsftpd时自带)
15.2.1 实名用户登录(登录需要密码--有安全隐患)
15.2.2 匿名用户登录
15.2.3 lftp客户端(更好用)访问ftp服务器
15.3 ftp小结
16. nfs服务器搭建
16.1 服务器端
16.2 客户端
17. ssh服务器
17.1 服务器端
17.2 客户端
18. scp命令
19. 用户管理
19.1 创建用户 useradd -s -g -d -m
19.2 创建用户组 groupadd
19.3 删除用户 userdel -r
19.4 切换用户 su
19.5 root用户 sudo
19.6 设置密码 passwd
19.7 退出登录用户 exit
19.8 查看用户是否存在及用户信息
20. 其他命令
20.1 翻页
20.2 清屏
20.3 创建终端
20.4 看手册
20.5 设置查看别名: alias
20.6 echo
21. 关机重启
21.1 关机 poweroff
21.2 重启 reboot
21.3 shutdown
文章内容说明:
1. 本文内容大部分出自对传智播客linux课程内容的总结和课堂笔记。
2. 本文部分命令使用加粗紫色(e.g. ls)编写,而没有在代码块中编写。
3. 本文还没有涉及到vim的使用、gcc编译器使用、makefile的使用等,会在学习完相应课程后补充。
4. 若有常见命令的详细介绍或linux系统的扩展学习的需要,可以点击此处下载PDF书籍(鸟哥私房菜-基础篇、Linux命令速查手册)。
5. 本文原文可参考我在语雀平台的原版笔记点击此处阅读
ls /
/bin
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv
该目录存放一些服务启动之后需要提取的数据。
/sys
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统种被创建。
/tmp
这个目录是用来存放一些临时文件的。
/usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/usr/bin
系统用户使用的应用程序。
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src
内核源代码默认的放置目录。
/var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc
上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin
这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var
这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc:上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin:这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
sudo apt-get insatll tree
tree #不加参数,查看当前目录
tree /home/jiang #加参数,查看指定目录
ls -a #可查看隐藏目录和文件(.aaa)
ls -l [文件名/目录] #可查看文件或目录属性
cd /home/jiang
cd ~
cd
pwd
mkdir 目录名
mkdir -p dir/dir1/dir2
rmdir 目录名
rm -r aa #-r递归删除目录,因为目录是树状结构
rm -ri aa #-i删除目录时提示是否删除
touch 文件名
rm [-i] 文件名 #-i提示是否删除
cp 源文件 目标文件
cp -r 源目录 目标目录 #涉及目录的操作---递归-r
ln -s 源文件/目录的路径 软链接名字
ln -s hello.c day.soft #只能在当前目录下使用
ln -s ~/hello.c day.soft #可在任意目录下使用
ln 源文件路径 硬链接名字
wc 文本文件名
od -t [c/d/f/u/o/x] 二进制文件名
du [-h]
df [-h]
which 命令
which ls
-> /bin/ls)whoami
chmod [who] [+|-|=] [mode] 文件名
chmod a=w temp
为所有人授予写权限,清除所有人读和执行权限chmod [-] [n][n][n] 文件名/目录名
chmod 765 a.out
chmod - 001 a.out
sudo chown zhangsan temp #sudo是暂时借用管理员权限
sudo chown Luffy:lisi temp
e.g. sudo chgrp ABC temp
find 查找的目录 -name "文件的名字"
find 查找目录 [-size +10k 或 -size 10k -size 20k]
find 查找目录 -type d/f/b/c/s/p/l
grep -r "查找的内容" 查找的路径
sudo apt-get install tree
-- 在线下载安装sudo apt-get remove tree
sudo apt-get update
-- 更新软件列表(软件的名字和下载地址,从官方服务器更新)sudo apt-get clean
sudo dpkg -i xxx.deb
sudo dpkg -r xxx
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
sudo make install
mount + 设备名 + 挂载目录
sudo fdisk -l
sudo umount /mnt
gzip 文件名
gunzip 压缩文件名
bzip2 [-k] 文件名
bunzip2 压缩文件名
tar zcvf 生成的压缩包的名字(xxx.tar.gz) 要压缩的文件或目录
tar jcvf 生成的压缩包的名字(xxx.tar.bz2) 要压缩的文件或目录
tar jxvf 压缩包的名字(解压到当前目录)
tar jxvf 压缩包名字 -C 压缩的目录 #注意此处-C,解压到指定目录
rar a 生成的压缩文件的名字(temp) 压缩的文件或目录
rar x 压缩文件名 [解压缩目录] #省略解压缩目录,解压到当前目录
zip 压缩包的名字 压缩的文件
zip -r 压缩包的名字 压缩的目录 #注意此处-r压缩目录
unzip 压缩包的名字 解压到当前文件夹
unzip 压缩包的名字 -d 解压目录 解压到指定目录 #注意此处-d用于指定解压缩目录
tar/rar/zip 参数 生成的压缩文件的名字 压缩的文件或目录 #压缩时候的语法
tar/rar/unzip 参数 压缩包的名字 参数(-C/d rar没有参数) 解压缩目录 #解压缩语法
ps aux
ps aux | grep xxx
kill -l
kill -SIGKILL(-9) 89899 (PID-进程标识号)
env | grep PATH
ping [参数] [主机名或IP地址]
nslookup 域名
作用: 文件的上传和下载
sudo vi /etc/vsftpd.conf
sudo service vsftpd restart
15.2.1.1 登录服务器
ftp serverIP
输入服务器用户名
输入服务器密码
15.2.1.2 文件的上传和下载
put 文件名
(在哪个目录下登录的ftp服务器,就只能上传相应目录下的文件)get 文件名
(在哪个目录下登录的ftp服务器,就只能将文件下载到相应目录下)15.2.1.3 退出登录
quit
bye
exit
cd /home/jiang
mkdir anonDir
sudo chown ftp anonDir
chmod 777 anonDir
sudo gedit(vi)/etc/vsftpd.conf
anon_root=/home/jiang/anonDir
sudo service vsftpd restart
ftp serverIP
用户名: anonymous
密码: 直接回车
sudo apt-get install lftp
lftp username@serverIP
[Enter/回车]输入服务器密码
lftp serverIP
[Enter/回车]login
put
上传文件mput
上传多个文件get
下载文件mget
下载多个文件mirror
下载整个目录及其子目录mirror -R
上传整个目录及其子目录lcd
lpwd
-- 本地(local)切换目录、查看本地当前路径作用:net file system -> 网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。可以理解为利用互联网共享的一个共享文件夹。
cd /home/jiang
mkdir share
sudo vi /etc/exports
/home/jiang/share
*
(ro,sync,no_root_squash)
sudo service nfs-kernel-server restart
mount + serverIP
:
共享目录名 挂载目录
sudo mount 192.168.0.100:/home/jiang/share/ /mnt
SSH -> Secure Shell
sudo atp-get install openssh-server
sudo aptitude show openssh-server
作用:比如服务器管理员通过ssh远程登录外地主机,进行维护
ssh 用户名@serverIP #确认连接的时候一定要写yes/no
logout
作用:跨越主机,在不同的主机之间进行拷贝,scp -> super copy
scp -r 目标用户名@目标主机IP地址:/目标文件的绝对路径 /保存到本机的绝对(相对)路径
#e.g. scp -r [email protected]:/home/jiang/music/ ./media
sudo adduser 用户名
sudo useradd -s /bin/bash -g JIANG -d /home/jiang -m jiang
sudo groupadd 组名
sudo deluser + 用户名
sudo userdel -r 用户名
su 用户名
sudo su
sudo 命令
sudo passwd 用户名
sudo passwd root
sudo passwd
exit
vi /etc/passwd
Shift + PageUp
-> 上翻页Shift + PageDown
-> 下翻页Ctrl + Alt + T (Ubuntu)
Ctrl + Shift + T (添加新标签页)
man man
-> 共九个章节
alias
alias ls
=> alias ls='ls --color=auto'alias pag='ps aux | grep'
echo 字符串
echo $PATH
echo $?
sudo poweroff
sudo reboot