前提须知:
用户想要操作linux内核,需要先用用户名和密码登录bash shell,这时启动一个bash进程。这时用户输入的命令会传输给bash shell,然后bash shell通过一些处理,最后和linux内核交互。
linux文件系统大概图
1:切换目录
cd 目录 #切换到指定目录
cd #切换到家目录
cd .. #切换到上一级目录
- 1
- 2
- 3
2:列出当前目录下的所有文件和文件夹。从左到右依次:
第一位:文件类型(f:普通文件,d:目录文件 …)
接下来9位:文件权限,每3位一组,每组代表属主,用户组,其他的权限。其中rwx分别代表读,写,执行。-代表没有这个权限。
接下来:文件硬链接的次数
接下来:文件的属主
接下来:文件的属组
接下来:文件大小,单位是字节
接下来:时间戳,最近一次修改的时间
ls [-al] #可选参数,a代表所有文件包括隐藏文件,l显示详细信息
ll
- 1
- 2
3:查看某一命令是内部命令(shell自带的)还是外部命令(用户安装的),若显示xx is a shell builtin则为内部命令,否则为外部命令
type 命令
- 1
4:查看文件类型。
file 文件
- 1
5:查看某一命令的位置
whereis 命令
- 1
6:查看文件内容,后面可接多个文件,用空格分隔
cat 文件
cat 文件1 文件2 ...
- 1
- 2
7:分页查看文件内容
more 文件 #从上往下,按空格按页翻,按回车按行翻。
less 文件 #可从上往下,也可从下往上,按空格按页下翻,按回车按行下翻,按b往上翻
head -n 文件 #查看文件前n行,不传-n则默认10行
tail -n 文件 #查看文件倒数n行,不传-n则默认10行
tail -f 文件 #实时查看文件倒数10行,-5f则实时查看5行
- 1
- 2
- 3
- 4
- 5
8:查看命令帮助文档,一般内部命令用help,外部命令用man,如若没有man命令,先使用yum install man安装
man 命令 或者 help 命令
- 1
9:定义变量,变量名=值,定义数组为 变量名=(值1 值2 值3 …)
其中$$变量的值是bash shell的进程号
a=1
arr=(1 2 3)
- 1
- 2
10:打印,echo类似于java的system.out.print()
echo "字符串" #打印字符串
echo $变量名 #打印变量的值
echo ${arr[1]} #打印arr数组下标为1的值
echo "字符串" > 文件名 #将内容添加到文件中
echo "字符串" >> 文件名 #将内容追加到文件中
- 1
- 2
- 3
- 4
- 5
11:查看进程一些信息,包括进程号等等
ps -ef
ps -ef | grep 字符串 #匹配进程名称
- 1
- 2
12:df显示磁盘使用情况,du显示文件使用情况,free显示当前内存和交换空间的使用情况
df [-h] #其中-h是可选参数,显示大小单位
du [-h] 文件 #其中-h是可选参数,显示大小单位
free [-h] #其中-h是可选参数,显示大小单位
- 1
- 2
- 3
13:打开并且编辑某一文件,若文件不存在会被创建。进入后编辑查看模式,按两次D可以实现删除某一行;按i可以进入输入模式,按Esc可推出输入模式;按Shift+:可以进行退出或者保存操作:
q为不修改时退出;
q!为强制退出,修改的无效;
wq修改有效,并且退出;
vim 文件 或者 vi 文件
- 1
14:创建目录
mkdir 目录名称
mkdir -p /目录1/目录2 #-p参数可以在父目录(目录1)不存在情况下,同时创建父目录
- 1
- 2
15:删除文件或者目录
rm -f 目录或者文件 #强制删除
rm -rf 目录或者文件 #强制删除目录下的所有文件
- 1
- 2
16:复制
cp 源文件或目录 目的文件或目录
- 1
17:移动
mv 源文件或目录 目的文件或目录 #目的文件或目录可以重命名
- 1
18:显示当前路径
pwd
- 1
19:查看文件的详细信息
stat 文件
- 1
20:创建新文件,更新文件一致性时间
touch 文件
- 1
21:管道,符号为|,|左边作为输出方,右边为输入方。
ps -ef | grep xx #ps -ef输出的内容作为右边grep xx的搜索范围
cat a.txt | head -n | tail -1 #可以实现查看文件a.txt的第n行数据
- 1
- 2
22:用户与权限
useradd 用户名 #增加用户,未设置密码,此用户还登录不了
userdel 用户名 #删除用户,不过这样删除还有残余文件,删除干净可以删除/home/用户名的目录以及/var/spool/mail/用户名目录。
passwd 用户名 #创建或者修改用户的密码,passwd后面不加用户名默认修改root用户密码
groupadd 组名 #创建组
usermod -G 组名 用户名 #将用户添加到组中
chown 属主名:组名 文件夹或者文件 #改变文件夹或者文件的属主和属组
chown 三位数字 文件夹或文件 #其中三位数字(例如761)从左到右依次代表属主,属组,其他的权限。wrx分别代表4,2,1。若三个权限都有即4+2+1=7。
chown g+w 文件夹或文件 #给文件的属组增加写权限
chown g+r 文件夹或文件 #给文件的属组增加读权限
chown g+x 文件夹或文件 #给文件的属组增加执行权限
以上三个,g的位置若为o即其他人,若未u则属主;+若为-则为去除权限。
su 用户名 #切换账号,root切换到其他账号不需要输入密码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
23:在文件系统中查找指定的文件
find -name 'hello.txt'
- 1
24:显示在线登录用户
who
- 1
25:显示主机名称
hostname
- 1
26:显示系统信息,查看系统版本
uname
lsb_release -a
- 1
- 2
27:显示当前系统中耗费资源最多的进程
top
- 1
28:杀死一个进程
kill -9 进程号
- 1
29:清屏
clear
- 1
30:显示网络状态信息
netstat
- 1
31:重启
reboot
shutdown -r now
- 1
- 2
32:关机
shutdown -h now
- 1
33:软件安装与卸载
ubuntu版本:
apt-get install packagename #安装软件包
apt-get remove packagename #删除软件包
apt-get update #更新软件包列表
apt-get upgrade #升级有可用更新的系统(慎用)
apt-cache search packagename #搜索软件包
apt-cache show packagename #获取软件包信息
apt-get remove packagename --purge #删除包以及配置文件
centos版本:
yum install packagename
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
文章来源: javalib.blog.csdn.net,作者:陈皮的JavaLib,版权归原作者所有,如需转载,请联系作者。
原文链接:javalib.blog.csdn.net/article/details/105059932