Linux命令
基础命令
cat
:查看文本文件内容
ls
: 查看目录内容
pwd
: 输出当前所在的位置
cd
: 切换路径的操作
mkdir
: 创建目录
touch
: 创建文本文件
hostname
:查看主机名
ifconfig
:查看IP地址
Ctrl + c
:结束正在运行的命令
sudo apt-get install openssh-server
: 用于实现远程管理的软件
lscpu
: 查看CPU信息
nameserver
: DNS服务器地址
bc
: 计算器
date
: 显示日期和时间
date +%F
: 显示年-月-日
date +%Y
: 显示年
-
Linux命令行完整格式
命令字 选项 参数
- 命令字:指定操作
- 选项:功能不同,决定执行后的结果不同
- 参数:命令作用的对象
命令以及选项
ls
ls -l:以长格式显示,显示详细信息
ls -h:结合-l选项以长格式显示,显示易读的容量单位
ls -A:显示目录所有内容,包括隐藏数据
ls -a:小写的a会匹配出 . .. 在正则匹配中会出错
ls -d:显示目录本身的详细属性,结合-l选项
cp
cp 格式: cp 选项 源数据 目标路径
-r:递归,目录本身以及目录下所有
- 两个参数以上,永远将最后一个参数作为目标,其余所有的参数均作为源
tarena@aid:/$ sudo cp -r /etc/shadow /etc/lsb-release /opt/
# 源 源 目标
-
.
:代表当前路径 经常与cp连用,将数据复制到当前目录下
tarena@aid:/$ sudo cp /etc/passwd .
- 复制时,可以重新命名目标路径下的名称
tarena@aid:/$ sudo cp /etc/lsb-release /opt/ubuntu
# 复制后文件重命名为ubuntu
tarena@aid:/$ sudo cp -r /boot/ /opt/abc
# 复制后目录重命名为abc
- 面试题:两次复制的不同:
tarena@aid:/$ sudo cp -r /boot/ /test/abc
# 复制/boot目录到/test目录下重新命名为abc
tarena@aid:/$ sudo cp -r /boot/ /test/abc
# 复制/boot目录到/test/abc目录下
mv
mv 格式: mv # 源数据 目标路径
tarena@aid:/$ sudo mv /opt/a.txt /opt/stu/
- 重命名:路径不变的移动
tarena@aid:/$ sudo mv /opt/stu/ /opt/1903
# 将stu重命名为1903
grep
grep: 可以从文本文件内容中,过滤包含指定字符串的行
tarena@aid:/$ grep root /etc/passwd # 包含root的行
tarena@aid:/$ grep ^root /etc/passwd # 必须要以root开头
tarena@aid:/$ grep bash$ /etc/passwd # 必须要以bash结尾
find
find: 在指定路径下查找符合条件的数据
-name:按照名字去查找,支持通配符
-type:按照类型去查找,d(目录) f(文本文件)
-size:按照大小去查找
find格式: find 路径 条件
tarena@aid:/$ sudo find /etc/ -name "passwd"
tarena@aid:/$ sudo find /etc/ -name "*tab"
tarena@aid:/$ sudo find /root/ -type f #查找是文件
tarena@aid:/$ sudo find /boot/ -type d #查找是目录
tarena@aid:/$ sudo find /boot/ -size +10M #查找大于10M
tarena@aid:/$ sudo find /boot/ -size -10M #查找小于10M
cat
cat -n:显示行号
head tail
-x:x为数字,指行数
head -5:显示文本前5行
tail -5:显示文本后5行
tail -f:动态看后n行
rm
rm -r:递归,目录本身以及目录下所有
rm -f:强制删除
mkdir
mkdir -p:连同父目录一同创建
route
route -n: # 查看网关地址 *mac用法不一样
wc
wc -l: # 统计文本行数
du
du -sh: # 统计目录总共的占用空间的大小
/proc : 不占用硬盘的空间,反应内存数据的目录
mount
挂载点(访问点):访问设备内容的入口,在Linux都为一个目录
挂载: mount 设备路径 挂载点目录
sudo mount /dev/sda1 /mypart/
由挂载点(访问点)作为入口,进行访问设备内容
df
df -h: # 显示所有正在挂载使用设备的使用情况
ping
ping -c2 # ping次数,2次
ping -i1 # ping间隔时间,1秒
ping -W1 # ping延时,1秒ping不通直接返回
usermod
usermod # 用来修改用户帐号的各项设定
-c<备注> # 修改用户帐号的备注文字。
-d<登入目录> # 修改用户登入时的目录。
-e<有效期限> # 修改帐号的有效期限。
-f<缓冲天数> # 修改在密码过期后多少天即关闭该帐号。
-g<群组> # 修改用户所属的群组。
-G<群组> # 修改用户所属的附加群组。
-l<帐号名称> # 修改用户帐号名称。
-L # 锁定用户密码,使密码无效。
-s<shell> # 修改用户登入后所使用的shell。
-u<uid> # 修改用户ID。
-U # 解除密码锁定。linuxso.com linux安全网
命令别名
alias
tarena@aid:/$ alias hn='hostname' # 定义别名
tarena@aid:/$ unalias hn # 删除别名
tarena@aid:/$ alias # 查看当前系统所有生效的别名
常见通配符使用
* ? [] {}
/etc/:大多数配置文件所在的目录
*****:任意多个字符
?:单个字符
[]:匹配连续范围,只匹配一位
{}:匹配多种不同的情况
tarena@aid:/$ ls /etc/*tab
tarena@aid:/$ ls /etc/*.conf
tarena@aid:/$ ls /etc/r*.conf
tarena@aid:/$ ls /dev/tty*
tarena@aid:/$ ls /dev/tty?
tarena@aid:/$ ls /dev/tty??
tarena@aid:/$ ls /dev/tty???
tarena@aid:/$ ls /dev/tty[0-9] # 只个位
tarena@aid:/$ ls /dev/tty1[0-9] # 十位需要手动补全,然后匹配个位
tarena@aid:/$ ls /dev/tty{1,3,5,7,9}
tarena@aid:/$ ls /dev/tty{1[0-9],20} # 匹配10到20
命令行技巧
Tab
- Tab补全:命令字 选项 路径
重定向命令的输出 > >>
- 重定向命令的输出: 将前面命令的输出,写入到文本文件中
>:覆盖重定向
tarena@aid:/$ hostname > /home/tarena/ls.txt
>>:追加重定向
tarena@aid:/$ hostname >> /home/tarena/ls.txt # 追加到文件末尾
tarena@aid:/$ echo 123456 >> /home/tarena/ls.txt # 123456追加到文件末尾
管道操作
- 管道操作 | : 将前面命令的输出,专递给后面命令,作为后面命令的参数
tarena@tedu:~$ head -12 /etc/passwd | tail -5 | cat -n
# 显示passwd文件的8-12行且显示行号(从1开始编号)
tarena@tedu:~$ cat -n /etc/passwd | head -12 | tail -5
# 显示passwd文件的8-12行且显示行号(从8开始编号)
tarena@tedu:~$ echo 3*8 | bc
# 非交互式计算
快捷键
- Ctrl + l:清空整个屏幕
- Ctrl + c:废弃当前编辑的命令行(结束正在运行的命令)
- Esc + . 或 Alt + . :粘贴上一个命令的参数
VI&VIM
- 命令模式
- i 键:在当前位置插入(Esc键回到命令模式)
- o键:新起一行插入(Esc键回到命令模式)
- :键 ----》末行模式(Esc键回到命令模式)
- 光标的跳转:
行首:^或home
行尾:$或end
全文的首行:gg 或 1G
全文的最后一行:G
全文的12行:12G - 复制粘贴删除
yy:复制光标所在的当前行 2yy复制两行内容
p :粘贴
dd:删除光标所在的当前行 3dd删除三行内容
u :撤销
/bin: 全文查找bin 按n向下跳转匹配 按N向上跳转匹配
- 插入模式(输入模式)
- 末行模式
- :wq # 保存并退出
- :w # 保存
- :q! # 强制不保存退出
- :set nu # 开启行号功能
- :set ai # 开启自动缩进功能
sudo vim /home/tarena/haha.txt
# 没有文件会自动新建,目录必须有,不会新建
压缩包tar与zip
-
压缩与归档
归档:将众多的数据,归档整理成一个文件
压缩:采用压缩算法,计算数据占用空间大小
-
Linux平台的压缩格式:
gzip---->.gz
bzip2---->.bz2
xz----->.xz -
制作tar
格式:tar 选项 /路径/压缩包的名字(多个路径) 被压缩的源数据(只有最后一个) -c:创建归档 -x:释放归档 -f:指定归档文件名称,必须在所有选项的最后 -z、-j、-J:调用 .gz、.bz2、.xz格式的工具进行处理 -t:显示归档中的文件清单 -C:指定释放路径 解包: 格式:tar 选项 /路径/tar包的名字 -C 释放的位置 tar -xf /opt/abc.tar.bz2 -C /aid01
e.g. tar -zcf /opt/aid.tar.gz /boot/ /etc/lsb-release tar -jcf /opt/abc.tar.bz2 /boot/ /etc/lsb-release tar -Jcf /opt/file.tar.xz /boot/ /etc/lsb-release tar -tf /opt/abc.tar.bz2 # 查看压缩包内容
-
zip跨平台的压缩格式(windows与Linux)
格式:zip -r /路径/压缩包名字 被压缩的源数据 sudo zip -r /opt/stu.zip /boot/ /etc/lsb-release 解压: unzip 被压缩的源数据 -d /路径/解压文件名字 unzip /opt/stu.zip -d /aid03/
用户与组
-
用户与组
UID
系统用户:1.登录操作系统 2.权限不同GID
组:方便管理用户组分类:基本组 附加组
一个用户必须至少属于 一个组
创建用户时,系统自动创建同名组,将用户加入组
e.g. useradd aid01 创建同名组: aid01组 将aid01用户加入到aid01组 自行创建组: 财务组 销售组 帅哥组 美女组 将aid01用户加入 总结: aid01用户一共属于5各组:aid01组 财务组 销售组 帅哥组 美女组 aid01组为aid01用户的基本组 财务组 销售组 帅哥组 美女组为aid01用户的 附加组
-
创建用户:adduser useradd
sudo adduser aid02 #交互式创建 sudo useradd -m aid03 #非交互式创建 -m:创建用户的家目录 id aid02 # 查询存在用户的信息
用户家目录:存放用户个性化信息的目录
管理员root的家目录:/root
存放 所有普通用户的家目录:/home
~:表示家目录
/etc/passwd:存放所有用户信息的配置文件
tail -1 /etc/passwd aid04:x:1003:1003::/home/aid04:/bin/sh 用户名:密码占位符:UID:基本组GID:用户描述:家目录:解释器程序
/etc/shadow:存放密码信息的配置文件
sudo grep aid /etc/shadow
-
设置用户密码
- 交互式设置密码:sudo passwd 用户名
- 非交互式设置密码:echo 用户名:密码 | sudo chpasswd
-
删除用户
userdel -r:递归删除,删除用户的家目录以及用户的邮件文件
-
组管理
sudo groupadd tedu #创建组账号 组信息存放的配置文件:/etc/group tedu:x:1005: 组名:密码占位符:GID:组的成员列表 sudo gpasswd -a tom tedu #添加组成员 成员 组名 sudo gpasswd -d aid04 tedu #删除组成员 组的删除:groupdel 组名 sudo groupdel tedu
权限和归属
以-开头为文本文件
以d开头为目录
-
基本权限:
r:读入权限
w:写入权限
x:执行权限
-
文本文件:
r:cat head tail
w:vim > >>
x:Shell脚本 Python脚本
-
归属关系:
所有者(属主):数据创建者
所属组(属组):所有者的基本组
其他人:除了所有者与所属组成员其余的用户
-
Linux判断用户具备的权限:
1.判断用户对于该数据所处的身份 所有者>所属组>其他人 # 匹配即停止
2.查看相应身份权限位置表示
-
命令行临时切换用户身份: su - 用户
-
增、减权限:
chmod o+w /aid10/1.txt # 为其他人加上w权限 chmod o-w /aid10/1.txt # 为其他人减去w权限
-
目录权限管理:
r:显示目录内容
w:可以在此目录下新建 删除 复制 移动.... 子文件或子目录
x:用户切换到该目录
-
归属关系的修改:
chown 所有者:所属组 参数 chown harry:study /aid11 chown root /aid11 # 仅修改所有者 chown :tarena /aid11 # 仅修改所属组
进程管理
程序:静态的代码 占用硬盘空间
进程:动态执行的代码 占用CPU 与 内存
-
查看进程:
systemd:所有进程父进程,上帝进程(mac没有这些命令)
pstree :结构非常优秀
-p:进程的PID
ps aux :正在运行的所有进程详细信息
top:动态的排名
按P(大写)进行CPU排序
按M(大写)进行内存排序
mac:top
先输入 o,然后输入 cpu 则按 cpu 使用量排序,输入 rsize 则按内存使用量排序。
-
进程前后台调度:
• 后台启动 – 在命令行末尾添加“&”符号,不占用当前终端 • Ctrl + z 组合键 – 挂起当前进程(暂停并转入后台) • jobs 命令 – 查看后台任务列表 • fg 命令 – 将后台任务恢复到前台运行 • bg 命令 – 激活后台被挂起的任务
-
杀死进程:
kill:结合PID进行杀死, 支持 -9选项 强制杀 killall:结合进程名进行杀死, 支持 -9选项 强制杀 pkill:模糊进行匹配进程名 杀死一个用户开启的所有进程:有登录的状态变成未登录 killall -9 -u 用户名
-
查看当前系统监听的端口:netstat -anptu
-a:所有正在监听 -n:数字方式显示 -p:显示协议信息 -t:tcp协议 -u:udp协议