Linux中fan的含义,Linux 常用命令总结

大三这学期选了一门 Linux 操作系统,虽然之前学过一些,但是不够系统,以下简单整理了一下常用的一些命令。

一、初识 Linux

发行版本 Ubuntu debian deepin CentOS red-hat manjaro mint

文件系统默认 EXT4

默认启动方式 /etc/inittab

man 命令man 5 inittab(查看 inittab 文档)

Info 命令info wget(查看 vi 的帮助文档)

--help 命令mkdir --help(查看对应的帮助文档)

Linux 的 5 种文件类型:普通文件、目录文件、链接文件、设备文件、管道文件

常用的目录含义:

/proc当前系统的状态

/dev 所有设备文件

/boot内核镜像和启动相关的文件

/etc绝大部分配置文件

/bin启动时需要的普通程序

/sbin启动时需要的系统程序

/usr除了上面的外,几乎其他所有文件都在这

二、文件管理与常用命令

显示文件命令:

cat

cat -A readme.txt(显示文件内容及特殊字符)

cat test1 test2 > test3(两个文件内容合并)

tac 将文件反向输出,与 cat 相反

more

终端底部输入 --more-- 显示百分比

more -dc test.c(显示内容前清屏,并显示百分比)

less与 more 类似,但可以向前向后翻阅文件

head

head -3 test.c(显示前三行)

tail

+num 第 num 行开始-num 距离文件尾 有几行

tail -4 test.c(最后四行)

文件查询:

grep

grep “test file” stdc.h(在 stdc.h 中搜索 test file)

grep data*(在当前所有文件中搜索含有 data 的行)

grep stdio.h*.c(在 C 语言文件中搜索 stdio.h)

find

find -name ‘tmp’ -o -name ‘Mina*’(查询文件名为 tmp 或者匹配 Mina*的文件)

locate 比 find 快,但是依赖于数据库

文本处理:

sort

sort test.txt(对文件内容排序)

sort +1-2 test.txt(对第二个字段作为排序关键字进行排序)

uniq

uniq -u test.txt(显示不重复的行)

uniq -u +1 -1 test.txt(显示不重复的行,从第 2 个字段的第 2 个字符)

wc

wc -lcw README(统计文件中的行数、字节数、字数)

comm

comm -23 app.c app1.c(显示第一个文件中出现、而不在第二个文件中的内容)

cp

cp exam1.c /usr/wang/test.c(将 exam.c 复制到/usr/wang 下并重命名)

cp -r /usr/xu /usr/liu(将目录的所有文件复制到/usr/liu)

mv

mv /usr/xu/ .(将/usr/xu 所有文件移至当前目录)

mv wch.txt wjz.txt(将 wch.txt 文件重命名为 wjz.txt)

rm(删除文件或目录(-r))

rm -rf /tmp/wang(删除目录的所有文件)

