linux上手指令
😊本文为小邢原创,CSDN首发
📅发布时间:2022/7/10
🙌欢迎大家👍点赞❤收藏✨加关注
✒本文大约5400字左右
🙏博主水平有限,如有错误,还望告诉我,万分感谢!
🚩有什么问题也可在评论区一起交流哦!
文章目录
· adduser / passwd / userdel
这三个指令分别是增加用户、为用户设置密码、和删除用户的指令。
adduser —— 增加用户
注意,使用该指令需要切换到root用户,不然没有使用权限。在输入密码的时候密码不回显(注意,输入的是root的密码)。
切换到root用户我们就可以增加用户了!
adduser new_user
这样我们新用户就创建成功了,我们可以用 cut -d : -f 1 /etc/group 来查看所有用户。
可以看到新用户创建成功!
当然,我们也可以为新用户设置密码~~(注意,该指令同样需要用root的身份执行)
passwd —— 设置密码&&更改密码
passwd ***(用户名[如果当前用户就是该用户,可以省略不写])
userdel —— 删除用户
userdel -r ***(用户名)
同样,该操作需要root的身份。
· whoami
该指令能显示当前的用户。
· ls
ls的选项很多,我们在这里先列举说明常用的几个选项,其他的选项我们在之后的学习中边用在边学习使用。
ls -l —— 以列表形式显示当前目录下的文件属性
ls -l -a —— 以列表形式显示当前目录下的文件属性,包括隐藏文件。
我们可以看到,这里的隐藏文件有两个,一个是 . 、另一个是 … ,这两个隐藏文件是什么呢?有什么用处呢?
· 、··(两个隐藏文件)
· ——表示当前路径
·· ——表示上级路径
[任何目录都有这两个隐藏文件]
cd、pwd
为了讲清楚这两个文件,我们补充一个命令:
cd —— 路径切换(目录切换)
pwd —— 显式当前路径
清楚了cd和pwd命令后,我们就可以粗略的说明这两个隐藏文件了。
我们发现,当我们**cd . .**时,我们回退到了上级路径。
对于一个点的隐藏文件(·),它表示当前路径,我们可以通过这个隐藏文件来运行当前目录下的可执行文件。
当然,我们可以在当前目录下创建隐藏文件,不过这里要用到一个新的命令touch,我们之后会介绍。
路径
我们这里在说明一下路径的概念。
我们知道,大部分操作系统组织文件的形式都是以多叉树的形式:
路径可以理解为一个节点到另一个节点所经过的节点。
了解了路径后,我们又把路径分为绝对路径和相对路径。
对于绝对路径和相对路径,我们可以简单理解为:
绝对路径:从根节点出发的路径。
相对路径:不从根节点出发的路径。
要补充的是,linux下根目录用“ / ”表示,” / “也叫作路径分隔符。
此外,路径还回答了这样的一个问题:我在哪?我是谁?
比如下面的路径:
/home/xwl/test.c
我是test.c,我在**/home/xwl/**目录下。
那我们为什么要用路径的方式来定位一个文件呢?
那是因为对于一个节点它有唯一的父节点,这样我们就可以通过一个路径唯一的标识一个文件。
cd -
cd - :记录最近从哪里来的路径
我们可以用该指令加选项实现两个高频路径之间的切换
cd ~
~ :标识当前用户的工作目录
对于普通用户,其工作目录就是/home/###(用户名) ,对于root用户,其工作目录为/root。
ls -l -a -d
同样,目录也是一种文件,我们可以用ls命令来查看目录属性。
可以看到,当前目录下有一个名叫mydir的目录文件,现在我们来查看其属性:
我们可以看到,但我们用ls命令想查看目录属性时,查看的却是目录下的文件信息,所以我们得出结论,ls命令后面接目录文件时,优先显示目录下的文件信息。
如果我们要查看目录属性信息的话,我们可以用ls的这一选项:
ls -l -a -d [目录名]
· which
which —— 查看特定指令的系统路径
我们可以看到,指令也是某一路径下的程序,即文件,既然是文件,就有其属性:
我们可以看到,文件名是绿色的,在本机配色方案中,绿色文件就是**.exe**文件,即可执行文件。
我们不难发现,ls在查看目录文件时,不同类型的文件配色不一样,这是为什么呢?
alias
首先,我们来讲一下alias指令:
alias —— 给指令起别名
比如,我们给**"cd …"指令起一个back的别名,当我们再使用back的时候就可以实现与cd …**同样的效果。
[其的别名只在本次登录有效,当然我们不建议给指令起别名,这样会污染系统的指令池]
所以我们可以知道,ls指令就是ls --color=auto的别名,所以根据指令的字面意思,我们也就知道了为什么不同类型的文件有不同的颜色了。
ll
同样,我们可以用which指令来查看其路径:
我们可以看到,ll指令就是ls -l的别名,所以当我们以后要查看目录文件时,直接用ll指令会方便一些。
· touch
touch —— 创建普通文件,不能创建目录
stat
用stat可以文件的具体信息:
其中有三个时间信息:
Access、Modify、Change
touch指令还可以修改这三个文件时间信息,且如果touch指令后直接跟文件名的话,默认修改三个时间:
对于这三个时间我们之后会介绍到。。。
· mkdir
mkdir —— 创建目录
mkdir默认创建一个空目录,若我们想要创建多级目录,可以加上-p选项:
我们这里用到一个小工具tree,可以查看个当前目录下各文件的路径,安装方式如下:
yum install -y tree
如果不行就先执行下面指令在执行上面的文件:
yum install -y epel-release
· rmdir / rm
rmdir —— 删除空目录
对于非空目录,我们要加上 -r 选项:
rm -r [目录名]
如果你要强制删除一些文件,可以加上 -f 选项:
rm -f [文件名]
当然我们还可以强制递归删除:
rm -rf [文件名]
这里想补充的是,linux没有回收站,对于强制删除,删除时也没有删除提醒,所以在删除前请想好是否真的删除!
· man
“在linux中,如果我们对于一个指令不太懂,我们可以问一问这个男人!“
man —— 查手册
对于man手册,它有很多册,每册对于不同的信息,我们可以用指令man man来查看man的详细信息:
man man
我们可以看到,不同的指令和函数在不同的分区,比如printf函数在第三册:
man 3 printf
退出man手册按q就行。
man手册下载:
yum install -y man-pages
· cp
cp指令的作用是拷贝:
cp src dest
nano
在这里补充一个文本编辑器——nano,输入nano,后面跟着文件名就能进入nano:
进入nano后我们可以写一些内容,要注意的是,^符号代表键盘的Ctrl按键。比如 ^X Exit ,在键盘上按 “Ctrl + x” 就能退出nano。
这里我们可以用cat指令,查看文件内容(cat指令之后会介绍):
可以看到,文本编辑成功,现在我们将cp.c的内容拷贝到cp_backup.c中:
cp cp.c cp_backup.c
拷贝成功!
cp指令拷贝默认在当前目录,我们也可以指定目录进行拷贝:
拷贝到上级目录的cp_backup.c文件中:
cp cp.c . ./cp_backup.c
cp指令加上 -r 选项也可以拷贝目录文件:
当然,加上 -f 选项就是强制拷贝文件。
cp -rf src dest
· mv
该指令的功能是剪切:
mv src dest
mv指令还可以给文件重命名:
mv file1 file2(在当前目录下没有file2)
· 查看文件内容
cat
这里我们先用命令行脚本生成一个1000行的大文件:
cat file.txt —— 查看文件内容
cat -n file.txt —— 所有行带上行号查看文件内容
cat -b file.txt —— 对非空输出行编号
我们会发现,当我们输入cat -n file.txt 时,内容直接刷屏到了文件内容的最后,我们想要看前面的内容还得鼠标向上滑,比较麻烦。
tac
tac —— 逆序查看文件
(我们会发现,tac就是cat倒着写!)
同样,如果我们要看文件末尾比较麻烦!
more
针对上面两种查看文件的方法,文件内容会刷屏,more指令能实现对文件的分批查看。
当内容把屏幕占满后就不往下显示了,若想继续向下查看文件内容,按住回车可以向下查看:(只能向下看)
按q可退出查看。
more -n file.txt —— 查看前n行的内容
less
该指令与more类似,都是分批查看文件内容,当屏幕占满了,不再显示。
不过less想要往下继续查看文件内容要按下键,按上键向上看。
在用less查看文件时,还可以输入 /n 查看第 n 行的内容:
我们输入 /544:
less -N file.txt —— 带上行号查看
(注意是大N)
同样,按q退出查看。
head
head file.txt —— 查看文件前10行
head -n file.txt —— 查看文件前n行
tail
tail file.txt —— 查看文件末10行
tail -n file.txt —— 查看文件末n行
查看文件中间部分
那如果我们想查看文件的中间部分呢?在介绍具体操作之前先介绍几个工具和指令:
echo
echo —— 把你想要显示的内容显示到标准输出(显示屏)上。(默认输出空行)
eg.显示字符串hello world:
输出重定向 / 追加重定向(> / >>)
当我们想把内容输入到文件中的话,我们就要用到输入重定向:
echo “hello world” > log.txt (如果log.txt当前目录不存在,会自动创建)
如果我们想继续往log.txt中输入内容,则需要用到追加重定向:
echo “hello world” >> log.txt
输出重定向和追加重定向可以理解为原本内容要输出到标准输出上,现在我们改变了输出的方向,输出到文件中。
输入重定向(<)
cat < log.txt
cat 后面不加文件名,默认从标准输入(键盘)读取内容。
我们可以看到,我们键盘输入全部显示到屏幕上。
现在我们想从文件中读取信息,这可以使用输入重定向:
eg.查看file.txt文件的100-120行内容
方案1:
head -120 file.txt > temp.txt
tail -20 temp.txt
方案2:(管道 |)
对于方案1有一个缺点,要将前120行的内容先存在temp.txt文件中,在对temp.txt取后20行。比较麻烦,下面所介绍的管道可以避免此麻烦:
head -120 file.txt | tail -20
通过上面的例子,我们大致能理解管道的作用,就是用于数据内容的传输,且在使用管道时,隐式的使用的重定向。
· date
date —— 默认格林威治时间格式
date +%Y :年(大Y)
date +%m :月(小m)
date +%d :日(小d)
date +%Y-%m-%d :年月日(输出格式不限)
date +%H :时(大H)
date +%M :分(大M)
date +%S :秒(大S)
date +%H:%M:%S :时分秒
date +%s :时间戳(小s)
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
时间戳与常用格式的时间转换用" -d @时间戳 "转换:
· cal
输出日历信息:
cal 2022 :把2022年的日历信息打印出来。
cal -3 :把去年、今年、明年的日历信息打印出来。
· find
find指令的选项很多,用到的时候可以查man手册,这里介绍一个例子:
find [指定路径] -name [文件名]
eg.在当前目录下查找名为test.c的文件:
find . -name test.c
· grep
grep指令是行过滤工具,可以实现在文件中查找字符串,将匹配的行打印出来。
grep [字符串] [文件名]
grep -v [字符串] [文件名] :反向匹配(找其中不含有指定字符串的行)
grep -i [字符串] [文件名] :查找时忽略字母大小写
grep也支持正则表达式:
· 打包压缩 / 解压
tar
tar -czf test.tgz test
c : creat、z:gzip、f:file
tar -xzf test.tgz :解压到当前目录
tar -xzf test.tgz -C test :解压到指定目录
-v :将打包压缩和解压的过程打印出来
这里要区分一下打包和压缩的区别:
打包:将所有东西归拢起来
压缩:减少东西所在的空间
· bc
该指令能进行数学运算:
· uname
该指令能查看linux的相关信息:
· history
该指令能显示历史指令。
· file
显示文件信息:
· 常用热键
Tab
当我们一下指令想不起来怎么写时,只记得开头的字母,敲下开头字母,再按下Tab键,系统会把所有该字母开头的指令全部显示:
例如,我们忘了more指令怎么写的,我们敲下m,再按Tab键:
Ctrl+c
终止一切异常程序。
Ctrl+d
程序退出、用户退出、退出xshell。
【本文为作者原创,未经允许禁止私自转载,抄袭,一经发现,将会受法律责任】
版权归原作者 爱敲代码的小邢~ 所有, 如有侵权,请联系我们删除。