linux学习之基本命令

来源:互联网 发布:翻译机 知乎 编辑:程序博客网 时间:2024/06/03 16:22

最近课上要考linux,看了《鸟叔的私房菜》,鸟叔写得非常好,安装了一个ubuntu,学习了一些linux的基本命令和基本操作。填坑如下:
1、sudo su root 获取root权限,输入密码是不显示的。增加如果忘记了root密码

2、exit:注销linux

3、ls :list,列出当前的文件,在linux中,一切皆为文件,所以这个命令经常用来查看文件
ls -al 列出当前目录的所有隐藏文件及其属性(如下图)
ll 同上
ls -a -l同上
ls -al命令
顺便解释一下这张图代表的意思,按照列,第一列到第七列标号为[1][2]…[7]
[1]:表示文件的权限,第一个字母表示为文件类型,在linux中
文件类型:
-: 表示普通文件
d: 目录
b: 块特殊文件
c: 字符特殊文件
l: 符号链接文件
p: 命名管道文件FIFO
s: 套接字文件
.:隐藏文件
后面的9个字母为文件权限,拿第一行举例,drwxr-xr-x表示这个文件为目录,除去d,每三个字母为一组,r(read),w(write),x(execute),-(没有这个权限)
第一组是“文件所有者的权限“(rwx)
第二组是”同用户组的权限“(r-x)
第三组是”其他非用户组的权限“(r-x)
关于linux用户组方面的概念,自行百度。
[2]:”表示有多少文件名连到此节点(i-node)”
[3]:表示这个文件(或目录)的”所有者账号“
[4]:表示这个文件的所属用户组
[5]:表示这个文件的容量大小,默认单位为B
[6]:表示这个文件的创建文件日期或者最近的修改日期
[7]:表示文件名

4、改变文件属性和权限
[1]chgrp:change group,改变文件用户组
[2]chown:change owner,改变所文件所有者
[3]chmod:change mode 改变文件的权限
[1]用法:
chgrp [-R] filename/dirname
举例:chgrp yang test.txt
注意:改变用户组的前提有这个用户组
[2]用法:
chown [-R] filename/dirname
[3]用法:
chmod 这个用法比较有意思,有两种方法可以改变文件的权限
第一种:数字类型改变文件权限,格式:chmod [-R] xyz filename/dirname
可以按照二进制来记忆,rwx分别是421,然后累加起来就行了。举个栗子,一个文件为rwx,用数字表示权限就是7,那么rw-就是6,r-x就是5啦,—就是个零蛋,啥权限木有。
举例:chmod 777 text.txt
第二种:符号类型改变文件权限
都知道linux有三种身份,user,group,others。权限也就是对他们来说的。
先举个栗子:
chmod u = rwx,go = rx text.txt
u就是user,go就是group,这样就明显了,就是给一个text.txt的文件给拥有者rwx的权限,用户组rx。
注意:rx是没有空格的,要给直接就给了。
但是,如果不知道原先的文件属性,想给text.txt这个文件执行的权限呢,就可以用(+-=)来设置。
举个栗子:chmod a+x text.txt

5、关于目录,文件的操作
前面为格式,后面为解释
mkdir dirname:make directory 创建目录,一般要有权限
touch filename :创建文件,创建完没有权限的,可以用chmod赋权限
cat filename : 查看文件内容
vi filename:编辑文件,也可以用gedit文件编辑器编辑。说下简单的流程,vi text.txt ->i(启用编辑) -> esc(编辑结束后,按esc键结束编辑) ->:wq(注意有一个冒号!wq保存并退出)
rm filename:删除一个或多个文件,不能删除目录
rm -rf 非空文件夹 :删除文件夹,也可以删除目录
rmdir dirname :删除文件夹
cp 源文件 目标文件:复制文件
mv:移动文件与目录,或者更名(理解起来其实就是移动,移动到同一个文件夹就更名了 mv text.txt text1.txt

6、编写shell文件
shell文件其实和window里面的.bat一样,都是命令集
每学一个新东西都要写一个helloworld。那么来了,
这里写图片描述
第一行:表示这个script使用的shell名称
第二三行,都是对文件的说明,比较简陋,不标准。
第四五行:path,是主要的环境变量声明,用#注释,表示不是必要的。
echo :输出
执行文件:sh filename

现在介绍一些简单的指令:
read -p:提示用户输入
$:引用变量值
这里写图片描述
这里写图片描述
test:测试命令
扩展test命令,用例子来扩展:
test -e filename :文件名是否存在
test -f filename:文件名是否存在且为文件(file)
test -d filename:文件名是否存在且为目录(directory)
test -r filename:文件是否有读的权限,后面依此类推
这里写图片描述

[]:判断符号,贴图
这里写图片描述

if…then条件判断式
这里写图片描述
fi是结束if的意思,第一次看到这不知为啥笑了。类似的还有case结束是esac。

case…esac判断
这里写图片描述

while do done 循环:
这里写图片描述

for do done 循环:
这里写图片描述

function功能:
这里写图片描述

7、写到这里,还有很多的功能没有详细介绍,后面学的时候也尽量记下来。现在说三个题目

(1)获取系统时间并输出到文件中
这里写图片描述
在linux中,获取命令写到文件中可以用>这个符号,这个符号是表示覆盖,不再追加内容。 如果要追加内容,就用>>。关于这个,文章后面会给出一个更全的文章链接。
(2)删除以l开头,以l结束的文件和文件夹
这里写图片描述

(3)在linux中写c++,来控制系统重启,关机

#include<iostream>using namespace std;void setShutdown(int time);void shutdown();void shutdown1();void setShutdown1(int time);int main(){    int n=0;    int time=0;    //shutdown();    //setShutdown(n);    //setShutdown(n);    cout << "你想让计算机做些什么?\n" << "0:立即关机\n" << "1:立即重启\n" << "2:定时关机[分钟]\n" << "3:立即重启[分钟]\n" << "4:取消并退出" << endl;    cin >> n;    switch(n){        case 0:            cout << "正在关机..." << endl;            shutdown1();            break;        case 1:            cout << "正在重启..." << endl;            shutdown();            break;        case 2:            cout << "请设定一个时间关机:" <<endl;            cin >> time;            setShutdown1(time);            cout << "将在..." << time << "分钟后关机..." << endl;            break;        case 3:            cout << "请设定一个时间重启:" <<endl;            cin >> time;            setShutdown(time);            cout << "将在..." << time << "分钟后重启..."<< endl;            break;        case 4:            cout << "已取消!" << endl;            system("shutdown -c");            break;    }    return 0;}/*straght reboot重启*/void shutdown(){    system("shutdown -r now");}/*set time reboot*/void setShutdown(int time){    system("shutdown -r $time");//reference this time}/*shutdown this computer关机*/void shutdown1(){    system("shutdown -h now");}/*set time reboot*/void setShutdown1(int time){    system("shutdown -h $time");//reference this time}

步骤:先创建一个.cpp文件,写完后,编译g++ text.cpp -o test,执行./test
这里写图片描述

参考文章:
LINUX一切皆文件
linux将输出放在文件中
Linux系统下运行c++程序