Linux基础命令集合

Linux入门推荐慕课网达人养成计划(简单速成),鸟哥的私房菜(书比较厚,适合长期阅读,深入学习Linux,花的时间较长)
Linux命令是学好Linux的基础,现在根据这段时间我的学习经验,总结如下,希望对初学者有所帮助。(Ubuntu和Deepin)
1.进入终端命令:
ctrl+alt+T或者ctrl+alt+F2(命令行全屏模式)

2.文件命令(先cd进入操作文件目录,有些需要获取读或者写权限,sudo su,输密码即可变成root用户,原则上同一个目录下不能有同名的(Linux命令严格区分大小写))

cd /home 进入 ‘/ home’ 目录’
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -F 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -lh 显示文件和目录的详细资料,大小格式化
ls -a 显示隐藏文件
ls [0-9] 显示包含数字的文件名和目录名

ls 详细参数

-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

tree 显示文件和目录由根目录开始的树形结构(1)
lstree 显示文件和目录由根目录开始的树形结构(2)
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接

建立文件:

touch filename或者vi filename(可以修改内容,按esc后shift+z保存退出即可)

创建文件夹及目录(mkdir):
mkdir [选项] DirName
- mkdir
- -m 用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。
- -p 需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。

mkdir (文件路径/DirName) /home/zq/HelloWorld
mkdir 777(权限) (文件路径/DirName)  /home/zq/HelloWorld

拷贝复制文件(cp):
cp [选项] 源文件或目录 目标文件或目录
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
  - d 拷贝时保留链接。
  - f 删除已经存在的目标文件而不提示。
  - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。(建议选择这个,防止源文件被强制覆盖)
  - p cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
  - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
  - l 不作拷贝,只是链接文件。

cp -i 源文件或目录 目标文件或目录(可以从地址栏复制过来)urls.py /home/zq/HelloWorld/HelloWorld/copy.py

文件路径

将urls.py重命名为目标目录下的copy.py,要想不重命名,可以cp -i urls.py /home/zq/HelloWorld/HelloWorld/
cp - r /home/zq/HelloWorld/HelloWorld/ /usr/ljq/ 将/home/zq/HelloWorld/HelloWorld/目录中的所有文件及其子目录拷贝到目录/usr/ljq目录中。

移动或重命名文件(mv)
mv [选项] 源文件或目录 目标文件或目录
用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中
mv [选项] 源文件或目录 目标文件或目录
各个选项的含义:
- i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。(建议最好选择此选项)
- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
需要注意的是,mv与cp的结果不同。mv操作后文件个数并末增加,而cp对文件进行复制,文件个数总体增加了一倍。
例如将/usr/ljq/下的所有文件移动到当前文件夹下

mv /usr/ljq/* .

重命名文件

mv test1.txt test2.txt

删除文件(rm)
rm [选项] 文件路径
删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
如果没有使用- r选项,则rm不会删除目录。
- f 忽略不存在的文件,不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归删除。
- i 进行交互式删除。(建议选择这个,会被要求对每个文件进行确认是否删除,防止误删文件,无法恢复)
例如删除目录下的所有文件及文件夹

rm -rf 文件路径(谨慎使用,防止误删)

文件去锁:sudo chown 用户名 filename -R

查看文件内容
cat filename 从第一个字节开始正向查看文件的内容
tac filename 从最后一行开始反向查看一个文件的内容
more filename 查看一个长文件的内容
less filename 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 filename 查看一个文件的前两行
tail -2 filename 查看一个文件的最后两行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容

文件搜索
find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
find / -user user1 搜索属于用户 ‘user1’ 的文件和目录
find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
find / -name *.rpm -exec chmod 755 ‘{}’ \; 搜索以 ‘.rpm’ 结尾的文件并定义其权限
find / -xdev -name *.rpm 搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备
locate *.ps 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令
whereis halt 显示一个二进制文件、源码或man的位置
which halt 显示一个二进制文件或可执行文件的完整路径
grep 搜索查找字符串,根据给定的关键字帮助找到文件。

grep user /etc/passwd

打包和压缩文件
bunzip2 filename.bz2 解压一个叫做 ‘filename.bz2’的文件
bzip2 file 压缩一个叫做 ‘file’ 的文件
gunzip file1.gz 解压一个叫做 ‘file.gz’的文件
gzip file 压缩一个叫做 ‘file’的文件
gzip -9 file 最大程度压缩
rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
rar x file1.rar 解压rar包
unrar x file1.rar 解压rar包
tar -cvf archive.tar file1 创建一个非压缩的 tarball
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 ‘dir1’的档案文件
tar -tf archive.tar 显示一个包中的内容
tar -xvf archive.tar 释放一个包
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
zip file1.zip file1 创建一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip file1.zip 解压一个zip格式压缩包

文件的特殊属性 - 使用 “+” 设置权限,使用 “-” 取消权限
chattr +a file1 只允许以追加方式读写文件
chattr +c file1 允许这个文件能被内核自动压缩/解压
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
chattr +s file1 允许一个文件被安全地删除
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
lsattr 显示特殊的属性

3.关机 (系统的关机、重启以及登出命令 )
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
poweroff 关闭系统(4)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销

4.制作应用图标
快速启动:/usr/share/applications
用gedit命令创建应用文件,进行相应增改即可创建应用快捷方式,右键放到桌面或者任务栏都行

5.更新软件:

sudo apt update
sudo apt upgrade

6.用户和群组
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 “admin” 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录)
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2020-12-31 user1 设置用户口令的失效期限
pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户
grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

7.vim使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符)、j(下一行)、k(上一行)、l(右移一个字符)

8.网络
ifconfig(不是windows里的ipconfig,这点要注意)ifconfig 显示或设置网络设备,可以查看当前ip,类似于windows里的ipconfig
netstat -tlnp查看端口使用情况,释放占用端口的进程 ,根据pid强制释放
kill -9 进程id
查看端口被哪个进程占用
lsof -i:端口号
查找被占用的端口
netstat -tln //查看端口使用情况
netstat -tln | grep 8000 //查看端口8000的使用情况
service network restart(/etc/rc.d/init.d/network restart) 重启网卡
ifdown eth0 关闭网卡
ifup eth0 开启网卡
route -n 查看路由表
route add -net 192.168.20.1 netmask 255.255.255.0 dev eth0
netstat 查看网络连接情况
netstat -i 显示网卡运行情况
netstat -r 查看主机的路由列表
hostname 显示主机名
hostname -i 显示当前主机名的IP.
ps命令
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
ps aux # 查看系统所有的进程数据
ps ax # 查看不与terminal有关的所有进程
ps -lA # 查看系统所有的进程数据
ps axjf # 查看连同一部分进程树状态

9.帮助命令(man)
man 命令名
查看命令的属性和帮助信息
(如果搜索不到这个命令那就表示命令不是系统命令,可能不在/bin目录里面)
man的级别
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev目录下的文件)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其它杂项的帮助
8:查看系统管理员可用命令的帮助
man -f 【命令】可以查看这个命令有哪些级别

Linux系统目录
Linux基础命令集合_第1张图片
Linux系统学习路线
Linux基础命令集合_第2张图片
Linux的命令是Linux的基础,只有熟练掌握它们,才能驾驭Linux,达到事半功倍的效果,有利于编程学习和工作。
还有一些命令没有提到,后面继续学习会相应补充,望大家理解,谢谢!

你可能感兴趣的:(Linux操作系统,Linux操作系统)