ln(硬链接、符号链接 //符号链接类似于快捷方式)

ln /root/dir/file.txt ./file_1(为 file.txt 建立硬链接)

ln -s /root/dir/file.txt ./file_1(为 file.txt 建立符号链接,需加上-s)

目录操作:

mkdir -m 700 ./dir(创建权限为 700 的目录)

rmkdir dir(等同于 rm -rf dir)

pwd(显示当前路径)

ls -l(长格式显示)

权限(利用自己的语言叙述)

每个文件可分为三种不同的权限:read 代表只读、write 代表写、x 代表可执行。权限分三组:文件属主,属主同组的用户,其他用户

改变用户权限

chown用来改变文件或目录的属主和属组

chown wang test.c(把文件 test.c 所有者改为 wang)

chown -R wang.user1 /his(将/his 的所有文件所有者改为 wang,属组改为 user1)

chgrp

chgrp user1 test.txt(改变 test.txt 的所属组为 user1)

chmod

-u(所有者) -g(同组) -o(其他用户)

chmod ug+w, o+x text(所有者和同组写权限、其他用户删除执行权限)

umask(了解即可)创建文件的默认权限

umask(查看)

umask 0023(修改)

文件打包和压缩

bzip

bzip2 man.config(压缩 man.config)

bzcat man.config.bz2(读取压缩文件内容)

bzip2 -d man.config.bz2(解压缩)

bzip2 -9 -c man.config > man.config.bz2 或者 bzip2 -9 -k man.config(使用最佳压缩比,并保留原文件)

tar(文件归档)

tar -jcvf hello.tar.gz hello.bak(将 hello.bak 压缩为 hello.tar.gz)

三、用户与用户组管理

/etc/passwd(存放用户资料)

uid(用户 id)

shadow(影子文件-不可逆的加密算法、root 可读)

group(GID 组 id)

gshadow(影子文件)

useradd:添加用户

useradd -u 3000 -r jone -g user1 -d /home/jone(创建一个 uid 为 3000,用户名为 jone,组为 user1,目录为/home/jone)

passmd: 设置密码

passwd jone

usermod: 修改用户信息

usermod -g user2 -u 5000 jone(将 jone 组修改位 user2,UID 修改为 5000)

userdel:删除用户

userdel jone(删除用户)

使用 root 用户如何给一个组加成员

useradd -g user1 -r jone

passwd jone

四、软件包管理

RPM(依赖性、拓展格式)

依赖性:RPM 软件包可能依赖于其他软件包,因此要求安装特定的软件包后才能正常安装该软件包。

扩展格式:RPM 包以.rpm 作为文件的后缀名。 名称格式为:软件名称-版本-运行硬件平台-扩展名。如下:apache-1.3.23-11.i386.rpm

yuminstall(安装软件)

yum search name(查找软件包)

yum install name(安装软件包)

yum update(升级软件包)

yum remove name(卸载软件包)

五、磁盘管理

挂载命令:mount

mount -t vfat /dev/hda1 /mnt/usb_disk(挂载一个 FAT32 的 USB)

查看 mount

fdisk -l(查看分区情况)

df(查看磁盘使用情况)(了解即可)

格式化:mkfs -t type device [ block_size ]

mkfs -t vfat /dev/sda1(把 dev/sda1 格式化)

磁盘配额

edquota -u user1

按用户限制:占用磁盘大小,所有文件的数量

六、文本编辑器

vi命令行模式、文本输入模式、末行模式

三种模式的切换

从命令行进入文本输入模式:输入插入 i、附加 a 等

返回到命令行模式:Esc

命令模式下输入”:”,切换到末行模式

显示行号:set number(末行模式下输入)

A(光标移动到行末尾) I(行最前面) o(往下移一行)

dd(删除光标所在的整行)5dd(往下删除 5 行)5G(去第五行)

:w(写):q(退出到 shell)

七、进程管理

三个命令

ps -aux(看所有进程)

w(看系统启动时间、多少用户、负载情况)

top 守护进程(后台进程),在一个命令后加上 & 符号,就可以让该命令进入后台运行,成为后台进程。top &

crond:创建周期性执行命令(逗号隔开表示不连续)

cat /etc/crontab

00 15 * * 1,3,5 shutdown -r +5(每周一、三、五的下午三点,重启系统)

10,40 * * * * /user1/calculate(每小时的 10 分、40 分,执行/user1/calculate)

crontab -r(删除所有)

crontab -e(删除某一条、编辑)

八、shell 编程基础

输入重定向:cat < dir.txt

输出重定向(> >>):ls -l > dir.txt(覆盖方式)ls -l >> dir.txt(附加方式)

管道 |(一个命令的输出作为另一个命令的输入)

管道符 $(表示变量替换)

“(双引号,除特殊字符外,都是普通字符)

‘(单引号,都是普通字符)

`(倒引号,解释为命令行,输出结果取代该符号)

(命令行参数的个数)

$n(第 n 个参数)

$0(当前程序的名称)

$?(前一个命令或函数的返回码)

$*(以“参数 1 参数 2...”的形式保存所有参数)

$@(以”参数 1 “ ”参数 2...”的形式保存所有参数)

$$(进程 ID)

$!(上一个命令的 PID)

If/else 结构

If [ $# -eq 0 ] ;

then

echo “hello world!”

elif [$ # -eq 1 ] ;

then

echo “***”

else

echo “***”

fi

for 循环

for fruit in “apple” “pear” “orange”;

do

echo $fruit;

done

for a in ‘seq 1 9’

do

echo$ a

done

while 循环

I=1

sum=0

while [ $i -le 100 ];

do

sum=$ [ $sum+$ i]

i= $[$ i+1]

done

echo $sum

进行数值运算方式:

let(用于执行一个或多个表达式,如 let a=5+4)

expr(是一个手工命令行计数器,如计算字符串长度:expr length “this is a test”,第一个字符串的位置:expr index "sarasara" a)

read(将用户的输入读入 str:read -p “please input a word” str)

运行 shell 脚本

chmod 755 /root/hello.sh

bash bash hello.sh

shell 程序:

1.如何判断一个用户输入的数字是否为素数。(判断用户输入是否正确,如果不正确则提示消息并退出,如果正确则判断出是否为素数)

#!/bin/bashread num

if [ "$num" -gt 0 ] 2>/dev/null

then

if [$ num -eq 1 ]

then

echo "$numnumber error"

exit

fi

count=0

for n in$ (seq 2 $(($ num-1)))

do

if [ $((num%n)) -eq 0 ]

then

echo "$num not is a sushu"

exit

fi

done

echo "$numis a sushu"

else

echo "$num alphabet error"

exit

fi

2.如何判断一个用户输入的数字是否是回文数。

#!/bin/bashread in

res= $(echo$ in|rev)

if [ $res -eq$ in ]

then

echo "$inis a huiwenshu!"

else

echo "$in not is a huiwenshu"

fi

3.计算用户输入的数字的阶乘。

#!/bin/bashread in

sum=1

for i in $(seq 1$ in)

do

sum= $(($ sum * $i))

done

echo$ sum

4.判断一个数列是否为斐波那契数列。

#!/bin/basharr=(1 1 2 3 5 9)

len= ${#arr[@]}

fb[0]=1

fb[1]=1

for i in$ (seq 2 $(($ len-1)))

do

fb[ $i]=$ (( ${fb[$i-2]} + ${fb[$i-1]}))

done

for i in $(seq 0$ (( $len-1)))

do

if [$ {arr[ $i]} -ne$ {fb[ $i]} ]

then

echo 'NO'

exit

fi

done

echo 'YES'

5.求一个斐波那契数列。

#!/bin/bashread in

if [$ in -eq 1 ]

then

echo 1

exit

fi

arr[0]=1

arr[1]=1

for i in $(seq 2$ (( $in-1)))

do

arr[$ i]= $(($ {arr[ $i-2]} +$ {arr[ $i-1]}))

done

for i in$ {arr[@]}

do

echo $i

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值