Linux常用命令

2018-08-06  本文已影响0人  xiaohan_zhang

远程登录

ssh -p 50022 my@127.0.0.1
-p 后面是端口
my 是服务器用户名
127.0.0.1 是服务器 ip

文件和目录

用户目录
位于/home/user,称之为用户工作目录或家目录,表示方式:

/home/user
~

  1. 绝对路径:
    从/目录开始描述的路径为绝对路径,表示从 根目录/家目录 开始的具体目录位置。如:

/home
/usr

  1. 相对路径
    从当前位置开始描述的路径为相对路径,表示相对 当前目录 所在的目录位置。如:

../../
abc/def

用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

  1. 读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  2. 写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  3. 可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。


常用基本命令

自动补全:
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令。
history:
当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来。
clear: 清除终端屏幕。
history -c : 清除历史命令命令

  1. help
    一般是linux命令自带的帮助信息
    如:ls --help
  2. man(manual)
    man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明。
    该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
    如:man ls ; man 2 printf

man设置了如下的功能键:

功能键 功能
空格键 显示手册页的下一屏
Enter键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出man命令
h 列出所有功能键
/word 搜索word字符串
一、文件和目录命令
命令 含义
cd ~ 切换到当前用户的主目录(/home/用户目录)
cd .. 进入当前目录的上一级目录
cd - 可进入上次所在的目录
选项 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小

注:Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。
多个选项可以放到一起写,没有前后顺序。如:ls -lh

常用通配符


选项 含义
-i 以进行交互式方式执行
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除文件夹时必须加此参数
二、拷贝和移动命令
选项 含义
-d 只显示目录
选项 含义
-a 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。
-f 已经存在的目标文件而不提示
-i 交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r 若源文件是目录,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
-v 显示拷贝进度
选项 含义
-i 误覆盖文件前提示
-v 显示移动进度
三、文件内容命令

将test1.txt和test2.txt中的内容添加到t.txt中
cat test1.txt test2.txt > t.txt

选项 含义
-b 对非空输出行编号
-n 对输出的所有行编号
操作建 功能
空格键 可以显示下一页
回车键 向下滚动一行
q键 退出显示
/word 搜索word字符串

格式:
grep [-选项] '搜索内容串' 文件名

选项 含义
-n 显示匹配行和行号
-v 显示不包含匹配文本的所有行
-i 忽略大小写
四、其它命令
选项 含义
-c 统计字节数
-l 统计行数
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
user:~ user$ echo hello
hello

如:ls -lh | more

常用的管道命令:
more: 分屏显示内容
grep: 在命令执行结果的基础上查询指定的文本

统计某个目录中,文件及目录个数:ls | wc -l

五、远程管理常用命令

格式:shutdown 选项 时间

选项 含义
-r 重新启动

不指定选项和参数,默认表示1分钟之后关闭电脑。
远程维护服务器时,最好不要关闭系统,而应该重新启动系统。

常用命令:
$ shutdown -r now   立即重新启动
$ shutdown now     立即关机
$ shutdown 20:25  20:25关机
$ shutdown +10     10分钟后自动关机
$ shutdown -c     取消之前的关机计划
$ reboot         立即重新启动
$ sync         把内存数据同步到磁盘

注:在Linux中,想要终止一个终端程序的执行,绝大多数都可以使用 Ctrl + C。

格式:
ssh [-p port] user@remote

user: 在远程主机上的用户名,如果不指定的话,默认为当前用户。
remote: 远程主机的地址,可以是IP/域名,或者别名。
port: 是SSH server监听的端口,如果不指定,就是默认值22。
注:
使用 exit 退出当前用户的登录。

# 把本地当前目录下的t1.txt复制到远程家目录下的Desktop/t1.txt:
$ scp -P port t1.txt user@remote:Desktop/t1.txt
# 注::后面的路径如果不是绝对路径,则以用户家目录作为参照路径

# 把远程家目录下的Desktop/t1.txt复制到本地当前目录下:
$ scp -P port user@remote:Desktop/t1.txt t1.txt 

# 把本地当前目录下的test文件夹复制到远程家目录下的Desktop
$ scp -P port -r test user@remote:Desktop
  1. 免密码登录
    步骤:
    1)配置公钥
    执行$ ssh-keygen即可生成SSH钥匙,一路回车即可。
    2)上传公钥到服务器
    执行$ ssh-copy-id -p port user@remote 可以让远程服务器记住我们的公钥

  2. 配置别名
    每次都输入$ ssh -p port user@remote很麻烦,配置别名,可以使用譬如:ssh mac代替上面一大串
    在~/.ssh/config中追加以下内容:

Host mac(别名)
 HostName 远程服务器ip地址
 User userName(远程服务器用户名)
 Port 22(远程服务器端口)

保存之后,即可用ssh mac登录了。

用户权限相关命令

一、用户和权限的基本概念
权限 英文 缩写 数字代号
read r 4
write w 2
执行 execute x 1
不具任何权限 - 0

权限:第一个字符如果是d,表示目录
硬链接数:就是有多少种方式可以访问到当前目录/文件,通常文件的硬链接数为1,目录的硬连接数取决于这个目录包含几个子目录(如果包含两个子目录,就是4)
拥有者:家目录下文件/目录的拥有者通常都是当前用户

大小
时间
名称

目录 拥有者权限 组权限 其他用户权限
文件权限示例 - r w - r w - r - -
目录权限示例 d r w x r w x r - x
-rwxr-xr-x@ 1 user  staff      201  8 16 16:11 hello.py
drwxr-xr-x  6 user  staff      192  8 17 11:40 linux
u/g/o/a 含义
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其他以外的人
a all 表示这三者皆是
[+-=] 含义
+ 增加权限
- 撤销权限
= 设定权限
二、组管理
命令 作用
groupadd 组名 添加组
groupdel 组名 删除组
cat /etc/group 确认组信息
chgrp -R 组名 文件\目录名 递归修改文件\目录的所属组

