Linux入门与常用指令

概述

本文就Linux的基础知识的一些浅薄理解和应用操作,用户操作,文件操作,变量操作,压缩操作和系统计划任务进行展开。内容较为硬核,需仔细阅读理解,以实例代码辅助理解,方便快速上手

基础知识

内核:

常见内核:微软,windows,苹果ios和mac,索尼,bsd内核,索尼,任天堂等

基础指令:

uname -r		%查看版本号
uname --help		%查看帮助
who am i		%显示:用户名 pts(终端数) 登陆时间
%注:whoami是查询当前用户,who am i是查询终端对应用户
ls /etc/*release		%展示/etc/下以release结尾的文件
%注:ls是list的缩写  ./是整个系统文件根目录
cat /etc/lsb-release		%查看lsb-relase文件内容
mkdr rose		%创建rose目录,即新建文件夹
cd /etc/rose/		%将/etc/rose/设置为当前路径
pwd		%查看当前路径
touch file		%创建名为file的文件
touch love_{1..10}_thornRose		%创建10个文件
cd //		%将根目录设置为当前路径
apt list		%查看已装应用
apt search linuxlogo		%查询linuxlog应用
apt install linuxlogo		%安装linuxlogo应用
sudo apt install linuxlogo		%以管理员身份安装linuxlogo应用
for i in {1..30};do linux_logo -f -l $i;sleep 0.5;done		%循环打印30个图标
find */*/*.txt		%查询所有txt 注意此处为相对路径,只能查到当前路径下的文件!
cat /etc/group | grep -E "lilei" %查看用户组中的lilei信息,用户相关知识点看下面的文章
xeyes		%可召唤盯着鼠标的眼睛!
nohup xeyes &        %将其放置后台
sudo kill -9		%结束进程,这里眼睛进程号为9
%上面的cat为查看文件 |为将前面的集合按后面的约束映射出来,-i属性为忽略大小写,-in属性为显示行数
locate /usr/share/*.jpg			%查看 /usr/share/下的所有jpg文件(需安装locate)
man 		%可查看command_name的说明,其中command_name为某个待查询的命令名称

操作常识

  • 在运行中如若需强制终止执行命令可按住 ctrl + c
  • 操作时不必非要把指令全输完,可以灵活运用tab键帮助补全处理
  • 通配符 * 代表任意多个字符
  • 通配符 ? 代表任意单个字符
  • [list] 匹配list中任意一个单个字符,如[2-5]匹配[2],[3],[4],[5]
  • [^list]匹配除了list中任意单个字符以外的字符
  • [c1-c2]匹配c1-c2中任意单字符
  • [string1,string2,…]匹配string1或string2或更多中的字符
  • [c1…c3]匹配c1-c3中全部字符
  • root账户具有最高权限
  • su可切换用户,sudo 以特权级别运行
  • ${变量名%匹配字符} 表示从尾向前匹配,删除符合匹配的最短数据(%%表示删除最长)
  • whereis 命令名 表示查看命令路径
  • which 命令名 表示查看命令是否存在
  • (sudo)find /etc/*.jpg 搜索(-name属性直接搜索)
  • ./ 脚本名 为执行脚本
  • 根目录下文件夹对应:
    • bin:放可执行文件
    • boot:开机配置
    • dev:光盘,u盘等外置存储
    • etc:配置文件
    • home:用户
    • lib:系统依赖库
    • tmp:各种临时文件
    • sbin:系统更新还原,开关机等
    • 。。。

几个名词的理解

服务器

DNS(域名)服务器用于域名和IP的映射
直观看起来就像身份证一样

姓名: 域名
身份证号码: IP

而对于网络服务器可以设备对比理解
电脑:配置低;服务器:配置高,24小时不关机
服务器具有IP且需备案,但也有不同,服务器端IP相当于住宅楼的号码,一个住宅楼和外界联系是通过主干网络,但是住宅楼内部再分就是客户端IP,这个IP是依靠在服务器IP下面的,无法单独存在。

终端

直接理解就是类似于windows的黑窗口

linux特点

安全性强,门槛高,占用资源小,开源!

应用操作

以文字处理类app为例

sudo apt install figlet		%管理员身份安装figlet
figlet	ROSE		%使用figlet以特殊形式大字符显示字符ROSE
%可同理安装toilet ,对应的 --gay属性可表现多彩字体
%例如:
toilet --gay ROSE
%同理安装cmatrix 显示黑客帝国类似黑客背景,安装hollywood显示随机运行的乱跑程序等
%注意在软件安装时可能会需要将软件包更新
sudo apt update		%更新软件包

用户操作

%su可切换用户,sudo 以特权级别运行
sudo adduser lilei		%创建lilei用户
%用户存放于/home目录下
su -l lilei		%切换lilei用户
%ctrl+d为退出当前用户,返回至终端对应用户(终端用户与当前用户不一致时)
groups 用户名		%查看用户组
%sudo组中才可用sudo命令
sudo usermod -G sudo lilei		%将lilei添加至sudo组中
sudo deluser lilei --remove-home		%删除lilei用户
ls -l		%列出文件即文件属性(-lh显示文件大小单位 -a显示隐藏文件)
%上面显示的文件属性为: 文件类型和权限 链接数 用户名 用户组 文件大小 最后修改时间 文件名
%文件类型和权限的显示解读:r读,w写,x执行,对应排列为用户权限,用户组权限,游客权限

ls -l 展示效果在这里插入图片描述

sudo chown lilei file		%文件授权(将其他用户的file文件的换为lilei的文件)
echo "..."		%打印 ...
echo "..." > file		%向file文件中写入 ...     注意两个>代表向后填入,一个代表覆盖填入
chmod 600 file		%将file文件的权限修改为rw-------
%上面的数字对应权限,三个数字对应用户,用户组,游客,数字大小为二进制下的rwx,
%如r-x权限对应:1*2^2+0*2^1+1*2^0=5,rwx权限对应:1*2^2+1*2^1+1*2^0=7

文件操作

mkdir mydir		%创建mydir目录(文件夹)
mkdir -P father/son/grandson		%创建多级目录
tree ./		%显示当前目录文件树
cp test father/son/grandson		%复制test文件到father/son/grandson中
%若复制目录需在前面加上-r或-R属性,表示递归复制
rm test		%删除test文件
rm -f test		%强制删除test
rm -r family		%删除目录(递归,-rf为强删目录)
mv file Documents		%将file文件移动到Documents目录中
mv file myfile		%把file重命名为myfile

批量重命名

安装rename

sudo apt install rename
touch file{1..5}.txt		%批量创建5个文件
rename 's/\.txt/\.c/'		%将.txt改为.c,参考正则表达式
rename 'y/a-z/A-Z/'*.c		%将文件名改为大写
vi file		%编辑file文件,进入编辑页面后:i开始编辑,按esc退出编辑后,:输入命令,w保存,q退出

变量操作

declare tmp		%声明tmp变量
tmp=shiyanlou		%赋值时不能带空格
echo $tmp		%打印tmp变量,$为读取变量,dos中为%tmp%
%运用变量时也需加$,如apth=$path
%环境变量修改可直接修改配置文件
sudo vi /etc/profile		%修改配置文件,在文件内容最后插入对应环境变量
source /etc/profile		%重新加载环境,即可直接使用环境变量,否则在下次启动时才会加载新的环境变量
touch hello_shell.sh		%创建shell脚本
gedit hello_shell.sh		%用gedit对脚本编辑(防止对齐等错误)
%编辑的hello_shell.sh内容部分:
	# !/bin/bash		%注:改行必须有
	for((i=0;i<10;i++));do
		echo "hello shell"
	done
	exit0
chmod 755 hello_shell.sh		%添加可执行权限
./ hello_shell.sh		%执行脚本
python rose.py		%执行rose.py脚本
gcc -o hello_world hello_world.c		%编译hello_world.c文件,编译后名为hello_world
PATH=$PATH:/home/lilei/mybin		%在局部拼接path变量,注意拼接的分隔符为 :
cat /etc/shells		%查看已装shell
%添加环境变量的另一种方式
echo "export PATH=$PATH:/home/lilei/mybin" >> .zshrc		%直接将命令添置.zshrc中
%或直接用gedit .zshrc改文件
source .zshrc		%重载环境,source别名为 . ,source .zshrc也可写为 . ./.zshrc

压缩操作

zip压缩

zip -r -q -o rose.zip /home/rose/Desktop		%压缩文件目录/home/rose/Desktop为rose.zip
%-r代表递归压缩,-q代表安静(不打印压缩过程信息)-o表示输出文件,后跟输出名。可缩写为-rqo
%可加入参数-1到-9,代表压缩级别,数字越大,体积越小耗时越长
%为防止压缩自身路径造成死循环,可使用-x属性,如-x ~/*.zip代表排除用户目录下的zip文件进行压缩
unzip rose.zip		%使用unzip解压zip文件(-q安静,-d指定目录,-l只查看不解压)

tar压缩

tar -p -cf rose.tar /home/rose/Desktop		%压缩文件目录/home/rose/Desktop为rose.zip
%-p表示保留绝对路径符,-c创建tar包,-f指定创建文件名,需放最后,-v可视输出
mkdir tardir		%创建tardir目录,为解压做准备
tar -xf rose.tar -C tardir		%解压至tardir目录下
%-x表示解压,-C表示解压至已存在的路径,后跟目录,默认为本地
tar -tf rose.tar		%只查看,不解压文件对应-t参数

crontab系统计划任务

准备

sudo apt install -y rsyslog
sudo service rsyslog start

启动

sudo cron -f &
%添加任务:
crontab -e		%输入后会有提示,对提示首次启动通常选2(basic)

Linux入门与常用指令_第1张图片
进入vim后点击i插入到最后
对应crontab计划任务的指令为
* * * * * 指令,*分别对应分,时,日(月中的),月,日(周中的)

*/1 * * * * touch /home/rose/$(date +\%Y\%m\%d\%H\%M\%S)

表示每隔一分钟创建一个文件
Linux入门与常用指令_第2张图片
输入完成后按:然后输入wq保存并退出
可判断是否守护进程(后台运行)

ps aux | grep cron
%或
pg grep corn

查看日志

sudo tail -f /var/log/syslog		%tail表示监听

查看任务指令

crontab -l

删除crontab运行的命令

crontab -r

你可能感兴趣的:(linux,linux)