Linux 的使用
目录与路径
绝对路径:从根目录开始,指定一个位置、文件
相对路径:从当前进程工作目录位置开始,指定一个位置、文件
文件系统
Linux文件目录的构成:
- /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
- /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
- /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的家目录(宿主目录)。
- /sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
- /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
- /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
- /usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。/usr/include:存放头文件。
- /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
文件分类:
普通文件 - 、
目录文件 d 、
管道文件 p 、
套接字文件 s、
软链接文件 l、软链接类似于快捷方式,硬链接通常用于做文件备份的作用
块设备文件 b、
字符设备文件 c。
通过file命令来查看文件的类型
文件权限:
来自于他人的例子:
文件管理命令
man
功能:按照手册的章节号进行搜索查找相关指令函数的用法
补充:查看 ls 的用法:man 1 ls ( 1:为数字“1”,代表第 1 个 section,标准命令 )
功能键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出man命令 |
h | 列出所有功能键 |
/word | 搜索word字符串 |
man 中各个 section 意义如下:
1.Standard commands(标准命令)
2.System calls(系统调用,如open,write)
3.Library functions(库函数,如printf,fopen)
4.Special devices(设备文件的说明,/dev下各种设备)
5.File formats(文件格式,如passwd)
6.Games and toys(游戏和娱乐)
7.Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
8.Administrative Commands(管理员命令,如ifconfig)
history
功能:当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
ls
功能:列出文件目录的信息
ls命令可以使用通配符匹配
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
通配符 | 含义 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te开头的文件 |
ls *html | 查找结尾为html的文件 |
? | 代表文件名中任意一个字符 |
ls ?.c | 只找第一个字符任意,后缀为.c的文件 |
ls a.? | 只找只有3个字符,前2字符为a.,最后一个字符任意的文件 |
ls [a-f]* | 找到从a到f范围内的的任意一个字符开头的文件 |
\ | 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。 |
ls *a | 查找文件名为*a的文件 |
>&>>
> 功能:重定向到指定文件,文件不存在自动创建,存在覆盖源文件
>> 功能:将内容追加到指定文件,文件不存在自动创建,存在不覆盖
more
功能:用于分页显示文件的内容,常用于长文件
补充:f或空格表示翻页
enter表示换行
q表示退出
tac
功能:倒着显示文件中的数据
less
功能:用于分页显示文件的内容,常用于长文件
补充:f或空格表示翻页
enter表示换行
q表示退出
pgup表示向上翻页
↑表示向上换行
/加上搜索的关键词可用于搜索,n表示下一个搜索到的文件
cat
功能:用来在命令行里面查看一个文件的内容
选项:-n 可以在浏览的时候加上文件的行号
tail
功能:查看日志的内容
补充:
tail -f .log 实时显示文件内容
sed
功能:Linux sed 命令是利用脚本来处理文本文件
补充:
-e script 以选项中指定的script来处理输入的文本文件。
-f<script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或–help 显示帮助。
-n或–quiet或–silent 仅显示script处理后的结果。
-V或–version 显示版本信息。
行为
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
|
功能:一个命令的输出可以通过管道做为另一个命令的输入
补充:
ls -alh | more
ls的输出作为more的输入;
ps aux | grep xxx
筛选系统中,所有正在运行的 xxx 进程。
cd
功能: change directory 进入某个目录
补充:
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。 |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 切换到当前目录 |
cd … | 切换到上级目录 |
clear
功能:为清除终端上的显示(类似于DOS的 3清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )
pwd
功能:使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数
mkdir
功能:通过mkdir命令可以创建一个新的目录,参数-p可递归创建目录。
rmdir(基本不用)
功能:可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
rm
功能:可通过rm删除文件或目录
补充:
参数 | 含义 |
---|---|
-i | 以进行交互式方式执行 |
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
ln
功能:建立链接文件
补充:Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录。
ln 源文件 链接文件
ln -s 源文件 链接文件
cp
功能:将给出的文件或目录复制到另一个文件或目录中
补充:
选项 | 含义 |
---|---|
-a | 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 |
-f | 覆盖已经存在的目标文件而不提示 |
-i | 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。 |
-v | 显示拷贝进度 |
mv
功能:使用mv命令来移动文件或目录,也可以给文件或目录重命名(rename)
补充:
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-i | 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件 |
-v | 显示移动进度 |
file
功能:确认文件具体类型
tar
功能:一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据
补充:
tar [参数] 打包文件名 文件
参数 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
gzip
功能:压缩文件
补充:
gzip [选项] 被压缩文件
选项 | 含义 |
---|---|
-d | 解压 |
-r | 压缩所有子目录 |
tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar zcvf 压缩包包名 文件1 文件2 …
-z 指定压缩包的格式为:file.tar.gz
解压用法: tar zxvf 压缩包包名
参数 含义
-z 指定压缩包的格式为:file.tar.gz
解压到指定目录:-C (大写字母“C”)
tar -xvf new.tar.gz -C ./test/
bzip2(基本不用)
功能:文件压缩解压
补充:
tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。
在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar cjvf 压缩包包名 文件…(tar jcvf bk.tar.bz2 *.c)
解压用法:tar xjvf 压缩包包名 (tar jxvf bk.tar.bz2)
zip
功能:文件压缩与解压
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
which
功能:查看命令位置
用户权限
whoami
功能:查看当前登录用户
补充:
cat /etc/passwd 查看当前系统的用户信息
exit
功能:退出登录用户
补充:
图形界面,退出当前终端
ssh远程登陆,退出登陆用户
切换后的登陆用户,退回到上一个登录用户
su
功能:切换用户
补充:
su - 切换到用户的主目录下
adduser、deluser
功能:添加和删除用户
补充:
adduser 新建用户
deluser 删除用户
addgroup、delgroup
功能:添加删除用户组
补充:
addgroup 新建用户组
delgroup 删除用户组
passwd
功能:设置用户密码
补充:
命令后面无需添加用户名
chown、chgrp
功能:修改文件的所有者、用户组
补充:
chown 用户名 文件或者目录
chgrp 用户组名 文件或目录
chmod
功能:修改文件权限
补充:
数字法 chmod 775 文件名
参数 | 数字 |
---|---|
r | 读取权限,数字代号为 “4” |
w | 写入权限,数字代号为 “2” |
x | 执行权限,数字代号为 “1” |
- | 不具任何权限,数字代号为 “0” |
字母法 chmod u+x 文件名
[ 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进入这个目录。 |
chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限
系统管理
ps
功能:查看进程信息
补充:
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
选项 | 含义 |
---|---|
-a | 显示终端上的所有进程,包括其他用户的进程 |
-u | 显示进程的详细状态 |
-x | 显示没有控制终端的进程 |
-w | 显示加宽,以便显示更多的信息 |
-r | 只显示正在运行的进程 |
kill
功能:终止进程
补充:
kill -signal pid
&、jobs、fg
用户可以将一个前台执行的程序调入后台执行,方法为:命令 &
如果程序已经在执行,ctrl+z可以将程序调入后台
jobs查看后台运行程序
fg编号(编号为通过jobs查看的编号),将后台运行程序调出到前台
reboot shutdown init
功能:重启或者关机当前操作系统
补充:
命令 | 含义 |
---|---|
reboot | 重启操作系统 |
shutdown -r now | 重启操作系统,给用户提示 |
shutdown -h now | 立刻关机 |
shutdown -h 20:21 | 指定时间点关机 |
shutdown -h +10 | 十分钟后关机 |
init 0 | 关机 |
init 6 | 重启 |
init 3 | 切换到字符界面 |
init 5 | 切换到图形界面 |
ifconfig
功能:查看或配置网卡信息
补充:
ifconfig 网络接口名称 [地址协议类型] [address] [参数]
ifconfig eth0 inet 192.168.10.254 netmask 255.255.255.0 up
参数 | 功能 |
---|---|
-a | 显示所有网络接口状态 |
inet [IP地址] | 设置IP地址 |
netmask [子网掩码] | 设置子网掩码 |
up | 启用网络接口 |
down | 关闭网络接口 |
ifconfig配置的网络参数在内存中,计算机重新启动之后就失效了,如果需要持久有效就需要修改网络接口的配置文件:
ubuntu修改/etc/NetworkManager/system-connections/Wired connection 1文件
[ipv4]
method=manual
addresses1=IP地址;24;默认网关;
ping
功能:测试网络的连通性
补充:
ping [参数] 远程主机IP地址
参数 | 功能 |
---|---|
-a | 每次相应时都发出声音警示 |
-A | 表示以实际往返相应时间为间隔,连续发送消息 |
-f | 连续不断发送消息,不管是否收到相应 |
-n | 只显示主机IP,不需要把IP解释成主机名 |
-c | 发送指定次数数据报信息后停止,ping -c 5 192.168.10.254 |
-i | 每次发送消息时间间隔,默认一秒,ping -i 2 192.168.10.254 |
-s | 分组数据大小,默认64字节 |
-w | 以秒为单位的超时值,一旦超时,就立即停止 |
查找与检索
find
功能:查找符合条件文件
补充:
find 目录位置 参数 条件
-name 按名字查
find ./ -name “for*.sh”
-type 按文件类型查走
find ./ -type f/d/l/s/c/p
-size 按文件大小查找
find ./ -size +3M-8M
-maxdepth 按层级查找
find ./-maxdepth 1 -name “dd.sh”
-exec 对结果执行某些命令
find ./-maxdepth 1 -name “dd.sh” -exec ls -l {};
-xagrs 需要结合管道,将搜索结果指定给某个命令使用
find ./ -type d | xargs ls -l
grep
功能:按文件内容搜索文件
grep -R/-r “待搜索的内容” 目录位置
补充:
先使用find命令查找文件, 然后使用grep命令查找哪些文件包含某个字符串
find . -name “*.c” | xargs grep -n “main”
其它
Linux终端清屏:ctrl+l
Linux终端撤销输入:ctrl+z
Linux终端清除输入:ctrl+u
date
功能:查看时间和日期
例如:将系统日期设定成2018年6月8日的命令
1、命令 : “date -s 06/08/2018”
将系统时间设定成下午10点46分03秒的命令
2、命令 : “date -s 10:46:03”
3、查看时区:date -R
4、查询系统当前日期:$ date +"%Y-%m-%d"
注意:加号要与date有空格,与%Y没有空格,要带双引号;还要注意大小写。大写Y表示年份,小写m表示月份,大写M则是分钟。小写d表示天。
5、查询系统当前时间:$ date +"%H-%M-%S"
6,查看文件时间(ls -l 或者 ll)
Linux 下查看文件时,ls –l 缺省是不显示秒的:
要显示秒(实际更精确),可以用 –full-time 参数:
参考资料
黑马课程
总结
本文用于记录Linux常用指令,后续使用过程继续补充,方便查询