Linux基本命令
Linux内核版本
好几千万行代码,
Linux发型版本
Linux内核+软件
个人桌面领域的应用
代表:ubuntu,fedora,
服务器领域
Red Hat的AS系列
完全开源的debian系列
suse EnterPrise 11系列
嵌入式领域
机顶盒子,数字电视,智能手表
基本命令:
调整终端窗口大小:
变大:Ctrl+shift+,减小:ctrl-
ubuntu中没有盘符这个概念,只有一个根目录/,所有文件都在这个根目录/下
bin:和安装的程序相关
boot:和ubunto启动相关
cdrom:和光盘相关
dev:和设备先关,例如U盘
etc:和配置相关
lib:放的一些库
home:除了home文件夹,其他的都不要动
命令:
cd:change directory,进入目录
touch:创建一个文件,touch 1.txt..........Linux中不强调文件后缀名,后缀名只是让应用程序打开
mkdir:创建一个文件夹 ,mkdir hy
pwd:查看当前路径
clear:清屏
Linux命令格式:
command [-options] [parameters]...
以ls为例:
ls -a:显示隐藏文件
ls -l:以列表形式显示文件
ls -l -h显示文件大小
选项没有顺序,并且可以连在一起写。0表示空文件。
参数和选项的数据课换:ls /bin -ahl和ls -ahl /bin结果一样。
查看帮助文档
命令 --help 或者 man 命令(man表示manual)
例如:ls --help,man help
自动补全:tab
查看文件内容:cat
编辑文件:gedit (基本不用)
查看历史命令:history
!历史命令,例如!784,执行这个命令
通配符
输出重定向:>
将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
例如:ls >xxx.txt(xxx.txt不存在,则创建,存在则覆盖其内容)
ls >>xxx.txt以追加的形式重定向
xxx.txt内容
分屏显示:more
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
管道:|
管道:一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
一行输入两个命令,用分号隔开
例如:ls;ls -alh
不过一般不这样干,会被鄙视。
cd命令:
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。 |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 切换到当前目录,cd ./py:进入当前目录下的py文件夹,就根cd py一样,没啥用 |
cd .. | 切换到上级目录 |
cd - | 可进入上次所在的目录 |
两个tab键补全当前路径下所有文件
这个时候,按下两个tab键,就可以补全当前路径下所有文件
ctrl +c终止
命令输错了,直接Ctrl +C终止
tree:查看目录结构
mkdir:
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
rmdir:
删除一个空文件夹,不然会提示删除失败
rm:
删除文件或者文件夹,文件夹可以非空
参数 | 含义 |
---|---|
-i | 以进行交互式方式执行 |
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
mv:
重命名文件或者文件夹
移动文件
建立链接文件:ln
Linux链接文件类似于Windows下的快捷方式
链接文件分为软链接和硬链接
软链接:软链接不占用磁盘空间,源文件删除则软链接失效
硬链接:硬链接只能链接普通文件,不能链接目录
使用格式:
ln 源文件 链接文件
ln -s 源文件 链接文件
如果没有-s
选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
查看文件硬链接数
cat同时查看两个文件内容:
cat将两个文件的内容合并到一个文件中
grep
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式为:
grep [-选项] ‘搜索内容串’文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。
常用选项说明:
选项 | 含义 |
---|---|
-v | 显示不包含匹配文本的所有行(相当于求反) |
-n | 显示匹配行及行号 |
-i | 忽略大小写 |
grep搜索内容串可以是正则表达式。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
grep常用正则表达式:
参数 | 含义 |
---|---|
^a | 行首,搜寻以 m 开头的行;grep -n '^a' 1.txt |
ke$ | 行尾,搜寻以 ke 结束的行;grep -n 'ke$' 1.txt |
[Ss]igna[Ll] | 匹配 [] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt |
. | (点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt |
-n显示行号
^以什么开头,$以什么结尾。
cp
复制文件
复制文件夹的时候要加 -r选项。
查看已经安装的软件:
dpkg --list
卸载open-vm-tools
sudo apt-get --purge remove open-vm-tools
find
查找文件
系统管理命令
1.查看当前日历:cal
cal -y [year]查看一年的日历
2.显示或设置时间:date
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。
显示时间格式(date '+%y,%m,%d,%H,%M,%S'):
format格式 | 含义 |
---|---|
%Y,%y | 年 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
3.查看进程信息:ps
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
选项 | 含义 |
---|---|
-a | 显示终端上的所有进程,包括其他用户的进程 |
-u | 显示进程的详细状态 |
-x | 显示没有控制终端的进程 |
-w | 显示加宽,以便显示更多的信息 |
-r | 只显示正在运行的进程 |
ps -aux:显示电脑上正在运行的所有进程
4.动态显示进程:top
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
按键 | 含义 |
---|---|
M | 根据内存使用量来排序 |
P | 根据CPU占有率来排序 |
T | 根据进程运行时间的长短来排序 |
U | 可以根据后面输入的用户名来筛选进程 |
K | 可以根据后面输入的PID来杀死进程。 |
q | 退出 |
h | 获得帮助 |
按q退出。
5.终止进程:kill
kill命令指定进程号的进程,需要配合 ps 使用。
使用格式:
kill [-signal] pid
信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
kill 9133 :9133 为应用程序所对应的进程号
6.关机重启:reboot、shutdown、init
命令 | 含义 |
---|---|
reboot | 重新启动操作系统 |
shutdown –r now | 重新启动操作系统,shutdown会给别的用户提示 |
shutdown -h now | 立刻关机,其中now相当于时间为0的状态 |
shutdown -h 20:25 | 系统在今天的20:25 会关机 |
shutdown -h +10 | 系统再过十分钟后自动关机 |
init 0 | 关机 |
init 6 | 重启 |
7.检测磁盘空间:df
检测文件系统的磁盘空间占用和剩余情况
df 默认以K为单位,df -m以M为单位
选项 | 含义 |
---|---|
-a | 显示所有文件系统的磁盘使用情况 |
-m | 以1024字节为单位显示 |
-t | 显示各指定文件系统的磁盘空间使用情况 |
-T | 显示文件系统 |
8.检测目录所占磁盘空间du
16K表示当前文件夹所占用的总空间,8K表示当前路径下ym文件夹占用的存储空间。
9.查看或配置网卡信息
ens33,lo是网卡名
用户,权限管理
1.添加用户useradd
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令的使用格式如下: useradd [参数] 新建用户账号
参数 | 含义 |
---|---|
-d | 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录 |
-m | 自动建立目录 |
-g | 指定组名称 |
相关说明:
- Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户);
- 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录;
- 用户的主目录一般要放到根目录的home目录下,用户的主目录和用户名是相同的;
- 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。
命令 | 含义 |
---|---|
useradd -d /home/abc abc -m | 创建abc用户,如果/home/abc目录不存在,就自动创建这个目录,同时用户属于abc组 |
useradd -d /home/a a -g test -m | 创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组 |
cat /etc/passwd | 查看系统当前用户名 |
useradd user_test:只创建用户,不创建家目录
useradd -m user_test:创建用户的同时创建一个家目录
cat /etc/passwd:查看系统有哪些用户名
2.给用户设置密码 passwd
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
passwd:修改密码
使用adduser添加用户
我在使用useradd添加用户后,不知道什么原因添加完之后,只有一个$,没有用户名和主机名,然后使用adduser就有了。
3切换用户:su
可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
su切换用户的时候不切换路径,su -切换用户的时候同时j切换工作路径为新用户的家目录。
4.查看当前用户 whoami
5.退出当前账户:exit
如果是切换后的登陆用户,退出则返回上一个登陆账号。
例如开始时是hhhhhyyyyy8账户,切换到user_test账户后,从user_test退出后,返回到hhhhhyyyyy8账户。
exit也是退出终端命令。
6. Linux是多用户的,可以同时多个用户开多个终端进行操作
7.Ctrl+shift+T,分屏显示多个终端
按Alt +1,或者Alt+2切换。
8.远程登录
ssh 用户名@ip地址
Windows中没有ssh命令,需要下载xshell。
9.查看登录用户:who
who命令用于查看当前所有登录系统的用户信息。
10.删除用户 userdel
命令 | 含义 |
---|---|
userdel abc(用户名) | 删除abc用户,但不会自动删除用户的主目录 |
userdel -r abc(用户名) | 删除用户,同时删除用户的主目录 |
这是发现用户user_test没有了,但是user_test主目录还在
连主目录一并删除:
11.切换到超级管理员root
sudo -s
12.用户组
查看有那些用户组:
方法1、cat /etc/group
方法2、groupmod +三次tab键
添加用户组:groupadd 组名
删除用户组:groupdel 组名
查看用户在哪些用户组:
将用户添加到某个用户组
为创建的普通用户添加sudo权限
sudo usermod -a -G adm 用户名
sudo usermod -a -G sudo 用户名
查看已经安装的软件
dpkg-l
查看软件安装路径
dpkg -L 软件名
编辑器
gedit,知道有就可以了,
sublime
vim
默认不能写内容,按下i变成插入模式,可以写东西了。
上一篇: 【c语言】Online Judge Practice 3
下一篇: CTF之萌新web学习2