Ubuntu常用命令
author@jason_ql(lql0716)
http://blog.csdn.net/lql0716
1 常用命令
Ubuntu显示隐藏文件夹:
Ctrl+H
双系统,windows启动不了了,ubuntu可以启动,从ubuntu修复windows启动的方法,在终端里输入:
sudo update-grub
终端提示符:
# 表示超级用户,即管理员
$ 表示一般用户
- Linux系统文件夹:
/root 超级用户的目录
/tmp 临时目录
/sbin 命令保存目录(超级用户权限)
/proc 直接写入内存的
/sys
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
1.1 解压缩
- .gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName .tar.gz
解压:tar -zxvf FileName.tar.gz
压缩:tar -zcvf FileName.tar.gz DirName
- .bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName .tar.bz2
解压:tar -jxvf FileName.tar.bz2
压缩:tar -jcvf FileName.tar.bz2 DirName
- .bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知 .tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
- .Z
解压:uncompress FileName.Z
压缩:compress FileName .tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
- .tgz
解压:tar zxvf FileName.tgz
压缩:未知 .tar.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
- .zip
解压:unzip FileName.zip
格式:unzip 压缩文件
压缩:zip FileName.zip DirName
格式:zip 压缩文件名 文件
- .rar
解压:rar a FileName.rar
压缩:r ar e FileName.rar
1.2 目录文件操作
.deb
.deb文件,直接双击即可安装
终端命令安装:sudo dpkg -i lantern-installer-beta-64-bit.debpwd 查看当前路径
解压命令
tar -xvf 文件名
新建文件
在终端中进入要新建文件的目录下,使用以下命令:touch 文件名
delete
完整命令:sudo rm firle_name
rm [选项] 文件
-f, --force #强力删除,不要求确认
-i #每删除一个文件或进入一个子目录都要求确认
-I #在删除超过三个文件或者递归删除前要求确认
-r, -R #递归删除子目录
-d, --dir #删除空目录
-v, --verbose #显示删除结果
常用如下几个:
rm -d 目录名
#删除一个空目录
rmdir 目录名
#删除一个空目录
rm -r 目录名
#删除一个非空目录
rm 文件名
#删除文件
jobs
查看当前有多少在后台运行的命令.kill
法子1:通过jobs命令查看job号(假设为num),然后执行kill %num
法子2:通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid
前台进程的终止:Ctrl+c打开文件
在Ubuntu下,当需要打开其他格式文件时,比如pdf、jpg、mp3等格式文件,通常做法是进入到文件所在的目录,双击打开,很影响效率。事实上,可以通过命令xdg-open打开这些格式文件,甚至是网页,像打开文件一样简单。
举两个例子:
ctrl+alt+t打开终端
用户名@主机名:xdg-open la_isla_bonita.mp3
用户名@主机名:xdg-open http://www.baidu.com
xdg-open会选择默认的程序打开指定文件,跟双击打开效果一样。
常用
cd
#切换工作目录。cd -
#返回历史记录的上一个目录cd ~
#返回用户主目录cd ..
#返回当前目录的父目录ls
#显示目录(-l -d等参数),特别说明ls命令不支持管道命令。mkdir
#创建目录。mkdir -p test/test2
递归的创建目录,即二级目录rmdir
#删除目录(若目录下有文件或子目录,无法删除)。touch
#创建一个新文件或者修改文件的时间戳。rm
#删除文件或目录(删除目录一般会使用-rf参数)。cp
#拷贝文件,常用格式:cp /home/source.txt /home/tmp/[选项]
-r
复制目录
-p
连带文件属性复制
-d
若源文件是链接文件,则复制链接属性
-a
相当于-pdrmv [源文件或路径] [目标路径]
#移动文件或者文件重命名。echo
#打印信息。find
#查找文件(一般格式:find ./ -name src.cpp)。grep
#查找匹配字符串(一般格式:grep -nr “name” ./)。source
#将当前文件的修改同步到父shell中,文件一般为shell脚本。top
#查看当前系统进程的信息。cat
#查看文件内容,显示在当前终端,常用格式:cat filename.txtps
#查看系统中进程的信息。date
#显示或设置系统时间或日期。chmod
#设置文件的权限。chown
#设置文件的所有者、所属组等。clear
#清屏。reset
#重启终端的窗口。tar
#归档、解压缩。ifconfig
#查看网络设置。su
#切换用户。sudo
#以root身份来执行命令。man
#查看帮助手册。
链接命令
ln
- 格式:
ln -s [源文件] [目标文件]
-s 创建软链接
- 格式:
1.3 文件搜索
文件搜索命令:
locate 文件名
使用方法:
1、 updatedb //更新后台数据库
2、 /var/lib/mlocate //locate主要在该路径下快速搜索,只能按文件名搜索,速度快
3、 locate 文件名whereis与which
whereis [选项]
查找系统 命令所在的路径及帮助文档所在的位置
- 选项
-b
只查找可执行文件- 选项
-m
只查找帮助文件
which [命令]
搜索命令及别名
find
- 格式:
find [搜索范围] [搜索条件]
find /root -iname 文件名
不区分大小写搜索find /root -user root
安装所有者搜索find /root -nouser
查找没有所有者的文件find /var/log/ -mtime +10
-10
表示10天内修改的文件
10
表示10天当天修改的文件
+10
表示10天前修改的文件
atime
文件访问时间
ctime
改变文件属性
mtime
修改文件内容find . -size 25k
该命令中.
表示当前目录,该命令为查找文件大小为25k的文件
-25k
表示小于25k的文件
25k
表示等于25k的文件
+25k
表示大于25k的文件find . -inum 262422
查找i节点是262422的文件find /etc -size +20k -a -size -50k
查找/etc/路径下,大于20k并且小于50k的文件
-a
and 逻辑与,两个条件都满足
-o
or 逻辑或,两个条件满足一个即可find /etc -size +20k -a -size -50k -exec ls -lh{}\;
查找/etc/路径下,大于20k并且小于50k的文件,并显示详细信息注意:
避免大范围搜索,会非常耗费系统资源;
find是在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配- 通配符:
*
表示匹配任意内容
?
表示匹配任意一个字符
[]
表示匹配任意一个中括号内的字符
- 格式:
grep
- 格式:
grep [选项] 字符串 文件名
在文件中匹配符合条件的字符串 - 选项
-i
忽略大小写
-v
排除指定字符串
- 格式:
1.4 帮助命令
man 命令
获取指定命令的帮助
man ls
查看ls的帮助
man -f ls
相当于whatis ls
即man -f 命令
相当于whatis 命令
man -k 命令
查看所有相关命令的帮助命令 --help
获取命令选项的帮助info 命令
详细命令帮助
- 回车
进入子帮助页面(带有*号标记)
- u
进入上层页面
- n
进入下一个帮助小节
- p
进入上一个帮助小节
- q
退出
1.5 关机与重启命令
shutdown [选项] 时间
- 选项
-c
:取消前一个关机命令
-h
:关机
-r
:重启 - 示例:
shutdown -h now
现在关机
- 选项
halt
、poweroff
、init 0
这三个均为关机命令,一般不建议使用,最好用
shutdown
reboot
、init 6
这两个均为重启命令,一般不建议使用,最好用
shutdown
logout
退出登录命令
1.6 挂载命令
mount
查询系统中已经挂载的设备
mount -a
依据配置文件/etc/fstab的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
挂载命令格式
- 选项
-t
文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-o
特殊选项:可以指定挂载的额外选项
- 选项
1.6.1 挂载光盘
mkdir /mnt/cdrom/
建立挂载点
mount -t iso9660
挂载光盘
mount /dev/sr0 /mnt/cdrom/
umount 设备文件名或挂载点
- 卸载命令
- 例如:
umount /mnt/cdrom
fdisk -l
查看u盘设备文件名
mount -t vfat /dve/sdbl /mnt/usb/
注:Linux默认是不支持NTFS文件系统的
1.7 用户登录查看命令
w 用户名
(可以不加用户名)命令输出:
USER
登录的用户名
TTY
登陆终端
FROM
从哪个IP地址登陆
LOGIN@
登陆时间
IDLE
用户闲置时间
JCPU
指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
PCPU
是指当前进程所占用的时间
WHAT
当前正在运行的命令who 用户名
(可以不加用户名)last
last命令默认是读取/var/log/wtmp/文件数据
命令输出:
- 用户名
- 登录终端
- 登录IP
- 登陆时间
- 退出时间(在线时间)
lastlog
last命令默认是读取/var/log/lastlog/文件数据
命令输出:
- 用户名
- 登录终端
- 登录IP
- 最后一次登录时间
1.8 终端快捷键
Ctrl + r #实现快速检索使用过的历史命令。Ctrl+r中r是retrieve中r。
Ctrl + a #光标回到命令行首。 (a:ahead)
Ctrl + e #光标回到命令行尾。 (e:end)
Ctrl + b #光标向行首移动一个字符。 (b:backwards)
Ctrl + f #光标向行尾移动一个字符。 (f:forwards)
Ctrl + w #删除光标处到行首的字符。
Ctrl + k #删除光标处到行尾的字符。
Ctrl + u #删除整个命令行文本字符。
Ctrl + h #向行首删除一个字符。
Ctrl + d #向行尾删除一个字符。
Ctrl + y #粘贴Ctrl+u,Ctrl+k,Ctrl+w删除的文本。
Ctrl + p #上一个使用的历史命令,相当于方向向上的方向键。 (p:previous)
Ctrl + n #下一个使用的历史命令,相当于方向向下的方向键。(n:next )
Ctrl + t #交换光标所在字符和其前的字符。
Ctrl + i #相当于Tab键。
Ctrl + o #相当于Ctrl+m.
Ctrl + m #相当Enter键。
其他控制键:
Ctrl + s #使终端发呆,静止,可以使快速输出的终端屏幕停下来。
Ctrl + q #退出Ctrl+s引起的发呆。
Ctrl + z #使正在运行在终端的任务,运行于后台。 (可用fg恢复)
Ctrl + c #中断终端中正在执行的任务。
Ctrl + d #在空命令行的情况下可以退出终端。
Ctrl + [ #相当于Esc键。
Esc键 #连续按3次显示所有的支持的终端命令。
Tab键 #命令、文件名等自动补全功能。按两次tab键,显示所有文件名
Ctrl + l #清屏
在终端上访问网站和下载文件
Wget 的用法:
1、下载一个文件终端命令:
wget http://www.website-name.com/file
2、下载整个网站终端命令:
wget -r http://www.website-name.com
3、下载指定类型的文件(比如 PDF 和 PNG):
wget -r -A png,pdf http://www.website-name.com
1.9 Shell命令
1.9.1 概述
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
1.9.2 脚本执行方式
1.9.2.1 echo [选项] [输出内容]
- 选项
-e
支持反斜线控制的字符转换- 控制字符
\a
输出警告音
\b
退格键,也就是向左删除键
\n
换行符
\r
回车键
\t
制表符,也就是tab键
\v
垂直制表符
\0nnn
按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数
xhh
按照十六进制ASCII码表输出字符。其中hh是两位十六进制数echo -e "hell\bo"
删除左侧字符echo -e "h\te\tl\nl\to"
制表符与换行符echo -e "\x68\t\x65\t\x6c\t\x6f\t"
按照十六进制ASCII码也同样可以输出echo -e "\e[1;31m 佳人 \e[0m"
输出颜色
30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色
1.9.2.2 脚本 vi hello.sh
vi hello.sh
#!/bin/bash
#The first program 注释
echo -e "好了" #输出命令
1.9.2.3 脚本运行方式
- 赋予执行权限,直接执行
chmod 755 hello.sh
./hello.sh
- 通过Bash调用执行脚本
bash hello.sh
1.9.3 Bash的基本功能
1.9.3.1 命令别名与快捷键
alias
查看系统中所有的命令别名alias 别名='原命令'
设定命令别名vi ~/.bashrc
写入环境变量配置文件unalias 别名
删除别名- 命令生效顺序
第一顺位执行用绝对路径或相对路径执行的命令
第二顺位执行别名
第三顺位执行Bash的内部命令
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
1.9.3.2 历史命令
history [选项] [历史命令保存文件]
- 选项
-c
清空历史命令
-w
把缓存中的历史命令写入历史命令保存文件~/.bash_history- 历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改,命令
vim /etc/profile
- 历史命令的调用
1、使用上、下箭头调用以前的历史命令
2、使用!n
重复执行第n条历史命令
3、使用!!
重复执行上一条命令
4、使用!字串
重复执行最后一条以该字串开头的命令
1.9.3.3 输出重定向
- 标准输出重定向
命令 > 文件
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中
命令 >> 文件
以追加的方式,把命令的正确输出输出到指定的文件或设备当中- 标准错误输出重定向
错误命令 2>文件
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中(注意空格)
错误命令 2>>文件
以追加的方式,把命令的错误输出输出到指定的文件或设备中(注意空格)- 正确输出和错误输出同时保存
命令 > 文件 2>&1
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中(注意空格)
命令 >> 文件 2>&1
以追加的方式,把正确输出和错误输出都保存到同一个文件当中(注意空格)
命令 &>文件
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中(注意空格)
命令 &>>文件
以追加的方式,把正确输出和错误输出都保存到同一个文件当中(注意空格)
命令>>文件1 2>>文件2
把正确的输出追加到文件1中,把错误的输出追加到文件2中(注意空格)
1.9.3.4 输入重定向:
wc [选项] [文件名]
- 选项
-c
统计字节数
-w
统计单词数
-l
统计行数命令 < 文件名
把文件作为输入命令 << 标识符
1.9.3.5 多命令顺序执行
;
分号
格式:命令1 ; 命令2
多个命令顺序执行,命令之间没有任何逻辑联系&&
逻辑与
格式:命令1 && 命令2
当命令1正确执行,则命令2才会执行
当命令1执行不正确,则命令2不会执行||
逻辑或
格式:命令1 || 命令2
当命令1执行不正确,则命令2才会执行
当命令1正确执行,则命令2不会执行
1.9.3.6 管道符
命令1 | 命令2
命令1的正确输出作为命令2的操作对象- 如:
ls -l /etc | more
分批查看该路径的内容(more表示分批查看)
1.9.3.7 Shell中特殊符号
- 通配符
?
匹配一个任意字符*
匹配0个或任意多个任意字符,也就是可以匹配任何内容[]
匹配中括号中任意一个字符,例如:[abc]代表一定匹配一个字符或者是a,或者是b,或者是c[-]
匹配中括号中任意一个字符,代表一个范围。例如:[a-z]代表匹配一个小写字母[^]
逻辑非,表示匹配不是中括号内的一个字符。例如:[^0-9]代表匹配一个不是数字的字符- 其它符号
''
单引号。在单引号中所有的特殊符号,如$
和反引号都没有特殊含义。""
双引号。在双引号中特殊符号都没有特殊含义,但是$
,\
,反引号是例外,其分别拥有“调用变量的值”、“转义符”、“引用命令”的特殊含义。``
反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()
作用一样,不过推荐使用$()
,因为反引号非常容易看错。$()
和反引号作用一样,用来引用系统命令#
在shell脚本中,#开头的行代表注释$
用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值\
转义符,跟在\
之后的特殊符号将失去特殊含义,变为普通字符。如\$
将输出$
符号,而不是当做变量引用
1.10 Vim编辑器
1.10.1 vim概述
visual interface
目前vi升级为vim操作
vim支持多级撤销
vim可以跨平台运行
vim支持语法高亮
vim支持图形界面
1.10.2 vim编辑操作
- command mode - 命令模式
- insert mode - 输入模式
- last line mode -底行模式(尾行,末行)
vim abc #打开指定文件,如abc文件,如果文件不存在,则自动创建文件
#编辑完之后输入以下命令退出vim
Esc #按Esc退出键
:wq #再输入该命令即可退出vim
vim + abc #该命令表示打开文件之后,光标定位到最后一行
vim +3 abc #该命令表示打开文件之后,光标定位到第三行,即输入数字为几,就定位到第几行
vim +/xxx abc #该命令表示打开文件之后,光标定位到xxx第一次出现的这一行
vim aa bb cc #该命令表示一次性打开文件aa,bb,cc,如果文件不存在,则自动创建文件
- 常用命令
:w
保存文件
:q
退出文件
:!
:ls
列出打开的所有文件
:n
切换到打开的下一个文件
:N
切换到打开的上一个文件
:15
定位到指定行
/xxx
定位到xxx第一次出现的位置
?xxx
从光标位置向前搜索第一次出现xxx的位置
h
光标左移
j
光标下移
k
光标上移
l
光标右移
ctrl + f
向下翻页
ctrl + b
向上翻页
ctrl + d
向下翻半页
ctrl + u
向上翻半页
dd
删除光标所在的行
o
在光标所在的行的下方插入一行并切换到输入模式
1.11 磁盘管理
df [选项]
查看磁盘分区使用状况- 选项
-l
仅显示本地磁盘(默认)
-a
显示所有文件系统的磁盘使用情况,包含比如/proc/
-h
以1024进制计算最合适的单位显示磁盘容量
-H
以1000进制计算最合适的单位显示磁盘容量
-T
显示磁盘分区类型
-t
显示指定类型文件系统的磁盘分区
-x
不显示指定类型文件系统的磁盘分区
- 选项
du [选项] [文件夹或文件]
统计磁盘上文件的大小- 选项
-b
以byte为单位统计文件
-k
以KB为单位统计文件
-m
以MB为单位统计文件
-h
按照1024进制以最适合的单位统计文件
-H
按照1000进制以最适合的单位统计文件
-s
指定统计目标
- 选项
1.11.1 硬盘分区
1、主分区和扩展分区总数不能超过4个
2、扩展分区最多只能有一个
3、扩展分区不能直接存取数据
MBR分区
- 主分区不超过4个
- 单个分区容量最大2TB
GPT分区
- 主分区个数“几乎”没有限制
- 单个分区容量“几乎”没有限制
分区的格式化
mkfs
挂载分区
swap分区
1.12 用户与用户组
/etc/group
存储当前系统中所有用户组的信息Group : x : 123 : abc, def, xyz
分别表示组名称:组密码占位符:组编号:组中用户名列表
/etc/gshadow
存储当前系统中用户组的密码信息Group: * : : abc, def, xyz
分别表示组名称: 组密码:组管理者: 组中用户名列表
/etc/passwd
存储当前系统中所有用户的信息user : x : 123 : 456 : xxxxxxxx : /home/user : /bin/bash
分别表示用户名:密码占位符:用户编号:用户组编号:用户注释信息:用户主目录:shell类型
/etc/shadow
存储当前系统中所有用户的密码信息user: vf; /Zu8sdf... :::::
分别表示用户名: 密码 :::::
groupadd 用户组名称 #添加新的用户组
groupmod -n 用户组新名称 用户组原名称 #修改用户组的名称
groupmod -g 编号 用户组名称 #修改用户组的编号
groupdel 用户组名称 #删除用户组(需首先删除用户及其信息)
useradd -g 用户组名称 用户名 #添加用户到用户组
usermod -c 用户注释 用户名 #给用户添加注释
userdel 用户名 #删除用户
userdel -r 用户名 #删除用户及其信息
-----------------------------------------
passwd -l 用户名 #锁定用户及其信息
passwd -u 用户名 #解除用户的锁定
passwd -d 用户名 #清除用户的密码
gpasswd -a 用户名 新用户组 #将用户同时添加到新用户组,即属于多个组
gpasswd -d 用户名 新用户组 #将用户从新用组(附属组)移除
-----------------------------------------
id 用户名 #显示指定用户信息,包括用户编号、用户名;主要组编号及名称,附属组列表
groups 用户名 #显示用户所在的所有组
chfn 用户名 #设置用户资料,依次输入用户资料
finger 用户名 #显示用户详细资料
延伸阅读
机器学习、深度学习、计算机视觉、自然语言处理及应用案例——干货分享(持续更新……)
http://blog.csdn.net/lql0716/article/details/70479493Ubuntu终端几个常用的快捷键
http://blog.csdn.net/lql0716/article/details/54565304Ubuntu-可以编辑的PDF阅读器Master
http://blog.csdn.net/lql0716/article/details/54972384Meld Diff 差异查看器(代码对比软件)(Ubuntu)
http://blog.csdn.net/lql0716/article/details/65447133