注:创建组/删除组 的终端命令都需要通过sudo执行。

三、用户管理
参数 含义
-d 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录
-m 自动建立目录
-g 指定组名称, 如果不指定组名,那么系统会自动创建一个和用户名一样的组名

注:创建用户、删除用户、修改其他用户密码的终端命令,需要通过sudo执行。

命令 含义
userdel abc(用户名) 删除abc用户,但不会自动删除用户的主目录
userdel -r abc(用户名) 删除用户,同时删除用户的主目录
$ which ls
# 输出: /bin/ls
命令 作用
chown 修改 文件/目录 拥有者
chgrp 修改 文件/目录 所属组
chmod 修改 文件/目录 权限
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的所属组
chgrp -R 组名 文件名|目录名
# 递归修改文件|目录权限
chmod -R 755 文件名|目录名
四、系统信息相关命令
命令 作用
cal 查看当前月日历
cal -y 显示当前年整年日历
cal -Y 从当月开始 一年日历
cal -y 2020 2020年日历
date 显示或设置时间
date +%F 等价于 date "%Y-%m-%d" 输出格式2020-08-20
date "+%F %T" 等价于"+%Y-%m-%d %H:%M:%S" 输出格式2020-08-20 09:34:36
date -d "-1 day" "+%Y-%m-%d %H:%M:%S" 获取1天前时间
date -d "+1 year" "+%Y-%m-%d %H:%M:%S" 获取1年后时间
命令 作用
df -h disk free 显示磁盘剩余空间
du -h [目录名] disk usage 显示目录下的文件大小
du -sh 查看目录的真实大小

-s 只显示汇总大小
-h 以较高可读性的形式显示

参数 含义
-h 以人性化的形式显示文件大小

查看进程信息:ps

process status查看进程的详细状况, 默认只会显示当前用户通过终端启动的应用程序。

选项 含义
e 列出全部进程 相当于a
a 显示终端上的所有进程,包括其他用户的进程
f 显示全部的列(显示全字段)
u 显示进程的详细状态
x 显示没有控制终端的进程

ps -ef


列的含义:
UID: 该进程执行的用户id
PID: 进程的id
PPID: 该进程的父级进程id,如果一个程序的父级进程id找不到,该进程称为僵尸进程
C: cpu占用率 形式是百分数
STIME: start time,该进程启动时间
TTY: 终端设备,发起该进程的设备识别符号,?表示不是由终端设备发起
TIME: 进程执行时间
CMD: 进程名称或对应路径

动态显示进程:top

动态显示运行中的进程 并排序
top命令能够在运行后,在指定的时间间隔更新显示信息。

在top命令执行后,可以按下按键得到对显示的结果进行排序:

按键 含义
M 根据内存使用量来排序
P 根据CPU占有率来排序
T 根据进程运行时间的长短来排序
q 退出

列的含义:
PID: 进程的id
USER: 该进程对应的用户
PR:优先级
VIRT: 虚拟内存
RES: 常驻内存
SHR: 共享内存
一个进程实际使用内存 = 常驻内存(RES)- 共享内存(SHR)
S: 表示进程的状态(S表示睡眠,R表示运行)
%cpu: cpu的占用百分比
%MEM: 内存的占用百分比
TIME+: 执行的时间
COMMAND: 进程的名称或者路径

终止进程

  1. kill命令指定进程号的进程,需要配合 ps 使用。
    语法: kill [-signal] pid
    kill [-9] 进程代 终止指定代号的进程,-9表示强行终止
  2. killall
    语法:killall 进程名称

注:使用kill命令时,最好只终止当前用户开启的进程,而不要终止root身份开启的进程,否则可能造成系统崩溃。

五、其他命令

语法:service 服务名 start/stop/restart

service httpd start 启动Apache服务

使用格式:
ln 源文件 链接文件
ln -s 源文件 链接文件

如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

  1. 打包/解包 tar
    格式: tar [参数] 打包文件名 文件
    tar命令很特殊,其参数前面可以使用“-”,也可以不使用
参数 作用
-c 生成档案文件,创建打包文件
-x 解开档案文件
-v 列出归档解档的详细过程,显示进度
-f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
#打包文件
$ tar -cvf 打包文件.tar 被打包的文件/路径(多个文件用空格分隔)
#解包文件
$ tar -xvf 打包文件.tar

tar这个命令并没有压缩的功能,它只是一个打包的命令,但是

  1. 压缩/解压 gzip
    tar与gzip命令结合使用实现文件打包、压缩。
    tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
    格式:gzip [选项] 被压缩文件
选项 作用
-d 解压
-r 压缩所有子目录

在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...

# 压缩文件
$ tar -zcvf 压缩文件.tar.gz 被压缩文件
# 解压缩文件
$ tar -zxvf 压缩文件.tar.gz
# 解压缩到指定路径
$ tar -zxvf 压缩文件.tar.gz -C 目标路径
  1. 压缩/解压 bzip2
    tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。其扩展名一般用xxxx.tar.bz2
    压缩用法:tar -jcvf 压缩包包名 文件...
    解压用法:tar -jxvf 压缩包包名
  2. 压缩/解压 zip、unzip
    通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
    压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
    解压文件:unzip -d 解压后目录文件 压缩文件
# 安装软件
$ sudo apt install 软件包
# 卸载软件
$ sudo apt remove 软件包
# 更新已安装的包
$ sudo apt ungrade 
快捷键
上一篇下一篇

猜你喜欢

热点阅读