Ubuntu 系统常用命令行
本教程教学内容参考于https://www.youtube.com/watch?v=oxuRxtrO2Ag&t=1564s
z
官方地址:https://github.com/rupa/z
安装参考:https://linuxtoy.org/archives/z.html
-
z 是一个相当实用的 cd 命令增强脚本,目前支持 bash 和 zsh。使用 z,我们能够在 Linux 命令行实现更加快速的导航。
-
如塔米狗项目:我们常会启动 api,sso 项目,那么我们都会通过
cd /projects/tamigos/api和cd /projects/tamigos/sso往复的执行进入目录,用了 z 之后,只需要z api和z sso即可
开发人员屏保
安装如下:
sudo apt-get install cmatrixcmatrix# 执行命令
添加用户
sudo adduser tanmer
-> 第一次提示输入当前用户密码
-> 一路回车确认即可
-> 最后提示输入创建用户的密码
ls 查看目录下面的文件或文件夹
描述:查看目录下面的文件和文件夹
参数:
-a查看隐藏文件(以'.'开头)-l查看每个文件详细信息-la拥有上述两个作用-h查看每个文件详细信息(包含文件或目录大小的"单位")
命令:
ubuntu@10-8-163-116:~$ ls -l
total 4
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 10 00:03 Course
drwxrwxr-x 分为三部分d rwx rwx rwx
- 第一部分:类型
- 第二部分:拥有者的访问权限
- 第三部分:用户组的访问权限
- 第四部分:其他成员的访问权限
一组权限有3个字母,代表3位二进制数所在对应位的标识,分别表示:
r: 可读, 对应值等于4w: 可写, 对应值等于2x: 可执, 对应值等于1
有 rwx 对应3位二进制位 111 = 7
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 10 00:03 Course 每一列的含义为:
第一列-->权限第二列-->incode第三列-->所属用户第三列-->所属用户组第三列-->文件大小第三列-->修改时间第三列-->文件或文件名
备注:
- 文件名前加
.表示它是隐藏文件,ls -l是不会显示的。- 通常情况下,Linux 程序中的单字母参数可以合并到一起使用。如
ls -l -a可以简写为ls -la
cd 切换目录
描述:用于切换当前工作目录至目标目录
cd / # 切换到更目录
cd ~ # 切换到当前用户目录,ubuntu 用户通常是 /home/ubuntu 目录
cd ~usename # 切换到 /home/username 目录
cd . # 切换到当前目录,无实际效果
cd .. # 切换到上个目录
cd - # 切换到上次进入的目录
备注:
- 用于目录切换效率
pushd压栈popd出栈
file 查看文件的信息
描述:查看文件编码类型及相关属性
命令:
file 2、Ubuntu\ 系统常用命令行.md
-> 2、Ubuntu 系统常用命令行.md: UTF-8 Unicode text
locate 模糊查找文件
描述:查找含有相关字符的文件,存到缓存中,每天更新只做一次更新
命令:
locate cal
备注:
sudo updatedb强制更新数据库,以便显示最新创建的文件内容。
which 查看程序的绝对路径
描述:准确查找程序安装的位置(绝对路径)
$ which cal
/usr/bin/cal
history 查看历史命令
描述:查看在终端输入的历史记录
history
备注:
!1000打印历史记录中该行数的命令语句
grep 过滤内容
描述:过滤内容
history | grep ls
whatis 查看命令的描述信息
描述:显示某个命令的描述信息
$ whatis cal
cal (1) - displays a calendar and the date of Easter
whereis 查看指定命令的相关位置想信息
描述:当你不知道某个命令的位置时可以使用 whereis 命令
命令:
$ whereis cal
cal: /usr/bin/cal /usr/share/man/man1/cal.1.gz
apropos
- 在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标准输出
$ apropos time
__ppc_get_timebase (3) - get the current value of the Time Base Register on Power architecture and its frequency.
__ppc_get_timebase_freq (3) - get the current value of the Time Base Register on Power architecture and its frequency.
...
...
vtimes (3) - get resource usage
xfs_rtcp (8) - XFS realtime copy command
zdump (8) - timezone dumper
zic (8) - timezone compiler
man 查看使用手册
- manual,查看程序的帮助手册,可以查看 Linux 中的指令帮助、配置文件帮助和编程帮助等信息
man curl
cal 显示日历
描述:用于显示当前日历,或者指定日期的日历
$ cal
February 2019
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
wget
描述:非交互式网络下载器
wget https://avatars1.githubusercontent.com/u/24770072?s=40&v=4 -O avter.png
- 参数
-O avter.png表示下载文件另存为 avter.png
mkdir
描述:目录创建
参数:
-p创建深目录
命令:
mkdir file1 file2 # 创建多个目录
mkdir -p path/path1/path2 #创建深目录
touch
描述:先访问文件 如果不存在就创建
-f强制创建
命令:
touch file1 file2 # 创建多个目录
cp
描述: 拷贝文件
参数:
-a该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于 dpR 选项的组合。-d拷贝时保留链接。-f删除已经存在的目标文件而不提示。-i和 f 选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答 y 时目标文件将被覆盖,是交互式拷贝。-p此时 cp 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。-r若给出的源文件是一目录文件,此时 cp 将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。-l不作拷贝,只是链接文件。
命令:
cp file1 file2 #拷贝文件
cp -r path1 path2 #将path1目录中的所有文件及其子目录拷贝到目录path2中。
cp file1 file2 path1 #把file1 file2 拷贝到path1中
mv
描述: 移动或重命名文件
命令:
mv file1 file2 #重命名文件
mv Junk1/file* . #把Junk1下的 与file匹配的文件 移动到当前目录
mv file1 file2 path1 #把file1 file2 移动到path1中
rm
描述: 删除文件
参数:
-r删除目录-f强制删除文件
命令:
rm file1 #删除文件
rm -r path1 #删除目录
rmdir
描述: 删除空删除空文件夹文件
命令:
rmdir file #在有文件(隐藏文件和空文件)时不会删除
cat
描述: 组合文件并输出到屏幕
命令:
cat a b > c #合并a,b文件到c文件中
cat file1 #打印文件
cat >> file2 #向file2中追加空内容 一个大于符号时 覆盖file2 的内容
more(用于读取小的文件)
描述:可以用翻页的形式展示一个文件,读出文件全部内容
键盘操作:
回车--> 向下走一行空格--> 翻页
备注:
/keywords支持搜索
less(用于读取大的文件)
描述:可以用翻页的形式展示一个文件,不会把文件读完,根据键盘操作依次加载内容
备注:
/keywords支持搜索
tail
描述:查看文件
参数:
-n后接显示行数
命令:
tail -n 1 file1 #打印文件最后一行 -f(跟踪) -n x (最后 x 行) 默认 10 行
head
描述:查看文件
head -n 1 file1 打印文件开始一行 -n x(开始 x 行) 默认 10 行
tee
描述:读取标准输入的数据,并将其内容输出成文件
命令:
ping www.baidu.com | tee baidu.log
vi
描述:文件编辑
命令: vi file_name
- vi 编辑器操作:
o插入光标所在的下一行O插入光标所在的上一行yy复制当前行内容p粘贴复制的内容dd删除当前行内容shift+g移动到文件末尾i开始输入内容/输入内容回车搜索
备注:使用 nano file_name 打开文件,不熟悉 vim 者使用,其中,^代表的是ctrl
sudo
描述: 获得管理员权限
命令:
sudo -s #进入root权限
sudo -u tanmer - #选择tanmer角色并进入/home/tanmer/
sudo -E #当前的环境变量赋给管理员
su
描述: 切换到某某用户模式
命令:
su - tanmer #进入tanmer的home目录
查看服务器用户信息
users查看所有用户who当前登录系统中的用户whoami查看当前用户env在环境信息中查看用户SSH_TTY=/dev/pts/11 指的是当前用户的编号w当前登录系统中的用户id查看账号信息(用户组)
whois
描述:因特网域名和网络号码目录服务
命令:
whois tanmer.com
ps
描述:进程查看
ps -aux可以看到所有运行的程序 与 grep 连用筛选ps -a显示现行终端机下的所有程序(包括其他用户的程序)ps -u以用户为主的排序显示(username)ps -x显示所有程序(包括所有终端机下的)
chmod
描述:修改文件或目录权限
命令:
chmod 755 file # 修改file的权限为 rwx-wx-wx (r=4 w=2 x=1)
chmod [u | g | o][- | + ][r | w | x] file1.txt # 每某个组添加(或删除)权限
watch
描述:实时监测
参数:
-nwatch 缺省每 2 秒运行一下程序,可以指定间隔的时间。-d会高亮显示变化的区域。-t会关闭 watch 命令在顶部的时间间隔,命令,当前时间的输出。
free
描述:系统内存的使用量
参数:
-k or -m or -gMem 行中数值的单位
screen
描述:使命令在退出终端时继续执行
命令:
screen -list #查看已开窗口
screen -dr xxx # 先退出再进入xxx窗口
kill
描述:终止程序
参数:
-9强制终止-u指定用户
killall
描述:批量终止,所有进行
命令:
killall -9 -u <ubuntu>终止所有 ubuntu 用户进程
netstat
描述: 显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接
参数:
-ntlp每个字母函数如下:n端口号用数字显示t协议类型l正在监听的端口p端口是由哪一个程序运行的
命令:
netstat -ntlp
lynx
描述:在 bash 中查看网页内容,服务器调试网页,
命令:
sudo apt-get install lynx #下载lynx
wget "http://www.baidu.com" -O 'baidu.html' - lynx baidu.com
ctrl + l 与 clear
描述:清屏
ln
描述:建立链接(软链接和硬链接)
硬链接:
参数:
- 第一个参数 --> 原路径
- 第二个参数 -->目标路径
备注:
- 实际中不采用硬链接做法
命令:
ln file1 file2
软链接:
参数:
-s软链接
备注:
- 软链接两种链接不同目录下的文件:
ln -s 绝对路径 目标路径 先对目标路径找到绝对路径下的文件ln -s ../qq.log tanmer.log qq.log 相对 tanmer.log 的路径
apt-cache
apt-cache search <安装包>
描述:查找安装包信息
apt-cache policy <安装包>
描述:查看安装包版本信息
lsb_release -a
描述:查看系统版本
备注:Codename: 不同版本的代号
sed
描述:文件内容修改
命令:
sed -i 's/xx/yy/' filename #xx 被替换的内容 yy 被替换为 ///分隔符可替换(!之类的字符)
env
描述: 查看当前用户的环境信息
临时设置环境变量:
export LC_ALL="en_US.UTF-8" #解决乱码问题
export EDITOR=vi #改变 Git 默认用 vi 编辑器
curl ifconfig.me
描述: 服务器所在的 IP 地址
sshfs
描述:挂载远程文件
-
ubuntu 安装
sudo apt-get install sshfs mkdir ~/droplet sshfs -o allow_other,defer_permissions ubuntu@xxxx:/home/ubuntu ~/droplet -
Mac 中进入 https://osxfuse.github.io/ 中下载:
- FUSE for macOS 3.8.3
- SSHFS 2.5.0
-
取消挂载
umount file_name # 需要关闭占用文件夹的程序
tree
描述: 以树形的形式列出当前目录的文件和文件夹
参数:
-L N:查看当前第 N 级的目录结构
命令:
tree -L 1 # 显示第一级的目录结构
.
├── css
├── images
├── index.html
├── js
└── scss
4 directories, 1 file